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
-~----------~----~----~----~------~----~------~--~---

Reply via email to