On Wed, Jul 15, 2009 at 09:49:57PM -0700, Christopher Lee wrote:
-> I just posted a new branch "simpleframe" on github, which implements
-> everything we've been discussing for simplifying blastx etc. It
-> drastically simplifies the tblastn and blastx code. All the pipeline
-> and transformations stuff is unnecessary now. I simply created a new
-> "sequence database" class called TranslationDB that wraps a nucleotide
-> sequence database and provides an interface to six-frame translations
-> of the nucleotide sequences as you had suggested. That means that
-> blastx / tblastn / tblastx are processed exactly the same as blastn /
-> blastp (they just substitute a TranslationDB for the source and / or
-> target sequence databases). All blastx results are now stored in a
-> single NLMSA, rather than being divided into a separate NLMSA /
-> NLMSASlice for each hit as before.
->
-> BlastxMapping.__call__() now returns an NLMSA just as
-> BlastMapping.__call__() does. The only difference is that because
-> blastx (potentially) converts the query sequence to multiple
-> translations, BlastxMapping.__getitem__() cannot just return a single
-> NLMSASlice, but instead returns an iterator for one or more
-> NLMSASlices representing each of those six-frame translations.
->
-> http://github.com/cjlee112/pygr/tree/simpleframe
->
-> For a first glance at this I suggest you just look at the end-product
-> (BlastxMapping in blast.py, and the new translationDB.py), then take a
-> look at the commit history...
Nice work -- it sounds like you've solved the problems I was facing! I
think I'm just not the man for frame calculations, sigh.
I'm going to look at this more, but two initial comments --
first, there's an error in blast_test,
ERROR: test_blastx_parser (blast_test.BlastParsers_Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/t/dev/pygr/tests/blast_test.py", line 491, in test_blastx_parser
lambda t:(len(t[0]), len(t[1]), len(t[0].sequence),
File "/Users/t/dev/pygr/tests/blast_test.py", line 12, in check_results
results = reformat_results(results, formatter)
File "/Users/t/dev/pygr/tests/blast_test.py", line 93, in reformat_results
for t in result.edges(mergeMost=True):
AttributeError: 'pygr.cnestedlist.NLMSA' object has no attribute 'edges'
----------------------------------------------------------------------
second, I've added some tests for reverse-complement matches in BLAST,
branch 'blast_test_rc' that (a) pass and (b) should be merged to your
master.
http://github.com/ctb/pygr/commit/7fbb8dac62bc6ce337a2e9175a74155be8e95f02
http://github.com/ctb/pygr/commit/63b4dca337c29b9a9186e5ca48033eb825904721
cheers,
--titus
--
C. Titus Brown, [email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pygr-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/pygr-dev?hl=en
-~----------~----~----~----~------~----~------~--~---