[R] function to compute consensus DNA sequence by plurality?

Jean lobry lobry at biomserv.univ-lyon1.fr
Wed May 28 14:48:21 CEST 2008


Kim,

Is is what you want?

tmp <- readLines(textConnection(
"TGCATACACCGACAACATCCTCGACGACTACACCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
AGCATACACCGACAACATCCTCGATGACTACTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
AGCATACACCGACAACATCCTCGATGACTACTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG
CGCCTACACCAACGATGTCCTGGACGACTTCTGCTACTACG"))
library(seqinr)
mat <- matrix(sapply(tmp, s2c), nrow = length(tmp), byrow = TRUE)
bma <- function(nucl){
	nucl <- tolower(nucl)
	iupac <- sapply(amb(), amb)
	iupac$u <- NULL # no RNA
	names(iupac)[unlist(lapply(iupac, setequal, nucl))]
}
res <- apply(mat, 2, bma)
toupper(c2s(res))
[1] "HGCMTACACCRACRAYRTCCTSGAYGACTWCWSCTACTACG"

Best,

Jean
-- 
Jean R. Lobry            (lobry at biomserv.univ-lyon1.fr)
Laboratoire BBE-CNRS-UMR-5558, Univ. C. Bernard - LYON I,
43 Bd 11/11/1918, F-69622 VILLEURBANNE CEDEX, FRANCE
allo  : +33 472 43 27 56     fax    : +33 472 43 13 88
http://pbil.univ-lyon1.fr/members/lobry/



More information about the R-help mailing list