Kurt -- 

If you create a vector  of alignment positions, you should be able to do 

alignment.pos <- rep(1:236, each = 72)
table(data.frame(as.vector(align1), alignment.pos))

You may want to coerce align1 to a factor with appropriate levels, in case
you are missing some amino acids.  Otherwise there's an automatic coercion,
I believe, and you will use only the levels actually present in your data.

Here's an example using the first 10 letters of the alphabet instead of the
amino acid set:

> align1 <- matrix(sample(LETTERS[1:10], 200, replace = TRUE), nr = 5, nc =
40) 
> alignment.pos <- rep(1:40, each = 5)
> table(data.frame(as.vector(align1), alignment.pos))

Hope this helps,

Matt Wiener

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Wollenberg, Kurt R
Sent: Thursday, January 06, 2005 11:36 AM
To: 'r-help@stat.math.ethz.ch'
Subject: [R] Calculating a table of symbol frequencies


Hello all:

I have a protein sequence alignment in a data frame (align1, 72 x 236),
where each row is a protein and each column a site in the alignment. AA is
vector of amino acid symbols plus "-" (gap). I can calculate amino acid
frequencies at each site by:

>align1.F <- matrix(0,nrow=22,ncol=236,dimnames=list(AA,seq(1:236)))
>for(i in 1:236)
> align1.F[names(summary(align1[[i]])),i] <-
(summary(align1[[i]])/length(align1[[i]]))

Is there a more efficient (i.e., without a loop) way to do this? Is there
some way to use table or ftable to create an 22 x 236 table of amino acid
frequencies from align1 and AA in one fell swoop?

Thanks,
Kurt Wollenberg, PhD
Tufts Center for Vision Research 
New England Medical Center
750 Washington St, Box 450 
Boston, MA, USA
[EMAIL PROTECTED] 
617-636-8945 (Fax)
617-636-9028 (Lab)

The most exciting phrase to hear in science, the one that heralds new
discoveries, is not "Eureka!" (I found it!) but  "That's funny ..." 
--Isaac Asimov


********************** 
Confidentiality Notice\ **********************\      The inf...{{dropped}}

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to