Ivan,
On 02/24/2011 01:47 PM, Ivan Gregoretti wrote:
Hi everybody,
The function matchPWM() that is invoked like this
matchPWM(pwm, subject, min.score="80%", ...)
provides a very fast way of identifying the positions in 'subject' that
match a Position Weight Matrix with a minimum score of 80 percent (relative
to the maximum score).
The result looks like this
matchPWM(pwmMa,Mmusculus[['chr19']],min.score="90%")
Views on a 61342430-letter DNAString subject
subject: NNNNNNNNNNNNNNNNNNNNNNNNNNNN...TATCTCCGAGATGCACCCGCCTGCTTGC
views:
start end width
[1] 3499390 3499407 18 [TTTTGGTCATGGTGCTTC]
[2] 3847991 3848008 18 [TTGAATTCCTGATCCTTC]
[3] 4433615 4433632 18 [TTTGATTCCTGATTCTTC]
[4] 5200625 5200642 18 [TCTTAGTCATGGTGCTTT]
[5] 6475713 6475730 18 [TCTTGTTTCTGCTGCTTC]
[6] 8899734 8899751 18 [TTTCATTCCTGTTTCTTT]
[7] 9435046 9435063 18 [TTGTGTTCCTGCTGCTTC]
[8] 9490297 9490314 18 [TTTTATTCATGCTGTTTC]
[9] 10148754 10148771 18 [TCATGGTCATGGTGCTTC]
... ... ... ... ...
[103] 53870063 53870080 18 [TCAAAGTCATGCTCCTTC]
[104] 55886021 55886038 18 [TCTTTTTCCTGGTACTTC]
[105] 56158096 56158113 18 [GCTGATTCTTGCTGCTTC]
[106] 56585172 56585189 18 [TTTCATTCCAGTTGCTTA]
[107] 56905278 56905295 18 [TTCTGTTCCTGGTACTTC]
[108] 57831404 57831421 18 [TTTTATTTATGTTACTTC]
[109] 58794481 58794498 18 [TCGAATTCCTGCTGCTTT]
[110] 59452136 59452153 18 [TTGCATTTGTGTTACTTC]
[111] 59597303 59597320 18 [TTTTAGTCATGGTGTTTC]
My question:
How do you get matchPWM to report the score?
Why that is important:
The function PWMscoreStartingAt() was created to answer that question. Now,
for some PWMs, running matchPWM with a permissive min.score like "80%"
results in half a million matches. The problem is that PWMscoreStartingAt()
can compute the scores one match at a time. In other words, it takes a
DNAString but not a DNAStringSet.
Computing the scores of all the matches is easy and very very fast,
even when there are millions of matches:
> library(Biostrings)
> data(HNF4alpha)
> pwm <- PWM(HNF4alpha)
> library(BSgenome.Mmusculus.UCSC.mm9)
> subject <- Mmusculus[["chr19"]]
> m <- matchPWM(pwm, subject, min.score="60%")
> length(m)
[1] 4924385
> system.time(scores <- PWMscoreStartingAt(pwm, unmasked(subject),
starting.at=start(m)))
user system elapsed
0.100 0.012 0.114
> length(scores)
[1] 4924385
> head(scores)
[1] 0.6609854 0.6421621 0.6924616 0.6075919 0.6024951 0.6281836
>
Note that you don't need to use a DNAStringSet for this.
But I take your point that having the scores automatically attached to
the matches would be convenient.
More on your other matchPWM's related request in the next email.
Cheers,
H.
Rather than hoping for a vercotised version of PWMscoreStartingAt(), I guess
that it is more practical to try to retrieve the score computed by
matchPWM().
Any suggestions?
Thank you,
Ivan
sessionInfo()
R version 2.13.0 Under development (unstable) (2010-12-02 r53747)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.utf8 LC_NUMERIC=C LC_TIME=en_US.utf8
[4] LC_COLLATE=en_US.utf8 LC_MONETARY=C
LC_MESSAGES=en_US.utf8
[7] LC_PAPER=en_US.utf8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] grid stats graphics grDevices utils datasets methods
base
other attached packages:
[1] multicore_0.1-4 lattice_0.19-17
[3] BSgenome.Mmusculus.UCSC.mm9_1.3.17 BSgenome_1.19.3
[5] cosmo_1.17.0 seqLogo_1.17.0
[7] GenomicRanges_1.3.18 Biostrings_2.19.9
[9] IRanges_1.9.22
loaded via a namespace (and not attached):
[1] Biobase_2.11.8 tools_2.13.0
Ivan Gregoretti, PhD
National Institute of Diabetes and Digestive and Kidney Diseases
National Institutes of Health
5 Memorial Dr, Building 5, Room 205.
Bethesda, MD 20892. USA.
Phone: 1-301-496-1016 and 1-301-496-1592
Fax: 1-301-496-9878
[[alternative HTML version deleted]]
_______________________________________________
Bioc-sig-sequencing mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: [email protected]
Phone: (206) 667-5791
Fax: (206) 667-1319
_______________________________________________
Bioc-sig-sequencing mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing