[BioPython] Substitution matrices

Iddo Friedberg idoerg@cc.huji.ac.il
Sat, 30 Sep 2000 18:23:33 +0300 (GMT+0300)


Hi,


On 30 Sep 2000, Brad Chapman wrote:

: 
: A while back I was teaching myself dynamic programming and so I made up a
: simple SubstitutionMatrix class which I used to deal with matrices. I
: also parsed a ton of matrices into python dictionaries (exactly as you
: describe!), so this might be something useful for you to start from, if
: you want to make reuse of the stuff I've done. I put the code that I have
: for this at:
: 
: http://www.bioinformatics.org/bradstuff/bp/NWAlign.tar.gz
: 

[Lots of goodies in there]

Thanks for the stuff you gave me Brad. The plethora of dictionaries you
generated from existing log-odds matrices are definitely in place.

1) Pretty encouraging to see that someone else has been playing around
with it, along the same line of thought I took :)

2) I was thinking along the line of enabling users to generate
substitution matrices from their own data. This means that once someone
has a bunch of multiple/pairwise alignments, that person could use the
data to make their own substitution matrix/log-odds matrix/frequency
tables/whatever. So I think that providing a generic matrix type which has
an attribute telling what it is is a good idea.

3) This opens up a new arena: biopython objects for pairwise alignments,
and for multiple alignments. They are not actually necessary for the
subsMat/freqTable modules _per-se_, as each user can easily script out
their own stuff, but I think a bioinformatics library should probably have
these objects, eventually. The Record.PSIBlastObject is a good example.

A couple of questions:

o  Does biopython have a pairwise alignment object?

o  Can I parse the standalone blastpgp output directly from an output
   file which is the result from a run _not_ via biopython? Code example?

Guess it's time for me to try out that nifty PSIBlast parser....


Iddo


--

/* --- */main(c){float t,x,y,b=-2,a=b;for(;b-=a>2?.1/(a=-2):0,b<2;
/*  |  */putchar(30+c),a+=.0503) for(x=y=c=0;++c<90&x*x+y*y<4;y=2*
/*  |  */x*y+b,x=t)t=x*x-y*y+a;}
/* --- ddo Friedberg */