From thamelry at vub.ac.be Mon Jun 2 10:25:34 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Mon Jun 2 03:50:10 2003 Subject: [BioPython] Animated logo proposal Message-ID: <200306020925.34614.thamelry@vub.ac.be> Hi everybody, A put an animated version of Henrik Vestergaard's biopython logo proposal on my website: http://homepages.vub.ac.be/~thamelry/biopython.avi Cheers, --- Thomas Hamelryck COMO-ULTR Vrije Universiteit Brussel (VUB) Belgium http://homepages.vub.ac.be/~thamelry From jpg at research.dfci.harvard.edu Mon Jun 2 09:45:52 2003 From: jpg at research.dfci.harvard.edu (JP Glutting) Date: Mon Jun 2 08:45:49 2003 Subject: [BioPython] Animated logo proposal References: <200306020925.34614.thamelry@vub.ac.be> Message-ID: <3EDB4700.4030606@research.dfci.harvard.edu> Is it possible to post an MPEG? I don't have any windows boxes here, and sinek does not like this .avi... Thanks, JP Thomas Hamelryck wrote: > Hi everybody, > > A put an animated version of Henrik Vestergaard's biopython logo > proposal on my website: > > http://homepages.vub.ac.be/~thamelry/biopython.avi > > Cheers, > > --- > Thomas Hamelryck > COMO-ULTR > Vrije Universiteit Brussel (VUB) > Belgium > http://homepages.vub.ac.be/~thamelry > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From thamelry at vub.ac.be Mon Jun 2 15:23:58 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Mon Jun 2 08:49:12 2003 Subject: [BioPython] Animated logo proposal In-Reply-To: <3EDB4700.4030606@research.dfci.harvard.edu> References: <200306020925.34614.thamelry@vub.ac.be> <3EDB4700.4030606@research.dfci.harvard.edu> Message-ID: <200306021423.58434.thamelry@vub.ac.be> On Monday 02 June 2003 02:45 pm, JP Glutting wrote: > Is it possible to post an MPEG? I don't have any windows boxes here, and > sinek does not like this .avi... I also do not have a Windows-box, but mplayer plays this movie just fine on linux. If I can find an AVI to MPEG convertor I'll make an MPEG version... -Thomas From jpg at research.dfci.harvard.edu Mon Jun 2 10:04:22 2003 From: jpg at research.dfci.harvard.edu (JP Glutting) Date: Mon Jun 2 09:04:13 2003 Subject: [BioPython] Animated logo proposal References: <200306020925.34614.thamelry@vub.ac.be> <3EDB4700.4030606@research.dfci.harvard.edu> <200306021423.58434.thamelry@vub.ac.be> Message-ID: <3EDB4B56.7020804@research.dfci.harvard.edu> Thanks Thomas, I don't have mplayer available. I am using Debian stable, which does not have the latest multimedia stuff (I use identical Debian machines for development and our omosix cluster, so that putting things into production is easier). I will have to look into installing some extra multimedia apps when I get some time... Cheers, JP Thomas Hamelryck wrote: > On Monday 02 June 2003 02:45 pm, JP Glutting wrote: > >>Is it possible to post an MPEG? I don't have any windows boxes here, and >> sinek does not like this .avi... > > > I also do not have a Windows-box, but mplayer plays this movie just fine on > linux. If I can find an AVI to MPEG convertor I'll make an MPEG version... > > -Thomas > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From thamelry at vub.ac.be Mon Jun 2 15:52:43 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Mon Jun 2 09:18:00 2003 Subject: [BioPython] Animated logo proposal In-Reply-To: <3EDB4700.4030606@research.dfci.harvard.edu> References: <200306020925.34614.thamelry@vub.ac.be> <3EDB4700.4030606@research.dfci.harvard.edu> Message-ID: <200306021452.43075.thamelry@vub.ac.be> On Monday 02 June 2003 02:45 pm, JP Glutting wrote: > Is it possible to post an MPEG? I don't have any windows boxes here, and > sinek does not like this .avi... Henrik will post an MPEG-1 tomorrow... -Thomas From thamelry at vub.ac.be Tue Jun 3 14:01:40 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Tue Jun 3 07:27:38 2003 Subject: [BioPython] Animated logo Message-ID: <200306031301.40054.thamelry@vub.ac.be> Hi, An MPEG version of the animated logo proposal is now available from my website. Cheers, --- Thomas Hamelryck COMO-ULTR Vrije Universiteit Brussel (VUB) Belgium http://homepages.vub.ac.be/~thamelry From hytechhk at 163.com Tue Jun 3 21:48:08 2003 From: hytechhk at 163.com (Hattie Yuan) Date: Tue Jun 3 08:48:28 2003 Subject: [BioPython] good & cheap mp3 player, USB Flash disk, cd/vcd/mp3 player and digital camera etc Message-ID: <200306031248.h53CmEn3007431@localhost.localdomain> My dear friend, The price list of USB Flash Disk: USD8.8/32mb USD13.2/64mb USD24.2/128mb USD45/256mb Digital camera 39USD/1300K pixels 17USD/300K pixels CD/VCD/MP3 player (3 in 1) 25USD(Negotiable with the amount) MP3 player Price negotialble with the amount and the kind Wireless Portable Hands Free Price negotialble with the amount We can supply cheap and good mp3 players, USB Flash disks, cd/vcd/mp3(3 in 1) player and digital cameras etc. At first, I give you a brief introduction about our company. We, HY Technology Limited is a professional company developing and producing new electronic products, including MP3 player, CD player, digital camera, USB Flash disk and portable wireless hands free. We have our own factory located in Shenzhen. Our strong R & D team can work out the products to satisfy your need. If any product appeals you, please kindly let me know. All our products have got CE and CCC approval. We set MOQ. If you need a few pcs as samples, the quotation is negotiable. Our delivery time is 10-15 days after receiving the payment by T/T. Sincerely hope to establish a prosperous business relationship with you in near future. Hattie Yuan Sales Specialist HY Technology (HK) Limited From pan at uchicago.edu Wed Jun 4 14:51:46 2003 From: pan at uchicago.edu (pan@uchicago.edu) Date: Wed Jun 4 14:51:35 2003 Subject: [BioPython] Animated logo In-Reply-To: <200306031301.40054.thamelry@vub.ac.be> References: <200306031301.40054.thamelry@vub.ac.be> Message-ID: <1054752706.3ede3fc278027@webmail.uchicago.edu> Hi Thomas, Nice work! One thing: I believe nowadays a logo is meant to be put on a webpage. An animiated one in either avi or mpeg format doesn't serve that purpose. So, IMHO, it might be better to have it in the animated gif format, so people can see it right on a webpage. pan Quoting Thomas Hamelryck : > > Hi, > > An MPEG version of the animated logo proposal is now > available from my website. > > Cheers, > > --- > Thomas Hamelryck > COMO-ULTR > Vrije Universiteit Brussel (VUB) > Belgium > http://homepages.vub.ac.be/~thamelry > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From thamelry at vub.ac.be Wed Jun 4 22:06:51 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Wed Jun 4 14:56:13 2003 Subject: [BioPython] Animated logo In-Reply-To: <1054752706.3ede3fc278027@webmail.uchicago.edu> References: <200306031301.40054.thamelry@vub.ac.be> <1054752706.3ede3fc278027@webmail.uchicago.edu> Message-ID: <200306041856.h54IuNvI032077@sarek.skynet.be> > Nice work! Thanks, but let me point out again that this is entirely the work of Henrik Vestergaard (graphics designer, Arhus, Denmark). > One thing: I believe nowadays a logo is meant to be put on a webpage. > An animiated one in either avi or mpeg format doesn't serve that purpose. > So, IMHO, it might be better to have it in the animated gif format, so > people can see it right on a webpage. Yes, I agree. But the logo is still a proposal, other people have also made some nice logos. We'll settle the fine details (icon sized logos, choice of font, animated gif,...) etc. when we know that this logo is selected :-) Regards, -Thomas From jchang at jeffchang.com Wed Jun 4 13:02:44 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Wed Jun 4 15:01:43 2003 Subject: [BioPython] Animated logo In-Reply-To: <1054752706.3ede3fc278027@webmail.uchicago.edu> Message-ID: <1FE24115-96BF-11D7-BA8D-000A956845CE@jeffchang.com> For the final logo, we'll need versions suitable for: - web page - powerpoint presentations - icon for web links (e.g. click here for biopython, biopython-powered) Others? The web page and powerpoint one might be the same image. The small icon could be the same image if it scales well, but it might have to be cleaned up by hand. Jeff On Wednesday, June 4, 2003, at 11:51 AM, pan@uchicago.edu wrote: > Hi Thomas, > > Nice work! > > One thing: I believe nowadays a logo is meant to be put on a webpage. > An animiated one in either avi or mpeg format doesn't serve that > purpose. > So, IMHO, it might be better to have it in the animated gif format, so > people can see it right on a webpage. > > pan > > > Quoting Thomas Hamelryck : > >> >> Hi, >> >> An MPEG version of the animated logo proposal is now >> available from my website. >> >> Cheers, >> >> --- >> Thomas Hamelryck >> COMO-ULTR >> Vrije Universiteit Brussel (VUB) >> Belgium >> http://homepages.vub.ac.be/~thamelry >> >> _______________________________________________ >> BioPython mailing list - BioPython@biopython.org >> http://biopython.org/mailman/listinfo/biopython >> > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From john_uzaka at starspath.com Thu Jun 5 01:49:49 2003 From: john_uzaka at starspath.com (Mr. John Uzaka) Date: Wed Jun 4 18:49:40 2003 Subject: [BioPython] Confidential Offer ! Message-ID: <200306042249.h54MnPn2017436@localhost.localdomain> Dear friend, This very confidential request should come as a surprise to you but because of the nature of what is happening to me and my family urged me to contact you,and I quite understand that this is not the best way to contact you because of the nature of my request and the attention it requires. I got your contact information from your country's information directory during my desperate search for someone who can assist me secretly and confidentially in relocating and managing some family fortunes. My name is Mr. John Uzaka, the second son of Mr. Frank Uzaka in Zimbabwe. At the height of the present political crises in our country, in which the white farmers in our country are being murdered and ripped off their belongings by the supporters of our President, Mr. Robert G. Mugabe, in their efforts to reclaim all the white owned farms in our country, my father and my elder brother were brutally slanted to a painful death on the 13th of February, 2002, in their struggle to protect some white farmers who ran to take refuge in our house. My father, during his life on earth was a prominent business man who trades on diamond and gold from some foreign countries. He publicly opposes the crude policies and crime against humanity on the white farmers by Mr. Robert Mugabe and his followers, which they enforced media law restrictions to protect their wicked acts. That not being enough, the President and his followers after winning the last undemocratic elections decided to block and confiscate all accounts and assert. During my fathers life on earth, he had deposited the sum of FIFTEEN. FIVE MILLION United States Dollars [$15.5 MILLON U.S DOLLARS], in a trunk box with a Trust and Security Company in Madrid- Spain for a cash and carry Diamond and Gold business with some foreign business customers. Due to the escalation of this problem, we decided to move this fund to the security company's overseas office in Spain. In view of this and as the only surviving son of my father, and with the present clamp down, killing and confiscation of his assets as one of those who render support to the white farmers in our country, I therefore humbly wish to inform you of my intentions to you to the security company's office in Europe where this money is currently deposited to avoid it being confiscated by president Mugabe. And also seek for your honest and trustworthy assistance to help me clear and accommodate this money over there because we are unable to move out of Africa due to the restriction of this Government. Also, I will try and move down to meet you after which you have claim this fund into your custody. Now this is what I actually want you to do for me; 1. I want you to be presented to the Trust and Security company as the person I contacted to assist my family for this purpose, with whose name and address myself will forward to them their office in Madrid- Spain as the person that will clear this money that is being deposited in Europe. 2. To finally assist me in accommodating and managing this money in any lucrative business in your country for at least ten years. Please, I hope you will grant and view this very request with favour and much understanding of our situation now, and will be a very honest and reliable person to deal with. And also bearing in mind the confidential nature of this my request. I emphasize please that you keep every bit of it to yourself so as to protect my family future and the safety of this fund. 3. For your noble assistance of safeguarding the fund under your custody, I will offer you 20% of the total fund and 10% of every annual turnover from any business which you intend to invest the other 80% into for a consecutive period of ten years. Thanking you in anticipation of your urgent response as soon as you read this request. Best Regards, Mr. Jonh Uzaka From Cath.Lawrence at anu.edu.au Thu Jun 5 18:03:31 2003 From: Cath.Lawrence at anu.edu.au (Cath Lawrence) Date: Thu Jun 5 03:03:24 2003 Subject: [BioPython] biopython installation In-Reply-To: Message-ID: On Tuesday, May 27, 2003, at 12:57 PM, Jeffrey Chang wrote: > Hi Sam, > Have you taken a look through Brad's installation instructions on the > website? > http://www.biopython.org/docs/install/Installation.html > Please let us know if the documentation there is insufficient, > particularly if there are any areas that need better coverage. I'd like to request a couple of things - 1. Minor navigation quibble - give the website a default index in each directory, if you try to navigate by trimming URLs you get "directory listing denied" (eg this obvious trim doesn't work - http://www.biopython.org/docs/ ) 2. Make the install documents be more explicit on the associated modules. Background: I have been updating my CVS version (after a couple of months of doing other tasks) and thought I should probably re-run the setup and tests since the move to python 2.2. I have followed the http://www.biopython.org/docs/install/Installation.html instructions and tests along, but since I was CVS updating much didn't apply. Anyway the step 5 'happy place" tests are fine. But when I run the test suite I get many tests skipped due to import errors - and the documentation appears to be silent on these modules and their purposes. Here's the total test output: Skipping test because of import error: No module named Crystal Skipping test because of import error: No module named MySQLdb Skipping test because of import error: No module named MySQLdb Skipping test because of import error: No module named Polypeptide Skipping test because of import error: No module named Ais Skipping test because of import error: No module named CDD Skipping test because of import error: cannot import name ECell Skipping test because of import error: No module named Geo Skipping test because of import error: No module named LocusLink.web_parse Skipping test because of import error: No module named LocusLink Skipping test because of import error: cannot import name Ndb Skipping test because of import error: No module named Saf Skipping test because of import error: cannot import name trie Skipping test because of import error: cannot import name trie regards Cath -- Cath dot Lawrence at anu dot edu dot au Senior Scientific Programmer, Centre for BioInformation Science, Australian National University From jchang at smi.stanford.edu Fri Jun 6 13:50:39 2003 From: jchang at smi.stanford.edu (Jeffrey Chang) Date: Fri Jun 6 15:54:23 2003 Subject: [BioPython] biopython installation In-Reply-To: Message-ID: <26115E60-9858-11D7-893F-000A956845CE@smi.stanford.edu> On Thursday, June 5, 2003, at 12:03 AM, Cath Lawrence wrote: > > I'd like to request a couple of things - > > 1. Minor navigation quibble - give the website a default index in each > directory, if you try to navigate by trimming URLs you get "directory > listing denied" (eg this obvious trim doesn't work - > http://www.biopython.org/docs/ ) I don't know if this is possible anymore, since most of the website is now dynamically generated. > 2. Make the install documents be more explicit on the associated > modules. Yep, I agree. We've been wanting to do this for a while. There's no question we desperately need more people working on documentation! > Background: > I have been updating my CVS version (after a couple of months of doing > other tasks) and thought I should probably re-run the setup and tests > since the move to python 2.2. > > I have followed the > http://www.biopython.org/docs/install/Installation.html instructions > and tests along, but since I was CVS updating much didn't apply. > Anyway the step 5 'happy place" tests are fine. > > But when I run the test suite I get many tests skipped due to import > errors - and the documentation appears to be silent on these modules > and their purposes. > > Here's the total test output: > Skipping test because of import error: No module named Crystal > Skipping test because of import error: No module named MySQLdb > Skipping test because of import error: No module named MySQLdb > Skipping test because of import error: No module named Polypeptide > Skipping test because of import error: No module named Ais > Skipping test because of import error: No module named CDD > Skipping test because of import error: cannot import name ECell > Skipping test because of import error: No module named Geo > Skipping test because of import error: No module named > LocusLink.web_parse > Skipping test because of import error: No module named LocusLink > Skipping test because of import error: cannot import name Ndb > Skipping test because of import error: No module named Saf > Skipping test because of import error: cannot import name trie > Skipping test because of import error: cannot import name trie This does not look right. There should not be import errors on packages like Crystal, Polypeptide, Saf, etc. You mentioned that you were using the CVS version. Some of these modules look relatively recent. Is it possible that when you are running python, it is trying to import from an old version of biopython? The regression tests might get confused if there were multiple installations of biopython on the machine. Jeff From chapmanb at uga.edu Fri Jun 6 17:14:57 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Fri Jun 6 16:19:09 2003 Subject: [BioPython] biopython installation In-Reply-To: <26115E60-9858-11D7-893F-000A956845CE@smi.stanford.edu> References: <26115E60-9858-11D7-893F-000A956845CE@smi.stanford.edu> Message-ID: <20030606201457.GD936@evostick.agtec.uga.edu> Cath Lawrence: > >I'd like to request a couple of things - > > > >1. Minor navigation quibble - give the website a default index in each > >directory, if you try to navigate by trimming URLs you get "directory > >listing denied" (eg this obvious trim doesn't work - > >http://www.biopython.org/docs/ ) Jeff: > I don't know if this is possible anymore, since most of the website is > now dynamically generated. I think that this is pretty easily fixed through Quixote, if what you want is to be able to browse the files in the folders. Basically, it looks like it should just require changing BioWebsite/__init__.py from: docs = StaticDirectory("/home/websites/biopython.org/docs") to: docs = StaticDirectory("/home/websites/biopython.org/docs", list_folder = 1) (and all other directories there we want to allow this form). I guess this is the right thing to do, although I would prefer that people just use my pretty web interfaces :-). I'd make this change myself to test it out but biopython.org doesn't seem happy with me sshing to it this second (I get "ssh_exchange_identification: Connection closed by remote host" messages). Whenever I figure that out I can make this change if its what we want. Thanks for the comments on documentation and things. I won't repeat Jeff there, but definitely the feedback is appreciated. Brad From omid9dr18 at hotmail.com Fri Jun 6 21:54:26 2003 From: omid9dr18 at hotmail.com (Omid Khalouei) Date: Fri Jun 6 18:28:13 2003 Subject: [BioPython] biopython installation Message-ID: I also agree to some modifications made to the software documents. I didn't find it very clear although I went through it several times and I still wasn't able to instal the software, so I gave up! :) It's alright I'll keep myself busy with other stuff till there will be more people to work on that part. Saying this, I do appreciate all your dedications to bring this software freely available to the public. It sure requires lots of reading, updating, maintenance, ... Keep up with the good work guys! Sam K. ________________________________________________ Sam(Omid) Khalouei Departments of Computer Science & Human Biology University of Toronto Alt. e-mail: sam.khalouei@utoronto.ca ________________________________________________ >From: Jeffrey Chang >To: Cath Lawrence >CC: biopython@biopython.org >Subject: Re: [BioPython] biopython installation >Date: Fri, 6 Jun 2003 12:50:39 -0700 > >On Thursday, June 5, 2003, at 12:03 AM, Cath Lawrence wrote: >> >>I'd like to request a couple of things - >> >>1. Minor navigation quibble - give the website a default index in each >>directory, if you try to navigate by trimming URLs you get "directory >>listing denied" (eg this obvious trim doesn't work - >>http://www.biopython.org/docs/ ) > >I don't know if this is possible anymore, since most of the website is now >dynamically generated. > > >>2. Make the install documents be more explicit on the associated modules. > >Yep, I agree. We've been wanting to do this for a while. There's no >question we desperately need more people working on documentation! > > >>Background: >>I have been updating my CVS version (after a couple of months of doing >>other tasks) and thought I should probably re-run the setup and tests >>since the move to python 2.2. >> >>I have followed the >>http://www.biopython.org/docs/install/Installation.html instructions and >>tests along, but since I was CVS updating much didn't apply. Anyway the >>step 5 'happy place" tests are fine. >> >>But when I run the test suite I get many tests skipped due to import >>errors - and the documentation appears to be silent on these modules and >>their purposes. >> >>Here's the total test output: >>Skipping test because of import error: No module named Crystal >>Skipping test because of import error: No module named MySQLdb >>Skipping test because of import error: No module named MySQLdb >>Skipping test because of import error: No module named Polypeptide >>Skipping test because of import error: No module named Ais >>Skipping test because of import error: No module named CDD >>Skipping test because of import error: cannot import name ECell >>Skipping test because of import error: No module named Geo >>Skipping test because of import error: No module named LocusLink.web_parse >>Skipping test because of import error: No module named LocusLink >>Skipping test because of import error: cannot import name Ndb >>Skipping test because of import error: No module named Saf >>Skipping test because of import error: cannot import name trie >>Skipping test because of import error: cannot import name trie > >This does not look right. There should not be import errors on packages >like Crystal, Polypeptide, Saf, etc. You mentioned that you were using the >CVS version. Some of these modules look relatively recent. Is it possible >that when you are running python, it is trying to import from an old >version of biopython? The regression tests might get confused if there >were multiple installations of biopython on the machine. > >Jeff > >_______________________________________________ >BioPython mailing list - BioPython@biopython.org >http://biopython.org/mailman/listinfo/biopython _________________________________________________________________ Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail From jchang at jeffchang.com Thu Jun 5 21:28:20 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 6 19:06:27 2003 Subject: [BioPython] biopython installation In-Reply-To: Message-ID: On Thursday, June 5, 2003, at 12:03 AM, Cath Lawrence wrote: > > I'd like to request a couple of things - > > 1. Minor navigation quibble - give the website a default index in each > directory, if you try to navigate by trimming URLs you get "directory > listing denied" (eg this obvious trim doesn't work - > http://www.biopython.org/docs/ ) I don't know if this is possible anymore, since most of the website is now dynamically generated. > 2. Make the install documents be more explicit on the associated > modules. Yep, I agree. We've been wanting to do this for a while. There's no question we desperately need more people working on documentation! > Background: > I have been updating my CVS version (after a couple of months of doing > other tasks) and thought I should probably re-run the setup and tests > since the move to python 2.2. > > I have followed the > http://www.biopython.org/docs/install/Installation.html instructions > and tests along, but since I was CVS updating much didn't apply. > Anyway the step 5 'happy place" tests are fine. > > But when I run the test suite I get many tests skipped due to import > errors - and the documentation appears to be silent on these modules > and their purposes. > > Here's the total test output: > Skipping test because of import error: No module named Crystal > Skipping test because of import error: No module named MySQLdb > Skipping test because of import error: No module named MySQLdb > Skipping test because of import error: No module named Polypeptide > Skipping test because of import error: No module named Ais > Skipping test because of import error: No module named CDD > Skipping test because of import error: cannot import name ECell > Skipping test because of import error: No module named Geo > Skipping test because of import error: No module named > LocusLink.web_parse > Skipping test because of import error: No module named LocusLink > Skipping test because of import error: cannot import name Ndb > Skipping test because of import error: No module named Saf > Skipping test because of import error: cannot import name trie > Skipping test because of import error: cannot import name trie This does not look right. There should not be import errors on packages like Crystal, Polypeptide, Saf, etc. You mentioned that you were using the CVS version. Some of these modules look relatively recent. Is it possible that when you are running python, it is trying to import from an old version of biopython? The regression tests might get confused if there were multiple installations of biopython on the machine. Jeff From chapmanb at uga.edu Sat Jun 7 14:38:52 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Sat Jun 7 13:42:24 2003 Subject: [BioPython] biopython installation In-Reply-To: References: Message-ID: <20030607173852.GA6599@evostick.agtec.uga.edu> Hi Sam; > I also agree to some modifications made to the software > documents. I didn't find it very clear although I went > through it several times and I still > wasn't able to instal the software, so I gave up! :) It would be really helpful to us if you could specify the areas where the documentation was unclear and where you got lost. I know how to install the thing and can only do my best to project to the potential problems and questions people might have -- if you can give detailed feedback on where you got stuck, that would be a huge help in making the documentation more useful to everyone. Obviously we want everything to be as clear as possible and your feedback is a huge help in making that happen. I need to update the install documentation anyways since it contains links to the old website, so any information you could provide would help make it better. Thanks for the comments! Brad From chapmanb at uga.edu Sun Jun 8 21:58:36 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Sun Jun 8 21:02:37 2003 Subject: [BioPython] Updates to the Biopython website Message-ID: <20030608205836.GA28842@66-190-91-31.charterga.net> Hello all; I had time this weekend to work on the Biopython website and I've implemented a number of the things I talked about doing a couple of weeks ago, including suggestions we've gotten since then. The major changes are: -> ScriptCentral is back! By popular request, the list of pointers to python code for the life sciences was readded to the website. It is now editable on-line like the Participants page, so hopefully it will easier to keep up-to-date and current. Please visit the page and make sure I didn't make any errors getting the data there. Edit errors or make additions as you see fit. As before, the username is 'biopython' and the password is 'user'. -> More security for on-line pages. With on-line editable pages and a well-known password come potential security concerns related to annoying people with too much time on their hands. We now keep backups of both the Participants and ScriptCentral page so we should be able to fix any problems if people cause them. -> Directory browsing for files and docs directories. No more "directory listing not allowed" errors. -> General code cleanup related to the ScriptCentral addition. Please check it out and let me know about any errors or problems (or things that you like!). As before, I'd like to encourage people who haven't done so to add themselves to the Participants page. I think this takes care of most of the comments people had about the website (except for the logo, but we're working on that!). Hope it looks good for everyone! Brad From andreas.kuntzagk at mdc-berlin.de Tue Jun 10 12:15:55 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Tue Jun 10 07:15:57 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags Message-ID: <1055243518.8849.19.camel@sulawesi> I'm not sure if it's really so, because the profiler prints some negative numbers... (a known bug? have to research this issue) but it seems that when I parse a large GenBank file, most of the time is spend in this function. Can anybody think of a more efficient way to do this? I don't fully understand the algorithm here. What values can be stored in this flags? Only 0 and 1? Is there a difference between value 0 and not having the key in the dict? Andreas From thamelry at vub.ac.be Wed Jun 11 10:16:19 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Wed Jun 11 03:45:48 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: <20030608205836.GA28842@66-190-91-31.charterga.net> References: <20030608205836.GA28842@66-190-91-31.charterga.net> Message-ID: <200306110916.19823.thamelry@vub.ac.be> On Sunday 08 June 2003 10:58 pm, Brad Chapman wrote: > I think this takes care of most of the comments people had about the > website (except for the logo, but we're working on that!). Hope it > looks good for everyone! Talking about the logo: when and how will a logo be picked? The topic seems to be completely dead on the mailing list.... Cheers, -Thomas From jefftc at stanford.edu Wed Jun 11 08:48:49 2003 From: jefftc at stanford.edu (Jeffrey Chang) Date: Wed Jun 11 10:48:16 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: <200306110916.19823.thamelry@vub.ac.be> Message-ID: Brad will probably need it next for his BOSC talk. When will you need it so that it gets incorporated into your talk? I guess we'll choose it 2 weeks before that, to give people plenty of time to finalize the design (e.g. make correct sizes, any small changes, etc...) Jeff On Wednesday, June 11, 2003, at 12:16 AM, Thomas Hamelryck wrote: > On Sunday 08 June 2003 10:58 pm, Brad Chapman wrote: >> I think this takes care of most of the comments people had about the >> website (except for the logo, but we're working on that!). Hope it >> looks good for everyone! > > Talking about the logo: when and how will a logo be picked? > The topic seems to be completely dead on the mailing list.... > > Cheers, > > -Thomas > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From idoerg at burnham.org Wed Jun 11 10:30:56 2003 From: idoerg at burnham.org (Iddo Friedberg) Date: Wed Jun 11 12:31:30 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: References: Message-ID: <3EE75940.10401@burnham.org> Jeffrey Chang wrote: > Brad will probably need it next for his BOSC talk. When will you need > it so that it gets incorporated into your talk? I guess we'll choose it > 2 weeks before that, to give people plenty of time to finalize the > design (e.g. make correct sizes, any small changes, etc...) > > Jeff > > > On Wednesday, June 11, 2003, at 12:16 AM, Thomas Hamelryck wrote: > >> On Sunday 08 June 2003 10:58 pm, Brad Chapman wrote: >> >>> I think this takes care of most of the comments people had about the >>> website (except for the logo, but we're working on that!). Hope it >>> looks good for everyone! >> >> >> Talking about the logo: when and how will a logo be picked? >> The topic seems to be completely dead on the mailing list.... Dead? The whole logo discussion thing generated the most traffic I have seen on this list in while. :) Best, ./I >> >> Cheers, >> >> -Thomas >> >> _______________________________________________ >> BioPython mailing list - BioPython@biopython.org >> http://biopython.org/mailman/listinfo/biopython > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > > -- Iddo Friedberg, Ph.D. The Burnham Institute 10901 N. Torrey Pines Rd. La Jolla, CA 92037 USA Tel: +1 (858) 646 3100 x3516 Fax: +1 (858) 646 3171 http://bioinformatics.ljcrf.edu/~iddo From thamelry at vub.ac.be Wed Jun 11 21:07:47 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Wed Jun 11 13:57:28 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: <3EE75940.10401@burnham.org> References: <3EE75940.10401@burnham.org> Message-ID: <200306111757.h5BHv912020415@sojef.skynet.be> > Dead? The whole logo discussion thing generated the most traffic I have > seen on this list in while. :) Pythoneers are versatile :-) There seem to be no new logo submissions so it's time to finally pick one I think... Cheers, -Thomas From chapmanb at uga.edu Wed Jun 11 14:57:50 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Wed Jun 11 14:01:51 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: References: <200306110916.19823.thamelry@vub.ac.be> Message-ID: <20030611175750.GE67357@evostick.agtec.uga.edu> Thomas: > >Talking about the logo: when and how will a logo be picked? Jeff: > Brad will probably need it next for his BOSC talk. When will you need > it so that it gets incorporated into your talk? Actually, you don't need to worry about the talk. I created a front page with all of the various logos in a kind of collage (well, really just jammed together -- I can't pretend I'm all that artistic). If one gets picked before then I can use it in the footer or whatever, but it's no big deal either way. I'm flexible. Brad From pan at uchicago.edu Wed Jun 11 14:36:46 2003 From: pan at uchicago.edu (pan@uchicago.edu) Date: Wed Jun 11 14:36:58 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: References: Message-ID: <1055356606.3ee776be40af4@webmail-b.uchicago.edu> まノ Jeffrey Chang : > Brad will probably need it next for his BOSC talk. When will you need > it so that it gets incorporated into your talk? I guess we'll choose When is the BOSC talk ??? > it 2 weeks before that, to give people plenty of time to finalize the > design (e.g. make correct sizes, any small changes, etc...) Yea good idea. I've been thinking to enlarge the 'Biopython' letters on my design so it is visible when the logo is reduced to logo size but haven't got time to do it yet.... pan > > Jeff > > > On Wednesday, June 11, 2003, at 12:16 AM, Thomas Hamelryck wrote: > > > On Sunday 08 June 2003 10:58 pm, Brad Chapman wrote: > >> I think this takes care of most of the comments people had about the > >> website (except for the logo, but we're working on that!). Hope it > >> looks good for everyone! > > > > Talking about the logo: when and how will a logo be picked? > > The topic seems to be completely dead on the mailing list.... > > > > Cheers, > > > > -Thomas > > > > _______________________________________________ > > BioPython mailing list - BioPython@biopython.org > > http://biopython.org/mailman/listinfo/biopython > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From dlapointe at attbi.com Wed Jun 11 20:31:34 2003 From: dlapointe at attbi.com (David Lapointe) Date: Wed Jun 11 19:30:37 2003 Subject: [BioPython] Updates to the Biopython website In-Reply-To: <200306110916.19823.thamelry@vub.ac.be> References: <20030608205836.GA28842@66-190-91-31.charterga.net> <200306110916.19823.thamelry@vub.ac.be> Message-ID: <200306111931.34730.dlapointe@attbi.com> It's not dead. It's sleeping. On Wednesday 11 June 2003 03:16 am, Thomas Hamelryck wrote: > On Sunday 08 June 2003 10:58 pm, Brad Chapman wrote: > > I think this takes care of most of the comments people had about the > > website (except for the logo, but we're working on that!). Hope it > > looks good for everyone! > > Talking about the logo: when and how will a logo be picked? > The topic seems to be completely dead on the mailing list.... > > Cheers, > > -Thomas -- .david David Lapointe Don't make the perfect the enemy of the good. From etalla at pasteur.fr Thu Jun 12 13:06:27 2003 From: etalla at pasteur.fr (Emmanuel TALLA) Date: Thu Jun 12 06:21:43 2003 Subject: [BioPython] Blast Parser Message-ID: <3.0.1.32.20030612120627.008f2100@pasteur.fr> Hi everyone, I'm trying to parse a blast file with the NCBIStandalone module and I get the following error messages. The Blast file is done with Blast 2.2.5 or 2.2.6. What wrong with the blast parsing??? Thanks Emmanuel ###### Error messages File "./test_parsing_blast.py", line 56, in ? print BlastParser2CrossHyb() File "./test_parsing_blast.py", line 16, in BlastParser2CrossHyb b_record = b_iterator.next() File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 1353, in next return self._parser.parse(File.StringHandle(data)) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 515, in parse self._scanner.feed(handle, self._consumer) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 84, in feed self._scan_rounds(uhandle, consumer) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 140, in _scan_rounds self._scan_alignments(uhandle, consumer) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 261, in _scan_alignments self._scan_masterslave_alignment(uhandle, consumer) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 364, in _scan_masterslave_alignment consumer.multalign(line) File "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 769, in multalign name = string.rstrip(line[:self._name_length]) TypeError: sequence index must be integer ############# The parser script ################## #! /local/bin/python from string import * from Bio.Blast import NCBIStandalone def BlastParser2CrossHyb(): BlastFile = "YBR301w.dna.bln" blast_out = open(BlastFile,'r') b_parser = NCBIStandalone.BlastParser() b_iterator = NCBIStandalone.Iterator(blast_out, b_parser) ID_threshold = 40 ML_threshold = 25 LC_threshold = 20 ListeCH=[] while 1: b_record = b_iterator.next() if b_record is None: break for hit in b_record.alignments: for hsp in hit.hsps: tupleId = hsp.identities#renvoi un tuple Id = float(tupleId[0]) ML= tupleId[1] ID= 100*Id/ML matches = hsp.match Lmatch = matches.split() Lmatch.sort() Lmatch.reverse() LC = len(Lmatch[0]) if (ML >= ML_threshold and ID >= ID_threshold) or (LC >= LC_threshold): tupleGap = hsp.gaps # renvoi un tuple gap = tupleGap[0] if gap == None: gap = 0 QueryStart = hsp.query_start QueryEnd = hsp.query_start + ML - 1 - gap tupleStrand = hsp.strand if tupleStrand[1] == 'Minus': SubjectStart = hsp.sbjct_start - ML + 1 #question gap sur le subject??? SubjectEnd = hsp.sbjct_start else: SubjectStart = hsp.sbjct_start SubjectEnd = hsp.sbjct_start + ML - 1 #ne tient pas compte du gap key = [QueryStart, QueryEnd, hit.title[1:], SubjectStart, SubjectEnd, ID, tupleStrand[1]] ListeCH.append(key) blast_out.close() return ListeCH print BlastParser2CrossHyb() ############ ************************************** Emmanuel TALLA, Ph.D Institut Pasteur Genetique Moleculaire des levures 25, rue du dr Roux 75724 Paris cedex 15 France Tel: +33(0)1.40.61.30.59 Fax: +33(0)1.40.61.34.56 **************************************** From andreas.kuntzagk at mdc-berlin.de Thu Jun 12 14:36:34 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Thu Jun 12 09:36:36 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <20030611211819.GB55983@evostick.agtec.uga.edu> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> Message-ID: <1055424759.8850.78.camel@sulawesi> > Well, I'm glad you're working on it. Two non-experts working on > something is better then one :-). > > > I just applied the patch against 1.10 (don't use cvs at the moment) > > Ran the setup.py test and it failed the same tests as before. > > Okay, so that means it didn't break anything new, right? That's a > good thing. probably. But what confuses me is that one of the failing tests is GenBank. (ValueError: Unexpected function name: CONTIGjoin) It's also failing for cvs version. But would the new code be wrong, I think some other tests should fail, because ParserSupport is used all over the place. > Cool, so it's twice as fast? Sweet. I'll look at the code again over > the weekend, see if I can do anything else, and then test it out. > Getting rid of my crap code to speed it up is definitely a good > thing. > > > If I have some time, I will do some more profiling. Can't be, that the > > bioperl-parser for GenBank my colleague is using is much fasten then > > biopython. I have some ideas for this. First I want to know if I can make following assumptions: 1. the values in ParserSupport.EventGenerator.flags are allways 0 or 1 2. the keys are allways same as ParserSupport.EventGenerator.interest_tags 3. Nobody outside ParserSupport.EventGenerator uses these flags (Probably hardest to confirm.) Then we could get rid of _get_set_flags and just put only the set flags into the dict. This would give another 10% performance boost for my test prog. > Python is always better. It has to be :-) Always better? No question. Always faster? We're working on it :-) Andreas PS: Returning this discussion to the list. Maybe somebody else has something to say about this. From sbassi at asalup.org Thu Jun 12 11:54:43 2003 From: sbassi at asalup.org (Sebastian Bassi) Date: Thu Jun 12 09:57:06 2003 Subject: [BioPython] gapped consensus? Message-ID: <3EE88623.8070705@asalup.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I would like to have the chance to have "gapped consensus". Now the dumb_consensus (on Align.AlignInfo) work like this: AATGGGTCA---GTGACG AA-GGGTGA---GTCACG AATGGGTGA--GGTCACG AATGG-TGAAAGGTCACG Gives this consensus: AATGGGTGAAAGGTCACG But I'm working on a program to design primers based on INDELS, so it would be usefull for me a result like this: AA-GG-TGA---GTCACG Each column with a -, the - will be on the consensus. Another posibility (closer than what the program actually does) would be: AATGGGTGA---GTCACG In this way the - (dashes, gaps) would be weighted as any other character. I think a little hack on the dumb_consensus function could allow me to do it. I even comment out the place where it chacks for - or . before entering on the sum, but I still get letters instead of -. Here is the original relevant code: def dumb_consensus(self, threshold = .7, ambiguous = "N", ~ consensus_alpha = None, require_multiple = 0): ~ """Output a fast consensus sequence of the alignment. ~ This doesn't do anything fancy at all. It will just go through the ~ sequence residue by residue and count up the number of each type ~ of residue (ie. A or G or T or C for DNA) in all sequences in the ~ alignment. If the percentage of the most common residue type is ~ greater then the passed threshold, then we will add that residue type, ~ otherwise an ambiguous character will be added. ~ This could be made a lot fancier (ie. to take a substitution matrix ~ into account), but it just meant for a quick and dirty consensus. ~ Arguments: ~ o threshold - The threshold value that is required to add a particular ~ atom. ~ o ambiguous - The ambiguous character to be added when the threshold is ~ not reached. ~ o consensus_alpha - The alphabet to return for the consensus sequence. ~ If this is None, then we will try to guess the alphabet. ~ o require_multiple - If set as 1, this will require that more than ~ 1 sequence be part of an alignment to put it in the consensus (ie. ~ not just 1 sequence and gaps). ~ """ ~ consensus = '' ~ # find the length of the consensus we are creating ~ con_len = self.alignment.get_alignment_length() ~ # go through each seq item ~ for n in range(con_len): ~ # keep track of the counts of the different atoms we get ~ atom_dict = {} ~ num_atoms = 0 ~ for record in self.alignment._records: ~ # make sure we haven't run past the end of any sequences ~ # if they are of different lengths ~ if n < len(record.seq): ~ #if record.seq[n] != '-' and record.seq[n] != '.': ~ if record.seq[n] not in atom_dict.keys(): ~ atom_dict[record.seq[n]] = 1 ~ else: ~ atom_dict[record.seq[n]] = \ ~ atom_dict[record.seq[n]] + 1 ~ num_atoms = num_atoms + 1 ~ max_atoms = [] ~ max_size = 0 ~ for atom in atom_dict.keys(): ~ if atom_dict[atom] > max_size: ~ max_atoms = [atom] ~ max_size = atom_dict[atom] ~ elif atom_dict[atom] == max_size: ~ max_atoms.append(atom) ~ if require_multiple and num_atoms == 1: ~ consensus = consensus + ambiguous ~ elif (len(max_atoms) == 1) and ((float(max_size)/float(num_atoms)) ~ >= threshold): ~ consensus = consensus + max_atoms[0] ~ else: ~ consensus = consensus + ambiguous ~ # we need to guess a consensus alphabet if one isn't specified ~ if consensus_alpha is None: ~ consensus_alpha = self._guess_consensus_alphabet() ~ return Seq(consensus, consensus_alpha) - -- Best regards, //=\ Sebastian Bassi - Diplomado en Ciencia y Tecnologia, UNQ //=\ \=// IT Manager Advanta Seeds - Balcarce Research Center - \=// //=\ Pro secretario ASALUP - www.asalup.org - PGP key available //=\ \=// E-mail: sbassi@genesdigitales.com - ICQ UIN: 3356556 - \=// ~ http://Bioinformatica.info -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAj7ohiIACgkQ6lc7ixf6gKpjGwCggxTet25TfyqWrvhJRcrUmglt ONsAn2lv6xQOnDUlKKKKABrJiDVVFG5x =CvDr -----END PGP SIGNATURE----- From jchang at jeffchang.com Thu Jun 12 09:27:16 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Thu Jun 12 11:26:40 2003 Subject: [BioPython] Blast Parser In-Reply-To: <3.0.1.32.20030612120627.008f2100@pasteur.fr> Message-ID: <597966B2-9CEA-11D7-A936-000A956845CE@jeffchang.com> Try using the latest version of NCBIStandalone from cvs.biopython.org. If it still doesn't work, please email me the blast run that is causing the problem. Jeff On Thursday, June 12, 2003, at 04:06 AM, Emmanuel TALLA wrote: > Hi everyone, > > I'm trying to parse a blast file with the NCBIStandalone module and I > get > the following error messages. The Blast file is done with Blast 2.2.5 > or > 2.2.6. What wrong with the blast parsing??? > > Thanks > > Emmanuel > > ###### Error messages > File "./test_parsing_blast.py", line 56, in ? > print BlastParser2CrossHyb() > File "./test_parsing_blast.py", line 16, in BlastParser2CrossHyb > b_record = b_iterator.next() > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 1353, in next > return self._parser.parse(File.StringHandle(data)) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 515, in parse > self._scanner.feed(handle, self._consumer) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 84, in feed > self._scan_rounds(uhandle, consumer) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 140, in _scan_rounds > self._scan_alignments(uhandle, consumer) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 261, in _scan_alignments > self._scan_masterslave_alignment(uhandle, consumer) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 364, in _scan_masterslave_alignment > consumer.multalign(line) > File > "/local/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 769, in multalign > name = string.rstrip(line[:self._name_length]) > TypeError: sequence index must be integer > > > ############# The parser script ################## > #! /local/bin/python > from string import * > from Bio.Blast import NCBIStandalone > > > def BlastParser2CrossHyb(): > BlastFile = "YBR301w.dna.bln" > blast_out = open(BlastFile,'r') > b_parser = NCBIStandalone.BlastParser() > b_iterator = NCBIStandalone.Iterator(blast_out, b_parser) > > ID_threshold = 40 > ML_threshold = 25 > LC_threshold = 20 > ListeCH=[] > > while 1: > b_record = b_iterator.next() > > if b_record is None: > break > > for hit in b_record.alignments: > for hsp in hit.hsps: > tupleId = hsp.identities#renvoi un tuple > Id = float(tupleId[0]) > ML= tupleId[1] > ID= 100*Id/ML > matches = hsp.match > Lmatch = matches.split() > Lmatch.sort() > Lmatch.reverse() > LC = len(Lmatch[0]) > if (ML >= ML_threshold and ID >= ID_threshold) or (LC > >= > LC_threshold): > tupleGap = hsp.gaps # renvoi un tuple > gap = tupleGap[0] > if gap == None: > gap = 0 > > QueryStart = hsp.query_start > QueryEnd = hsp.query_start + ML - 1 - gap > > tupleStrand = hsp.strand > if tupleStrand[1] == 'Minus': > SubjectStart = hsp.sbjct_start - ML + 1 > #question > gap sur le subject??? > SubjectEnd = hsp.sbjct_start > else: > SubjectStart = hsp.sbjct_start > SubjectEnd = hsp.sbjct_start + ML - 1 #ne > tient pas > compte du gap > > key = [QueryStart, QueryEnd, hit.title[1:], > SubjectStart, SubjectEnd, ID, tupleStrand[1]] > ListeCH.append(key) > > blast_out.close() > return ListeCH > > > print BlastParser2CrossHyb() > > ############ > ************************************** > Emmanuel TALLA, Ph.D > Institut Pasteur > Genetique Moleculaire des levures > 25, rue du dr Roux > 75724 Paris cedex 15 > France > Tel: +33(0)1.40.61.30.59 > Fax: +33(0)1.40.61.34.56 > **************************************** > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From sbassi at asalup.org Thu Jun 12 15:06:46 2003 From: sbassi at asalup.org (Sebastian Bassi) Date: Thu Jun 12 13:09:21 2003 Subject: [BioPython] gapped consensus? In-Reply-To: <3EE88623.8070705@asalup.org> References: <3EE88623.8070705@asalup.org> Message-ID: <3EE8B326.40905@asalup.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Sebastian Bassi wrote: | I would like to have the chance to have "gapped consensus". | Now the dumb_consensus (on Align.AlignInfo) work like this: I reply yo myself in some extent. Commenting out this line do the work: #if record.seq[n] != '-' and record.seq[n] != '.': I didn't see the results at first because there was a AlignInfo.pyc file and the Python interpreter didin't look for my modified AlignInfo.py file. This was a quick hack, now I'm modifing the function in order to accept as a parameter to display gaps or not. When I finish, I will submit it for consideration of inclusion on the CVS. - -- Best regards, //=\ Sebastian Bassi - Diplomado en Ciencia y Tecnologia, UNQ //=\ \=// IT Manager Advanta Seeds - Balcarce Research Center - \=// //=\ Pro secretario ASALUP - www.asalup.org - PGP key available //=\ \=// E-mail: sbassi@genesdigitales.com - ICQ UIN: 3356556 - \=// ~ http://Bioinformatica.info -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAj7osyYACgkQ6lc7ixf6gKp+5QCfSi6xUBnj38NkIJgeheVDgaBf NnMAoIsaP56/+NQTI08FtZl2W9Xg5cJW =ao1K -----END PGP SIGNATURE----- From krocea at yahoo.com.cn Fri Jun 13 02:07:53 2003 From: krocea at yahoo.com.cn (=?gb2312?q?yu=20huang?=) Date: Thu Jun 12 14:11:19 2003 Subject: [BioPython] On Martel Message-ID: <20030612170753.73768.qmail@web15302.mail.bjs.yahoo.com> Hi everybody, Andrew Dalke's martel is a great engine for parsing bio-format files. Thanks to his creative work. Combination with XML is a great strategy. And thanks to Jeffrey Chang's instruction (he told me what it is for). I use it to parse the wublast files. A little bug is present when processing the files generated by an old WuBlast binary (compiled against libc5) and when parse the blastp files. I've attached the modified code. "diff" will make difference apparent. BioPython great! ===== Yu Huang Life Sciences, Fudan University, Shanghai, China, 200433 86-021-65643603 _________________________________________________________ Do You Yahoo!? 流连网络世界的“你”是谁? http://cn.rd.yahoo.com/mail_cn/tag/?http://cn.surveys.yahoo.com/cn_user_profile_study_may2003 -------------- next part -------------- A non-text attachment was scrubbed... Name: wublast.py Type: application/octet-stream Size: 15283 bytes Desc: wublast.py Url : http://portal.open-bio.org/pipermail/biopython/attachments/20030613/5b3cbaa9/wublast-0001.obj From sbassi at asalup.org Thu Jun 12 16:01:01 2003 From: sbassi at asalup.org (Sebastian Bassi) Date: Thu Jun 12 14:11:21 2003 Subject: [BioPython] new version of AlignInfo: Now you can choose to have gap consensus Message-ID: <3EE8BFDD.2030703@asalup.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, Here is a new version of AlignInfo. It's based on Biophyton 1.1. I changed the function dumb_align, now it looks like this: (my e-mail client cuts the lines, so use the attached version, the inline text version is just to look at it). ~ def dumb_consensus(self, threshold = .7, ambiguous = "N", ~ consensus_alpha = None, require_multiple = 0, gap = 0): ~ """Output a fast consensus sequence of the alignment. ~ This doesn't do anything fancy at all. It will just go through the ~ sequence residue by residue and count up the number of each type ~ of residue (ie. A or G or T or C for DNA) in all sequences in the ~ alignment. If the percentage of the most common residue type is ~ greater then the passed threshold, then we will add that residue type, ~ otherwise an ambiguous character will be added. ~ This could be made a lot fancier (ie. to take a substitution matrix ~ into account), but it just meant for a quick and dirty consensus. ~ Arguments: ~ o threshold - The threshold value that is required to add a particular ~ atom. ~ o ambiguous - The ambiguous character to be added when the threshold is ~ not reached. ~ o consensus_alpha - The alphabet to return for the consensus sequence. ~ If this is None, then we will try to guess the alphabet. ~ o require_multiple - If set as 1, this will require that more than ~ 1 sequence be part of an alignment to put it in the consensus (ie. ~ not just 1 sequence and gaps). ~ o gap - If set as 1, it will allow to display gaps on the consensus. ~ Useful for indel search. ~ """ ~ consensus = '' ~ # find the length of the consensus we are creating ~ con_len = self.alignment.get_alignment_length() ~ # gap=0 doesn't take into account the gaps. This is default behavior. ~ if gap == 0: ~ # go through each seq item ~ for n in range(con_len): ~ # keep track of the counts of the different atoms we get ~ atom_dict = {} ~ num_atoms = 0 ~ for record in self.alignment._records: ~ # make sure we haven't run past the end of any sequences ~ # if they are of different lengths ~ if n < len(record.seq): ~ if record.seq[n] != '-' and record.seq[n] != '.': ~ if record.seq[n] not in atom_dict.keys(): ~ atom_dict[record.seq[n]] = 1 ~ else: ~ atom_dict[record.seq[n]] = \ ~ atom_dict[record.seq[n]] + 1 ~ num_atoms = num_atoms + 1 ~ max_atoms = [] ~ max_size = 0 ~ for atom in atom_dict.keys(): ~ if atom_dict[atom] > max_size: ~ max_atoms = [atom] ~ max_size = atom_dict[atom] ~ elif atom_dict[atom] == max_size: ~ max_atoms.append(atom) ~ if require_multiple and num_atoms == 1: ~ consensus = consensus + ambiguous ~ elif (len(max_atoms) == 1) and ((float(max_size)/float(num_atoms)) ~ >= threshold): ~ consensus = consensus + max_atoms[0] ~ else: ~ consensus = consensus + ambiguous ~ # gap!=0 Gaps are treated like any other atom. ~ else: ~ # go through each seq item ~ for n in range(con_len): ~ # keep track of the counts of the different atoms we get ~ atom_dict = {} ~ num_atoms = 0 ~ for record in self.alignment._records: ~ # make sure we haven't run past the end of any sequences ~ # if they are of different lengths ~ if n < len(record.seq): ~ if record.seq[n] not in atom_dict.keys(): ~ atom_dict[record.seq[n]] = 1 ~ else: ~ atom_dict[record.seq[n]] = \ ~ atom_dict[record.seq[n]] + 1 ~ num_atoms = num_atoms + 1 ~ max_atoms = [] ~ max_size = 0 ~ for atom in atom_dict.keys(): ~ if atom_dict[atom] > max_size: ~ max_atoms = [atom] ~ max_size = atom_dict[atom] ~ elif atom_dict[atom] == max_size: ~ max_atoms.append(atom) ~ if require_multiple and num_atoms == 1: ~ consensus = consensus + ambiguous ~ elif (len(max_atoms) == 1) and ((float(max_size)/float(num_atoms)) ~ >= threshold): ~ consensus = consensus + max_atoms[0] ~ else: ~ consensus = consensus + ambiguous - -- Best regards, //=\ Sebastian Bassi - Diplomado en Ciencia y Tecnologia, UNQ //=\ \=// IT Manager Advanta Seeds - Balcarce Research Center - \=// //=\ Pro secretario ASALUP - www.asalup.org - PGP key available //=\ \=// E-mail: sbassi@genesdigitales.com - ICQ UIN: 3356556 - \=// ~ http://Bioinformatica.info -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAj7ov90ACgkQ6lc7ixf6gKqMyQCfXRp/vw5N73Xj7wy1u0gtYs/3 FPYAoNC4cSihUsQPNOgbwNGq1YwM99Qa =6cyt -----END PGP SIGNATURE----- -------------- next part -------------- A non-text attachment was scrubbed... Name: AlignInfo.zip Type: application/x-zip-compressed Size: 6842 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/biopython/attachments/20030612/18daf51a/AlignInfo.bin From c.francis1 at pgrad.unimelb.edu.au Fri Jun 13 05:12:02 2003 From: c.francis1 at pgrad.unimelb.edu.au (c.francis1@pgrad.unimelb.edu.au) Date: Thu Jun 12 14:12:14 2003 Subject: [BioPython] Removal from the mailing list Message-ID: <200306121812.h5CIC2gT006729@cassius.its.unimelb.edu.au> It is not obvious to me (from www.biopython.org) how to remove myself from the mailing list. Could someone please point me in the right direction. Cheers - C. Francis From chapmanb at uga.edu Thu Jun 12 15:22:32 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Thu Jun 12 14:26:32 2003 Subject: [BioPython] new version of AlignInfo: Now you can choose to have gap consensus In-Reply-To: <3EE8BFDD.2030703@asalup.org> References: <3EE8BFDD.2030703@asalup.org> Message-ID: <20030612182232.GD2981@evostick.agtec.uga.edu> Hi Sebastian; > Here is a new version of AlignInfo. It's based on Biophyton 1.1. I > changed the function dumb_align, now it looks like this: I think I understand why you want gaps, but I think the right thing to do in this case would be to have a separate function (called gap_consensus or something) which implements this functionality instead of changing dumb_consensus. This way the behavior of the current function is unmodified (to maintain consistency) and we can have your new functionality. If you could make a diff of AlignInfo.py with the added function and send it to me, I'd be happy to add it to CVS. Also, I remember a while back during my written exams reading a mail from you about some documentation problems about ClustalW. If you could send a patch for that too I could get both things taken care of at the same time. Thanks! Brad From chapmanb at uga.edu Thu Jun 12 15:53:13 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Thu Jun 12 14:57:14 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <1055424759.8850.78.camel@sulawesi> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> Message-ID: <20030612185313.GF2981@evostick.agtec.uga.edu> Hi Andreas; [EventGenerator speedup attempts] > > Okay, so that means it didn't break anything new, right? That's a > > good thing. > > probably. But what confuses me is that one of the failing tests is > GenBank. (ValueError: Unexpected function name: CONTIGjoin) > It's also failing for cvs version. This is with the patch, right? I just checked out a clean CVS and test_GenBank passes fine for me without any changes. We definitely need to have it working at the start :-). After the patch I do get the error you mention, which means I probably didn't do something right. I'll need to look at it more this weekend to see what I messed up. > But would the new code be wrong, I think some other tests should fail, > because ParserSupport is used all over the place. True, but EventGenerator is only used in a few places. GenBank, ECell, Emboss/Primer, IntelliGenetics, and KEGG look like the places, from a quick grep. > I have some ideas for this. First I want to know if I can make following > assumptions: > > 1. the values in ParserSupport.EventGenerator.flags are allways 0 or 1 Yup. > 2. the keys are allways same as ParserSupport.EventGenerator.interest_tags Yup. > 3. Nobody outside ParserSupport.EventGenerator uses these flags > (Probably hardest to confirm.) I quickly grepped through and didn't see anything. We should probably rename self.flags to self._flags to reflect that you shouldn't be using it from external classes if we get rid of _get_set_flags. > Then we could get rid of _get_set_flags and just put only the set flags > into the dict. That sounds like it should work. If you send a patch I'm happy to try and get it in. > This would give another 10% performance boost for my test prog. 10 percent is good. I'm all about it. Brad From dyoo at hkn.eecs.berkeley.edu Thu Jun 12 16:09:08 2003 From: dyoo at hkn.eecs.berkeley.edu (Danny Yoo) Date: Thu Jun 12 18:09:23 2003 Subject: [BioPython] Removal from the mailing list In-Reply-To: <200306121812.h5CIC2gT006729@cassius.its.unimelb.edu.au> Message-ID: On Fri, 13 Jun 2003 c.francis1@pgrad.unimelb.edu.au wrote: > It is not obvious to me (from www.biopython.org) how to remove myself > from the mailing list. Could someone please point me in the right > direction. You can unsubscribe yourself by visiting: http://biopython.org/mailman/listinfo/biopython Go near the bottom of the page; you should see an unsubscription form near there. Good luck! From vinkawa1 at indiantimes.com Fri Jun 13 03:11:41 2003 From: vinkawa1 at indiantimes.com (vincent kawa) Date: Thu Jun 12 20:12:23 2003 Subject: [BioPython] Please Reply Asap Message-ID: <200306130011.h5D0BdmG004608@localhost.localdomain> Dear friend, I am soliciting your confidence in this business; this is because of its nature as being utterly confidential and top secret. Though, I know that a business of this sort will make any one apprehensive and worried, but I am assuring you that this transaction is 100% safe. We have decided to contact you due to the urgency of this transaction as we have been reliably informed of your discreetness and reliability in executing businesses and or transactions. Let me start by introducing myself properly to you. I am Mr. Vincent Kawa Credit Officer with the chattered credit bank Lagos, Nigeria. I came to know you in my private search for a reliable and reputable person to handle this confidential transaction, which involves the transfer of huge sum of money to a foreign account requiring maximum confidence. THE PROPOSITION: A foreigner, Late Engr. John Creek (Snr.), was an oil merchant with the federal government of Nigeria during the regime of the late General Sanni Abacha, until his death sometime ago in the Kenya Air Bus (A310-300) Flight KQ430. Banked with us at chattered credit bank, Lagos and had a closing balance as at the end of September, 2000 worth #16,200,000.00 (Sixteen Million two hundred thousand British pounds), the bank now expect a next of kin as beneficiary. Valuable efforts have been made by the chattered credit bank, Lagos to get in touch with any of the Creek's family or relatives but to no success. It is because of the perceived possibility of not being able to locate any of Engr. John Creek (Snr.)'s next of kin (He had no wife or children that is known to us). The management under the influence of our Chairman and members of the Board of Directors, which arrangement has been made for the fund to be declared unclaimed and subsequently be donated to the trust fund for arms and ammunitions to further enhanced the course of war in Africa and the world in general. In order to avert this negative development, my trusted colleague and I now seek your permission to have you stand as next of kin to late Engr. John Creek (Snr.) so that the fund #16.2 million will be released and paid to into your account as the beneficiary's next of kin. All documents and proves to enable get this fund will be carefully worked out. I found it more convenient to commence on the transaction since our affiliates in Europe can pay us. We are assuring you that your Involvement in this business is 100% risk free. You shall retain a percentage that will be agreed between us while the rest be for us the originators of the transaction, for investment purpose as you may direct in your country. As soon as we receive an acknowledgement of receipt of this message in acceptance of our mutual business proposal, we would furnish you with the necessary modalities and disbursement ratio to suit both parties without any conflict including every other detail you may wish to know. If this proposal is acceptable by you, do not take undue advantage of the trust we have bestowed in you. On receiving your reply, I shall give you a call to finalize all arrangements for a hitch free transaction PLEASE, APPRECIATE THE FACT THAT DOING BUSINESS OVER THE INTERNET IS RISK. ENDEAVOR TO SEND YOUR CONFIDENTIAL TELEPHONEAND FAX NUMBER IN YOUR REPLY TO THIS MAIL. Regards, Mr Vincent Kawa Note: Should you cannot reach me through my email address above make use of my alternative email address: vin_kaw@indiatimes.com From jefftc at stanford.edu Thu Jun 12 23:04:31 2003 From: jefftc at stanford.edu (Jeffrey Chang) Date: Fri Jun 13 01:03:48 2003 Subject: [BioPython] Biopython choosing a logo! Message-ID: <8440448C-9D5C-11D7-805E-000A956845CE@stanford.edu> Hey everybody, If you've been following the list in the past few weeks, you've no doubt noticed all the traffic going back and forth about designing logos. So, it's now time to get the voting under way! To refresh your memory, the logos are available at: http://www.biopython.org/static/logos/ For the final logo, we will need at least versions for: - slides - webpage - icon If the logo is animated, we will also need non-animated version. Currently in the running are: Iddo Friedberg Leighton Pritchard Andreas Kuntzagk JP Glutting Catherine Letondal Sep Dadsetan Gyro Funch Runsun Pan Thomas Hamelryck If you are not on the list and should be, please let me know. If you would like to withdraw your entry, let me know as well. So here's how we are going to do it. We will have one week of discussion, in case you want to finalize your logo, give someone suggestions, etc. Next Thursday (June 19), I will send a ballot out to this list with all the contenders. Please send the ballots back to me (or this list) on Thursday June 26, and I will tally the results! We will do this by instant run-off voting. How this works, is you rank all the logos that you like. You can rank as many as you want -- 1 to N. Once all the votes are in, I'll iteratively elimate the one with the least 1st ranked votes until there is only 1 logo left. If there is a tie, we will have a runoff. Good luck everybody! It's awesome that we have so many good entries! Jeff From jchang at jeffchang.com Thu Jun 12 23:17:06 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 13 01:16:23 2003 Subject: [BioPython] On Martel In-Reply-To: <20030612170753.73768.qmail@web15302.mail.bjs.yahoo.com> Message-ID: <46B2F353-9D5E-11D7-8322-000A956845CE@jeffchang.com> Thanks very much for the code. I have committed it to the repository. Jeff On Thursday, June 12, 2003, at 10:07 AM, yu huang wrote: > Hi everybody, > > Andrew Dalke's martel is a great engine for parsing > bio-format files. Thanks to his creative work. > Combination with XML is a great strategy. > And thanks to Jeffrey Chang's instruction (he told me > what it is for). > > I use it to parse the wublast files. A little bug is > present when processing the files generated by an old > WuBlast binary (compiled against libc5) and when parse > the blastp files. > I've attached the modified code. "diff" will make > difference apparent. > > BioPython great! > > ===== > Yu Huang > > Life Sciences, Fudan University, > Shanghai, China, 200433 > 86-021-65643603 > > _________________________________________________________ > Do You Yahoo!? > ????????????? > http://cn.rd.yahoo.com/mail_cn/tag/?http://cn.surveys.yahoo.com/ > cn_user_profile_study_may2003______________________________ > _________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From pal.puntervoll at mbi.uib.no Fri Jun 13 09:23:14 2003 From: pal.puntervoll at mbi.uib.no (Paal Puntervoll) Date: Fri Jun 13 02:23:25 2003 Subject: [BioPython] New logo try-out In-Reply-To: <200305261017.37707.thamelry@vub.ac.be> References: <200305241916.14722.thamelry@vub.ac.be> <1053804256.3ecfc6e0d6510@webmail-b.uchicago.edu> <200305261017.37707.thamelry@vub.ac.be> Message-ID: <20030613062314.GA8833@mbi.uib.no> Hi Thomas, First of all: nice logo!!! BUT something is wrong... As far as I can see the python-helix is left-handed, whereas the DNA helix is right-handed. If this is voted to be the official biopython logo (which I'm hoping for...), this should be fixed. :) Paal On Mon, May 26, 2003 at 10:17:37AM +0200, Thomas Hamelryck wrote: > On Saturday 24 May 2003 09:24 pm, pan@uchicago.edu wrote: > > Wow, Thomas, that's an excellent art work ... > > Glad you like it...credit goes entirely to Henrik Vestergaard.... > > > Do you insist it to be vertical ? IMHO, it doesn't have to > > be; making it vertical makes the word 'biopython' less > > impressive. > > I agree. I've put a new version of the logo on my homepage at > http://homepages.vub.ac.be/~thamelry/biopython.jpg > > The logo is rotated 90 degrees so that the word "biopython" is now horizontal, > and the problem with the font is also corrected (it was a problem with the > viewing angle). Input/comments/criticisms welcome. > > Henrik is now working on an animated logo, in which the two pythons slither > over the letters and form a helix when passing each other in the center :-) > :-) > > Regards, > > -Thomas > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython -- P?l Puntervoll Department of Molecular Biology University of Bergen +47 5558 4530 From thamelry at vub.ac.be Fri Jun 13 11:01:38 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Fri Jun 13 03:51:15 2003 Subject: [BioPython] Biopython choosing a logo! In-Reply-To: <8440448C-9D5C-11D7-805E-000A956845CE@stanford.edu> References: <8440448C-9D5C-11D7-805E-000A956845CE@stanford.edu> Message-ID: <200306130750.h5D7ouiO011545@gallantin.skynet.be> Jeff wrote about the biopython logo: > Currently in the running are: ... > Thomas Hamelryck That should be: Henrik Vestergaard. (henrik@virtualz.dk, www.virtualz.dk ) Cheers, -Thomas From thamelry at vub.ac.be Fri Jun 13 11:31:39 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Fri Jun 13 04:21:17 2003 Subject: [BioPython] New logo try-out In-Reply-To: <20030613062314.GA8833@mbi.uib.no> References: <200305241916.14722.thamelry@vub.ac.be> <200305261017.37707.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> Message-ID: <200306130820.h5D8KwvI009068@sarek.skynet.be> > First of all: nice logo!!! BUT something is wrong... As far as I can see > the python-helix is left-handed, whereas the DNA helix is right-handed. If > this is voted to be the official biopython logo (which I'm hoping for...), > this should be fixed. :) Yes, you're right - embarassing :-) I'm meeting Henrik next week, we'll fix it... Thanks! -Thomas From andreas.kuntzagk at mdc-berlin.de Fri Jun 13 10:40:31 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 13 05:40:32 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <20030612185313.GF2981@evostick.agtec.uga.edu> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> Message-ID: <1055496999.8850.110.camel@sulawesi> > This is with the patch, right? I just checked out a clean CVS and > test_GenBank passes fine for me without any changes. We definitely > need to have it working at the start :-). Thats strange. I checked out a fresh version from CVS into a clean directory and the test fails. Does it use something outside the build directory? Maybe I have a wrong version of mxTools? (help(mx) shows version 2.0) > I quickly grepped through and didn't see anything. We should > probably rename self.flags to self._flags to reflect that you > shouldn't be using it from external classes if we get rid of > _get_set_flags. Yep > That sounds like it should work. If you send a patch I'm happy to > try and get it in. I think, first we should find out about the failing test. > 10 percent is good. I'm all about it. But there is still potential in it :-) At the moment, (after my optimization) about 90% of my performance test goes into Parser._do_callback. Of this, 60% is spend in endElement, 5% in startElement and 7% in characters. The remaining time is spend in _do_callback itself and for the recursion. So to get faster we could: 1. make _do_callback self faster (Don't see how) 2. make endElement faster. 3. reduce recursion somehow(?) function-calls are expensive in python. 4. Invent some clever algorithm My problem whith the last two is, I still can't figure what all this code is supposed to do (stupid me :-( Andreas From andreas.kuntzagk at mdc-berlin.de Fri Jun 13 12:22:20 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 13 07:22:20 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <1055496999.8850.110.camel@sulawesi> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> <1055496999.8850.110.camel@sulawesi> Message-ID: <1055503105.8850.120.camel@sulawesi> > Thats strange. I checked out a fresh version from CVS into a clean > directory and the test fails. Does it use something outside the build > directory? I still don't fully understand this issue, at least I could locate, where it fails (to some extend): The test file is NT_019265.gb, it fails parsing the CONTIG. GenBank.__init__.location is called whith a content of CONTIG join(AL391218.9:105173..108462,gap(100), ... which gets shortened to CONTIGjoin. Maybe you can use this info. Andreas From andreas.kuntzagk at mdc-berlin.de Fri Jun 13 13:24:39 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 13 08:24:39 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <1055503105.8850.120.camel@sulawesi> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> <1055496999.8850.110.camel@sulawesi> <1055503105.8850.120.camel@sulawesi> Message-ID: <1055506847.8849.157.camel@sulawesi> > I still don't fully understand this issue, at least I could locate, > where it fails (to some extend): Silly, silly me. The tests were using the code from my biopython installation (whith your patch) and not the cvs version. Setting PYTHONPATH and the test works. So the patch really breaks somethings. :-( Andreas From Ravinder.Singh at colorado.edu Fri Jun 13 09:57:11 2003 From: Ravinder.Singh at colorado.edu (Ravinder Singh) Date: Fri Jun 13 10:57:26 2003 Subject: [BioPython] New logo try-out References: <200305241916.14722.thamelry@vub.ac.be> <1053804256.3ecfc6e0d6510@webmail-b.uchicago.edu> <200305261017.37707.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> Message-ID: <3EE9E647.9050304@colorado.edu> Hi Thomas, Nice logo. I continue to be obsessed with the 3 spirits - python, molecular biology, and computation. A logo that does not captures them all should not be the end point. Even after fixing the handedness of the helix by two pythons, the logo could as well be for something that deals with reptiles in Amazon or some other tropical forest, or a biodiversity project etc. ( I'm using my word very cautiously here and I applaud the efforts and the aesthetics of this logo). However, neither molecular biology nor the computation part comes out, which are A[TU]GC and 0101. How about building 'BIOPYTHON' with these elements, the first half with ATGC and the send half with 01, or ??, etc. This is not a criticism for the wonderful piece of work, but a suggestion for whatever it is worth. Ravinder -- ******************************************************************************** Dr. Ravinder Singh Assistant Professor MCD Biology 347 UCB University of Colorado Boulder, CO 80309-0347 (303)492-8886 (voice) (303)492-7744 (fax) From idoerg at burnham.org Fri Jun 13 09:51:51 2003 From: idoerg at burnham.org (Iddo Friedberg) Date: Fri Jun 13 11:52:44 2003 Subject: [BioPython] New logo try-out In-Reply-To: <200306130820.h5D8KwvI009068@sarek.skynet.be> References: <200305241916.14722.thamelry@vub.ac.be> <200305261017.37707.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> <200306130820.h5D8KwvI009068@sarek.skynet.be> Message-ID: <3EE9F317.6070901@burnham.org> Could be Z-DNA... ./I Thomas Hamelryck wrote: >>First of all: nice logo!!! BUT something is wrong... As far as I can see >>the python-helix is left-handed, whereas the DNA helix is right-handed. If >>this is voted to be the official biopython logo (which I'm hoping for...), >>this should be fixed. :) > > > Yes, you're right - embarassing :-) > I'm meeting Henrik next week, we'll fix it... > > Thanks! > > -Thomas > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > > -- Iddo Friedberg, Ph.D. The Burnham Institute 10901 N. Torrey Pines Rd. La Jolla, CA 92037 USA Tel: +1 (858) 646 3100 x3516 Fax: +1 (858) 646 3171 http://bioinformatics.ljcrf.edu/~iddo From gyromagnetic at excite.com Fri Jun 13 11:30:51 2003 From: gyromagnetic at excite.com (gyro funch) Date: Fri Jun 13 12:06:13 2003 Subject: [BioPython] Biopython choosing a logo! Message-ID: <20030613143051.E0745F67B@xmxpita.excite.com> Hi, Attached is the latest version of my logo. Per some of your comments, I've changed the python (adding a bit of color in the process). -g _______________________________________________ Join Excite! - http://www.excite.com The most personalized portal on the Web! -------------- next part -------------- A non-text attachment was scrubbed... Name: biopy0.png Type: image/x-png Size: 50247 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/biopython/attachments/20030613/689fb312/biopy0-0001.bin From chapmanb at uga.edu Fri Jun 13 12:56:46 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Fri Jun 13 12:06:14 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <1055496999.8850.110.camel@sulawesi> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> <1055496999.8850.110.camel@sulawesi> Message-ID: <20030613155646.GM2981@evostick.agtec.uga.edu> Hi Andreas; > I think, first we should find out about the failing test. So I think after all your mails we are sorted on this. test_GenBank works without the patch, but the patch breaks it. The reason for that is because the changes I made weren't complete. I looked at this for real during lunch and just checked in some changes which eliminate _get_set_flags entirely (and self.flags). All tests appear to be fine after this change, so it's checked into CVS and the diff is attached (BTW, there are a couple of extraneous changes in that diff -- just removing some tabs which snuck in (bad tabs (bad tabs)). Let me know if this works for you (and still provides the performance enhancements). > But there is still potential in it :-) > At the moment, (after my optimization) about 90% of my performance test > goes into Parser._do_callback. Of this, 60% is spend in endElement, 5% > in startElement and 7% in characters. The remaining time is spend in > _do_callback itself and for the recursion. So to get faster we could: > 1. make _do_callback self faster (Don't see how) > 2. make endElement faster. > 3. reduce recursion somehow(?) function-calls are expensive in python. > 4. Invent some clever algorithm I did some clean up in endElement (getting rid of the _get_set_flags function, mainly) so this might provide some speed-ups for that problem. I don't have any genius ideas for the other points right now, but maybe these simple clean-up changes will improve performance decently. Hopefully this code is a little cleaner (damn, it was ugly before). If you want to send me your diffs on top of this I'm happy to commit 'em. Thanks again for working on this. Brad -------------- next part -------------- Index: ParserSupport.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/ParserSupport.py,v retrieving revision 1.21 retrieving revision 1.22 diff -c -r1.21 -r1.22 *** ParserSupport.py 7 Dec 2001 18:48:26 -0000 1.21 --- ParserSupport.py 13 Jun 2003 15:49:29 -0000 1.22 *************** *** 103,112 **** def _print_name(self, name, data=None): if data is None: ! # Write the name of a section. self._handle.write("%s %s\n" % ("*"*self._colwidth, name)) else: ! # Write the tag and line. self._handle.write("%-*s: %s\n" % ( self._colwidth, name[:self._colwidth], string.rstrip(data[:self._maxwidth-self._colwidth-2]))) --- 103,112 ---- def _print_name(self, name, data=None): if data is None: ! # Write the name of a section. self._handle.write("%s %s\n" % ("*"*self._colwidth, name)) else: ! # Write the tag and line. self._handle.write("%-*s: %s\n" % ( self._colwidth, name[:self._colwidth], string.rstrip(data[:self._maxwidth-self._colwidth-2]))) *************** *** 195,206 **** self._finalizer = callback_finalizer self._exempt_tags = exempt_tags - # a dictionary of flags to recognize when we are in different - # info items - self.flags = {} - for tag in self.interest_tags: - self.flags[tag] = 0 - # a dictionary of content for each tag of interest # the information for each tag is held as a list of the lines. # This allows us to collect information from multiple tags --- 195,200 ---- *************** *** 216,259 **** self._previous_tag = '' # the current character information for a tag ! self._cur_content = '' ! ! def _get_set_flags(self): ! """Return a listing of all of the flags which are set as positive. ! """ ! set_flags = [] ! for tag in self.flags.keys(): ! if self.flags[tag] == 1: ! set_flags.append(tag) ! ! return set_flags def startElement(self, name, attrs): ! """Recognize when we are recieving different items from Martel. ! ! We want to recognize when Martel is passing us different items ! of interest, so that we can collect the information we want from ! the characters passed. """ ! # set the appropriate flag if we are keeping track of these flags ! if self.flags.has_key(name): ! # make sure that all of the flags are being properly unset ! assert self.flags[name] == 0, "Flag %s not unset" % name ! ! self.flags[name] = 1 def characters(self, content): ! """Extract the information. ! ! Using the flags that are set, put the character information in ! the appropriate place. """ ! set_flags = self._get_set_flags() ! ! # deal with each flag in the set flags ! for flag in set_flags: ! # collect up the content for all of the characters ! self._cur_content += content def endElement(self, name): """Send the information to the consumer. --- 210,230 ---- self._previous_tag = '' # the current character information for a tag ! self._cur_content = [] ! # whether we should be collecting information ! self._collect_characters = 0 def startElement(self, name, attrs): ! """Determine if we should collect characters from this tag. """ ! if name in self.interest_tags: ! self._collect_characters = 1 def characters(self, content): ! """Extract the information if we are interested in it. """ ! if self._collect_characters: ! self._cur_content.append(content) def endElement(self, name): """Send the information to the consumer. *************** *** 267,276 **** """ # only deal with the tag if it is something we are # interested in and potentially have information for ! if name in self._get_set_flags(): # add all of the information collected inside this tag ! self.info[name].append(self._cur_content) ! self._cur_content = '' # if we are at a new tag, pass on the info from the last tag if self._previous_tag and self._previous_tag != name: --- 238,249 ---- """ # only deal with the tag if it is something we are # interested in and potentially have information for ! if self._collect_characters: # add all of the information collected inside this tag ! self.info[name].append("".join(self._cur_content)) ! # reset our information and flags ! self._cur_content = [] ! self._collect_characters = 0 # if we are at a new tag, pass on the info from the last tag if self._previous_tag and self._previous_tag != name: *************** *** 278,287 **** # set this tag as the next to be passed self._previous_tag = name - - # unset the flag for this tag so we stop collecting info - # with it - self.flags[name] = 0 def _make_callback(self, name): """Call the callback function with the info with the given name. --- 251,256 ---- From andreas.kuntzagk at mdc-berlin.de Fri Jun 13 17:33:53 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 13 12:33:54 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <20030613155646.GM2981@evostick.agtec.uga.edu> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> <1055496999.8850.110.camel@sulawesi> <20030613155646.GM2981@evostick.agtec.uga.edu> Message-ID: <1055521802.8850.188.camel@sulawesi> Hi, > The reason for that is because the changes I made weren't complete. > I looked at this for real during lunch and just checked in some > changes which eliminate _get_set_flags entirely (and self.flags). > All tests appear to be fine after this change, so it's checked into > CVS and the diff is attached (BTW, there are a couple of extraneous > changes in that diff -- just removing some tabs which snuck in (bad > tabs (bad tabs)). And just at the moment I figured out what went wrong and composed a message to you about it. > Let me know if this works for you (and still provides the > performance enhancements). I will. But only next week. Andreas From thamelry at vub.ac.be Sun Jun 15 00:02:57 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Sat Jun 14 16:52:23 2003 Subject: [BioPython] New logo try-out In-Reply-To: <3EE9E647.9050304@colorado.edu> References: <200305241916.14722.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> <3EE9E647.9050304@colorado.edu> Message-ID: <200306142052.h5EKqE12017611@sojef.skynet.be> Hi Ravinder, > I continue to be obsessed with the 3 spirits - python, molecular > biology, and computation. A logo that does not captures them all should > not be the end point. Even after fixing the handedness of the helix by > two pythons, the logo could as well be for something that deals with > reptiles in Amazon or some other tropical forest, or a biodiversity > project etc. ( I'm using my word very cautiously here and I applaud the > efforts and the aesthetics of this logo). However, neither molecular > biology nor the computation part comes out, which are A[TU]GC and 0101. > How about building 'BIOPYTHON' with these elements, the first half with > ATGC and the send half with 01, or ??, etc. Good point. I liked the background in Gyro Funch's logo: a mixture of 01's and ATGC's. We can do something similar with our logo.... Thanks for the suggestion. -Thomas From pan at uchicago.edu Sat Jun 14 18:09:58 2003 From: pan at uchicago.edu (pan@uchicago.edu) Date: Sat Jun 14 18:10:08 2003 Subject: [BioPython] New logo try-out In-Reply-To: <200306142052.h5EKqE12017611@sojef.skynet.be> References: <200305241916.14722.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> <3EE9E647.9050304@colorado.edu> <200306142052.h5EKqE12017611@sojef.skynet.be> Message-ID: <1055628598.3eeb9d361789c@webmail-b.uchicago.edu> IMHO, a logo doesn't have to contain ALL the elements that it represents, otherwise the logo might become too complicated and the image will be less powerful and less impressive. It's just like to highlight something you feel important --- if you highlight ALL elements, then the 'highlight' loses it's meaning. The logo Thomas submitted is already complicated enough. IMHO, any effort to make it even more complicated might lose the impact the image provides. Well, just my two cents. pan まノ Thomas Hamelryck : > Hi Ravinder, > > > I continue to be obsessed with the 3 spirits - python, molecular > > biology, and computation. A logo that does not captures them all should > > not be the end point. Even after fixing the handedness of the helix by > > two pythons, the logo could as well be for something that deals with > > reptiles in Amazon or some other tropical forest, or a biodiversity > > project etc. ( I'm using my word very cautiously here and I applaud the > > efforts and the aesthetics of this logo). However, neither molecular > > biology nor the computation part comes out, which are A[TU]GC and 0101. > > How about building 'BIOPYTHON' with these elements, the first half with > > ATGC and the send half with 01, or ??, etc. > > Good point. > > I liked the background in Gyro Funch's logo: a mixture of 01's and ATGC's. > We can do something similar with our logo.... > > Thanks for the suggestion. > > -Thomas > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From budd at embl-heidelberg.de Sun Jun 15 10:38:36 2003 From: budd at embl-heidelberg.de (Aidan Budd) Date: Sun Jun 15 03:38:42 2003 Subject: [BioPython] New logo try-out In-Reply-To: <1055628598.3eeb9d361789c@webmail-b.uchicago.edu> Message-ID: my humble opinion is shared by pan, here... > IMHO, a logo doesn't have to contain ALL the elements that it > represents, otherwise the logo might become too complicated and > the image will be less powerful and less impressive. It's just > like to highlight something you feel important --- if you > highlight ALL elements, then the 'highlight' loses it's meaning. > > The logo Thomas submitted is already complicated enough. IMHO, > any effort to make it even more complicated might lose the > impact the image provides. > > Well, just my two cents. seems to me a classic case of the tension between 1. us who use computers wanting things to be complete, precise, accurate etc. (i.e. the desire for a logo to contain all essential elements that define/specify the entity being 'logoised') 2. the fact that advertising (which, lets face it, a logo is in many ways about) works best when only a few aspects of a product (argh... is biopython a 'product'???) are highlighted, and thus the message about at least these few aspects is more effectively communicated, and hopefully therefore more remembered by those who see it... a car ad doesn't tell you alllllll the wonderful reasons why that particular car is so unbelievable right for YOU... :) my two pence (i'm from uk...) aidan > まノ Thomas Hamelryck : > > > Hi Ravinder, > > > > > I continue to be obsessed with the 3 spirits - python, molecular > > > biology, and computation. A logo that does not captures them all should > > > not be the end point. Even after fixing the handedness of the helix by > > > two pythons, the logo could as well be for something that deals with > > > reptiles in Amazon or some other tropical forest, or a biodiversity > > > project etc. ( I'm using my word very cautiously here and I applaud the > > > efforts and the aesthetics of this logo). However, neither molecular > > > biology nor the computation part comes out, which are A[TU]GC and 0101. > > > How about building 'BIOPYTHON' with these elements, the first half with > > > ATGC and the send half with 01, or ??, etc. > > > > Good point. > > > > I liked the background in Gyro Funch's logo: a mixture of 01's and ATGC's. > > We can do something similar with our logo.... > > > > Thanks for the suggestion. > > > > -Thomas > > _______________________________________________ > > BioPython mailing list - BioPython@biopython.org > > http://biopython.org/mailman/listinfo/biopython > > > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > ******************************************************************* Alles klar, Herr Kommissar? [useful german phrase #12] Aidan Budd Gibson Team (v105) Structural and Computational Biology Programme European Molecular Biology Laboratory Meyerhofstr. 1, 69117 Heidelberg, Germany Tel. +49 6221 387-466 Fax. +49 6221 387-517 ****************************************************************** From mdehoon at ims.u-tokyo.ac.jp Sun Jun 15 19:23:09 2003 From: mdehoon at ims.u-tokyo.ac.jp (Michiel Jan Laurens de Hoon) Date: Sun Jun 15 05:22:10 2003 Subject: [BioPython] Clustalw documentation Message-ID: <3EEC3AFD.9080605@ims.u-tokyo.ac.jp> Dear Biopythoneers, Is the documentation for Clustalw in the Biopython tutorial still up to date? I am getting the following error when I try to run the example in the tutorial (in chapter 3.5.1) >>> from Align.Clustalw import MultipleAlignCL Traceback (most recent call last): File "", line 1, in ? ImportError: No module named Align.Clustalw Thanks in advance, --Michiel. -- Michiel de Hoon, Assistant Professor University of Tokyo, Institute of Medical Science Human Genome Center 4-6-1 Shirokane-dai, Minato-ku Tokyo 108-8639 Japan http://bonsai.ims.u-tokyo.ac.jp/~mdehoon From chapmanb at uga.edu Sun Jun 15 13:58:13 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Sun Jun 15 13:02:10 2003 Subject: [BioPython] Clustalw documentation In-Reply-To: <3EEC3AFD.9080605@ims.u-tokyo.ac.jp> References: <3EEC3AFD.9080605@ims.u-tokyo.ac.jp> Message-ID: <20030615165813.GA41015@evostick.agtec.uga.edu> Hi Michiel; > Is the documentation for Clustalw in the Biopython tutorial still up to > date? I am getting the following error when I try to run the example in > the tutorial (in chapter 3.5.1) > > >>> from Align.Clustalw import MultipleAlignCL > Traceback (most recent call last): > File "", line 1, in ? > ImportError: No module named Align.Clustalw Thanks for pointing this out. It's a typo in the documentation -- it should be: >>> from Bio.Clustalw import MultipleAlignCL I've fixed this in the Tutorial (along with other some other errors I turned up). Thanks! Brad From Ravinder.Singh at colorado.edu Sun Jun 15 16:45:49 2003 From: Ravinder.Singh at colorado.edu (Ravinder Singh) Date: Sun Jun 15 17:46:00 2003 Subject: [BioPython] New logo try-out References: Message-ID: <3EECE90D.8010608@colorado.edu> Between two cents and two pence, my input will definitely be mucccccch cheaper - only 2 paise (i'm from india. [1 cent == 50 paise] If my fellow from UK can use lowercase 'i' for i'm, I'M TEMPTED TOO for items in list [I'm, India] # they python way Second, if simplcity is the reason and I'm all for it (as a teacher for undergraduates, I leave no stones unturned (and I've no choice but) to make my slides as simple as possible). My humble opinion is that gyro funch's is the simplest logo that captures everything, WITHOUT making it complicated. For example, (1) if one python can do, why use two (remember, while we are at simplicity, we don't need absolutely a helix - just like the car ad does not tell how ABS works); (2) if one head can do, why also include two heads and two tails, or even any tail (cars or better SUVs have hookups for trailers but a trailer is never shown in a car ad; (3) my friends from the advertising industry tell that a picture is worth at least a thousand words - so, if we can live without the word "BIOPYTHON," why include it. Let the picture of python itself tell that I'M PYTHON. As car ads on billboards try not using using words (the tiny logo for Toyota, not the word is more powerful because people @70 mph can get it without reading it or getting distracted from needing to make words from letters, and I think speed (of people cruising though websites) on the information->super->high->way is much faster than 70 mph (even for Al Gore), because there are no speeding tickets. (4) ATGC and 01 (in the gyro funch's logo) in that grey out-of-focus background don't contribute much complexity to the logo. If necessary, they can be rendered even more blurred as my friends from the ad industry tell that they (blurred/out of focus) letters won't add much information content to the logo. (5) In fact, the entire universe does not speak English, but a picture of ominous and powerful PYTHON sends the same venomous message in the remote corner of anywhere in the world (Picture tells it all) to an illiterate, a child, or an educated non-English (there are some); in the spirit of open source, let's be inclusive and accessible to as many as possible.. First. In this 'us who use computers wanting things to be complete, precise, accurate etc.' please don't include me -I'm a biologist (the honor 'us' here is reserved for my friends from only 'the 01 world,' I belong to 'the more primitive ATGC world.') Friend, I'm not trying to criticize anything, so it not necessary to ping-pong with these comments. I've said earlier, the logos submitted are wonderful, and all who have contribtued are to be congratulated. Sincerely, Worth only 2 paise (Ravinder) ************************************************************************************************ Aidan Budd wrote: >my humble opinion is shared by pan, here... > > > >>IMHO, a logo doesn't have to contain ALL the elements that it >>represents, otherwise the logo might become too complicated and >>the image will be less powerful and less impressive. It's just >>like to highlight something you feel important --- if you >>highlight ALL elements, then the 'highlight' loses it's meaning. >> >>The logo Thomas submitted is already complicated enough. IMHO, >>any effort to make it even more complicated might lose the >>impact the image provides. >> >>Well, just my two cents. >> >> > >seems to me a classic case of the tension between > >1. us who use computers wanting things to be complete, precise, accurate >etc. (i.e. the desire for a logo to contain all essential elements that >define/specify the entity being 'logoised') > >2. the fact that advertising (which, lets face it, a logo is in many ways >about) works best when only a few aspects of a product (argh... is >biopython a 'product'???) are highlighted, and thus the message about at >least these few aspects is more effectively communicated, and hopefully >therefore more remembered by those who see it... > >a car ad doesn't tell you alllllll the wonderful reasons why that >particular car is so unbelievable right for YOU... :) > >my two pence (i'm from uk...) > >aidan > > > >>??? Thomas Hamelryck : >> >> >> >>>Hi Ravinder, >>> >>> >>> >>>>I continue to be obsessed with the 3 spirits - python, molecular >>>>biology, and computation. A logo that does not captures them all should >>>>not be the end point. Even after fixing the handedness of the helix by >>>>two pythons, the logo could as well be for something that deals with >>>>reptiles in Amazon or some other tropical forest, or a biodiversity >>>>project etc. ( I'm using my word very cautiously here and I applaud the >>>>efforts and the aesthetics of this logo). However, neither molecular >>>>biology nor the computation part comes out, which are A[TU]GC and 0101. >>>>How about building 'BIOPYTHON' with these elements, the first half with >>>>ATGC and the send half with 01, or ??, etc. >>>> >>>> >>>Good point. >>> >>>I liked the background in Gyro Funch's logo: a mixture of 01's and ATGC's. >>>We can do something similar with our logo.... >>> >>>Thanks for the suggestion. >>> >>>-Thomas >>>_______________________________________________ >>>BioPython mailing list - BioPython@biopython.org >>>http://biopython.org/mailman/listinfo/biopython >>> >>> >>> >>_______________________________________________ >>BioPython mailing list - BioPython@biopython.org >>http://biopython.org/mailman/listinfo/biopython >> >> >> > >******************************************************************* >Alles klar, Herr Kommissar? >[useful german phrase #12] > >Aidan Budd >Gibson Team (v105) >Structural and Computational Biology Programme >European Molecular Biology Laboratory >Meyerhofstr. 1, 69117 Heidelberg, Germany >Tel. +49 6221 387-466 >Fax. +49 6221 387-517 >****************************************************************** > > >_______________________________________________ >BioPython mailing list - BioPython@biopython.org >http://biopython.org/mailman/listinfo/biopython > > -- ******************************************************************************** Dr. Ravinder Singh Assistant Professor MCD Biology 347 UCB University of Colorado Boulder, CO 80309-0347 (303)492-8886 (voice) (303)492-7744 (fax) From pal.puntervoll at mbi.uib.no Mon Jun 16 09:22:56 2003 From: pal.puntervoll at mbi.uib.no (Paal Puntervoll) Date: Mon Jun 16 02:23:03 2003 Subject: [BioPython] New logo try-out In-Reply-To: <3EE9F317.6070901@burnham.org> References: <200305241916.14722.thamelry@vub.ac.be> <200305261017.37707.thamelry@vub.ac.be> <20030613062314.GA8833@mbi.uib.no> <200306130820.h5D8KwvI009068@sarek.skynet.be> <3EE9F317.6070901@burnham.org> Message-ID: <20030616062256.GB8968@mbi.uib.no> True... :) On Fri, Jun 13, 2003 at 08:51:51AM -0700, Iddo Friedberg wrote: > Could be Z-DNA... > > ./I > > Thomas Hamelryck wrote: > >>First of all: nice logo!!! BUT something is wrong... As far as I can see > >>the python-helix is left-handed, whereas the DNA helix is right-handed. If > >>this is voted to be the official biopython logo (which I'm hoping for...), > >>this should be fixed. :) > > > > > >Yes, you're right - embarassing :-) > >I'm meeting Henrik next week, we'll fix it... > > > >Thanks! > > > >-Thomas > >_______________________________________________ > >BioPython mailing list - BioPython@biopython.org > >http://biopython.org/mailman/listinfo/biopython > > > > > > -- > Iddo Friedberg, Ph.D. > The Burnham Institute > 10901 N. Torrey Pines Rd. > La Jolla, CA 92037 > USA > Tel: +1 (858) 646 3100 x3516 > Fax: +1 (858) 646 3171 > http://bioinformatics.ljcrf.edu/~iddo > -- P?l Puntervoll Department of Molecular Biology University of Bergen +47 5558 4530 From andreas.kuntzagk at mdc-berlin.de Mon Jun 16 12:32:17 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Mon Jun 16 07:32:18 2003 Subject: [BioPython] performance problem in ParserSupport.EventGenerator._get_set_flags In-Reply-To: <20030613155646.GM2981@evostick.agtec.uga.edu> References: <1055243518.8849.19.camel@sulawesi> <20030610220912.GB67357@evostick.agtec.uga.edu> <1055329603.8851.55.camel@sulawesi> <20030611211819.GB55983@evostick.agtec.uga.edu> <1055424759.8850.78.camel@sulawesi> <20030612185313.GF2981@evostick.agtec.uga.edu> <1055496999.8850.110.camel@sulawesi> <20030613155646.GM2981@evostick.agtec.uga.edu> Message-ID: <1055762905.7602.19.camel@sulawesi> > Let me know if this works for you (and still provides the > performance enhancements). Works and gives the performance. > > But there is still potential in it :-) > > At the moment, (after my optimization) about 90% of my performance test > > goes into Parser._do_callback. Of this, 60% is spend in endElement, 5% > > in startElement and 7% in characters. The remaining time is spend in > > _do_callback itself and for the recursion. So to get faster we could: > > 1. make _do_callback self faster (Don't see how) > > 2. make endElement faster. > > 3. reduce recursion somehow(?) function-calls are expensive in python. > > 4. Invent some clever algorithm This is still true. > I did some clean up in endElement (getting rid of the _get_set_flags > function, mainly) so this might provide some speed-ups for that > problem. I don't have any genius ideas for the other points right > now, but maybe these simple clean-up changes will improve > performance decently. It improves performance against the original version (slow _get_set_flags) but not against my optimized version. But getting rid of this flags is a Good Thing(tm), clearer code make for better understanding of algorithm which makes (hopefully) for better algorithms. > Hopefully this code is a little cleaner (damn, it was ugly before). > If you want to send me your diffs on top of this I'm happy to > commit 'em. And the moment I have some ideas, but no ready diff. For long taglist Parser._do_callback could maybe optimized by storing characters, startElement, endElement in local variables, so it doesn't need to be looked up every loop. I tried this, but could not measure any speed differences, so this is probably only a theoretical improvement. Another question: in _do_callback you have two tests, if a tag is a special tag whith a loop over sub_tags in between. Can special tag have sub_tags? If not, you can reduce it to one test. This improves only readability but still ... Andreas From abenhur at stanford.edu Mon Jun 16 12:20:04 2003 From: abenhur at stanford.edu (Asa Ben-Hur) Date: Mon Jun 16 14:20:11 2003 Subject: [BioPython] swissprot parser problem Message-ID: While iterating over the newest (40.44) swissprot flat file using a swissprot parser sprotFile = open(sprotFileName) s_parser = SProt.RecordParser() s_iterator = SProt.Iterator(sprotFile, s_parser) I get the following error: File "extract.py", line 20, in ecExtract s_record = s_iterator.next() File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 168, in next return self._parser.parse(File.StringHandle(data)) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 289, in parse self._scanner.feed(handle, self._consumer) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 332, in feed self._scan_record(uhandle, consumer) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 337, in _scan_record fn(self, uhandle, consumer) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 411, in _scan_reference self._scan_ra(uhandle, consumer) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 433, in _scan_ra one_or_more=1) File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", line 359, in _scan_line read_and_call(uhandle, event_fn, start=line_type) File "/usr/local/lib/python2.2/site-packages/Bio/ParserSupport.py", line 331, in read_and_call raise SyntaxError, errmsg SyntaxError: Line does not start with 'RA': RP 550-559; 573-580 AND 584-601 (DELTA-1). No error occurs on an earlier release 40 file. This could be related to the fact that swissprot now has multiple RP lines (was not the case in earlier versions) Indeed, the entry that caused the error has multiple RP lines. Its accession no. is Q14738. -Asa ^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^ Asa Ben-Hur Postdoc, Brutlag Bioinformatics Group Stanford From idoerg at burnham.org Mon Jun 16 13:40:23 2003 From: idoerg at burnham.org (Iddo Friedberg) Date: Mon Jun 16 15:40:44 2003 Subject: [BioPython] swissprot parser problem In-Reply-To: References: Message-ID: <3EEE1D27.2040408@burnham.org> Works for me. Can you try the latest version off CVS and see if this repeats? Thanks, Iddo Asa Ben-Hur wrote: > While iterating over the newest (40.44) swissprot flat file > using a swissprot parser > sprotFile = open(sprotFileName) > s_parser = SProt.RecordParser() > s_iterator = SProt.Iterator(sprotFile, s_parser) > I get the following error: > > File "extract.py", line 20, in ecExtract > s_record = s_iterator.next() > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 168, in next > return self._parser.parse(File.StringHandle(data)) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 289, in parse > self._scanner.feed(handle, self._consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 332, in feed > self._scan_record(uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 337, in _scan_record > fn(self, uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 411, in _scan_reference > self._scan_ra(uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 433, in _scan_ra > one_or_more=1) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 359, in _scan_line > read_and_call(uhandle, event_fn, start=line_type) > File "/usr/local/lib/python2.2/site-packages/Bio/ParserSupport.py", line > 331, in read_and_call > raise SyntaxError, errmsg > SyntaxError: Line does not start with 'RA': > RP 550-559; 573-580 AND 584-601 (DELTA-1). > > No error occurs on an earlier release 40 file. > This could be related to the fact that swissprot now has > multiple RP lines (was not the case in earlier versions) > Indeed, the entry that caused the error has multiple RP lines. > Its accession no. is Q14738. > > -Asa > > > ^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^ > Asa Ben-Hur > Postdoc, Brutlag Bioinformatics Group > Stanford > > > > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > > -- Iddo Friedberg, Ph.D. The Burnham Institute 10901 N. Torrey Pines Rd. La Jolla, CA 92037 USA Tel: +1 (858) 646 3100 x3516 Fax: +1 (858) 646 3171 http://bioinformatics.ljcrf.edu/~iddo From jchang at jeffchang.com Mon Jun 16 13:44:24 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Mon Jun 16 15:43:32 2003 Subject: [BioPython] swissprot parser problem In-Reply-To: Message-ID: Hey Asa, This should have been fixed in Biopython version 1.10. If you're using an older version of Biopython, please upgrade to this one. There are other fixes and format updates that are quite helpful to have as well. Jeff On Monday, June 16, 2003, at 11:20 AM, Asa Ben-Hur wrote: > > While iterating over the newest (40.44) swissprot flat file > using a swissprot parser > sprotFile = open(sprotFileName) > s_parser = SProt.RecordParser() > s_iterator = SProt.Iterator(sprotFile, s_parser) > I get the following error: > > File "extract.py", line 20, in ecExtract > s_record = s_iterator.next() > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 168, in next > return self._parser.parse(File.StringHandle(data)) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 289, in parse > self._scanner.feed(handle, self._consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 332, in feed > self._scan_record(uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 337, in _scan_record > fn(self, uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 411, in _scan_reference > self._scan_ra(uhandle, consumer) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 433, in _scan_ra > one_or_more=1) > File "/usr/local/lib/python2.2/site-packages/Bio/SwissProt/SProt.py", > line 359, in _scan_line > read_and_call(uhandle, event_fn, start=line_type) > File "/usr/local/lib/python2.2/site-packages/Bio/ParserSupport.py", > line > 331, in read_and_call > raise SyntaxError, errmsg > SyntaxError: Line does not start with 'RA': > RP 550-559; 573-580 AND 584-601 (DELTA-1). > > No error occurs on an earlier release 40 file. > This could be related to the fact that swissprot now has > multiple RP lines (was not the case in earlier versions) > Indeed, the entry that caused the error has multiple RP lines. > Its accession no. is Q14738. > > -Asa > > > ^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^ > Asa Ben-Hur > Postdoc, Brutlag Bioinformatics Group > Stanford > > > > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From chapmanb at uga.edu Mon Jun 16 17:58:49 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Mon Jun 16 17:02:35 2003 Subject: [BioPython] BOSC Biopython Talk Message-ID: <20030616205849.GC55181@evostick.agtec.uga.edu> Hey all; As you may remember, I have the honor of giving the Biopython talk at this years Bioinformatics Open Source Conference (BOSC). It's coming up next week in Australia and so I worked over the weekend to get a first draft of the talk finished. I thought I would post it up to here to solicit comments, feedback, corrections, etc. You can check it out at: http://open-bio.org/~chapmanb/bosc_biopython.pdf In addition to any general comments (things that suck, things that could use clarification in the slides, blatant grammatical errors) there is also an acknowledgments page on the last slide -- please let me know if you were left out, or if I spelled your name wrong, or anything of that sort. Any comments are much appreciated. Thanks! Brad From pan at uchicago.edu Mon Jun 16 18:51:27 2003 From: pan at uchicago.edu (pan@uchicago.edu) Date: Mon Jun 16 18:51:35 2003 Subject: [BioPython] BOSC Biopython Talk In-Reply-To: <20030616205849.GC55181@evostick.agtec.uga.edu> References: <20030616205849.GC55181@evostick.agtec.uga.edu> Message-ID: <1055803887.3eee49efbe8d1@webmail.uchicago.edu> Hi Brad and all, I've been working with colleages to do some simulations and was asked if I can write a function to generate a random non-coding sequence. I told him that we don't need a function to do so. With python, you can get a random sequence, with size of your choice, in one line: ''.join([random.choice('AGTC') for i in range(1000)] I don't know how it is comparing to other programming languages. To me it is definitely awesome and might be awesome to many others. My point is, in the page "Python Example", if we wanna show how charming the python is, instead of just showing the syntax, examples like the above (doesn't have to be this one) might be a better choice. The other point is: the pdf file seems to focus on "how Bio- python works", but not very much on "why Biopython". Well I am adicted to python so the 'why' isn't much a problem to me and people like me. But to those who don't know python much, that will probably the immediate question they are gonna ask. my ... 0.001 cents?? ...the posts here are getting cheaper and cheaper; thx God that I voiced my view about the logo earier :):) pan Quoting Brad Chapman : > Hey all; > As you may remember, I have the honor of giving the Biopython talk > at this years Bioinformatics Open Source Conference (BOSC). It's > coming up next week in Australia and so I worked over the weekend to > get a first draft of the talk finished. I thought I would post it up > to here to solicit comments, feedback, corrections, etc. You can > check it out at: > > http://open-bio.org/~chapmanb/bosc_biopython.pdf > > In addition to any general comments (things that suck, things that > could use clarification in the slides, blatant grammatical errors) > there is also an acknowledgments page on the last slide -- please > let me know if you were left out, or if I spelled your name wrong, > or anything of that sort. > > Any comments are much appreciated. Thanks! > Brad > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > From mdehoon at ims.u-tokyo.ac.jp Tue Jun 17 12:04:20 2003 From: mdehoon at ims.u-tokyo.ac.jp (Michiel Jan Laurens de Hoon) Date: Mon Jun 16 22:03:18 2003 Subject: [BioPython] BOSC Biopython Talk References: <20030616205849.GC55181@evostick.agtec.uga.edu> Message-ID: <3EEE7724.4030406@ims.u-tokyo.ac.jp> Looks good. Under "Bonus points" on the third page "What exactly is Python", you might want to add something like "particularly among scientists" after "excellent user community". I am thinking especially about the Numerical Python project, which made Python suitable for numerical data analysis and simulation. The numerical capabilities is one of Python's strongest points compared to Perl and Ruby. At BOSC, I'll be giving a talk about Python and systems biology during the afternoon after your talk. I'll try to blend in something about Numerical Python and scientific plotting. --Michiel. Brad Chapman wrote: > Hey all; > As you may remember, I have the honor of giving the Biopython talk > at this years Bioinformatics Open Source Conference (BOSC). It's > coming up next week in Australia and so I worked over the weekend to > get a first draft of the talk finished. I thought I would post it up > to here to solicit comments, feedback, corrections, etc. You can > check it out at: > > http://open-bio.org/~chapmanb/bosc_biopython.pdf > > In addition to any general comments (things that suck, things that > could use clarification in the slides, blatant grammatical errors) > there is also an acknowledgments page on the last slide -- please > let me know if you were left out, or if I spelled your name wrong, > or anything of that sort. > > Any comments are much appreciated. Thanks! > Brad > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython > > > -- Michiel de Hoon, Assistant Professor University of Tokyo, Institute of Medical Science Human Genome Center 4-6-1 Shirokane-dai, Minato-ku Tokyo 108-8639 Japan http://bonsai.ims.u-tokyo.ac.jp/~mdehoon From letondal at pasteur.fr Tue Jun 17 09:10:35 2003 From: letondal at pasteur.fr (Catherine Letondal) Date: Tue Jun 17 02:10:37 2003 Subject: [BioPython] BOSC Biopython Talk In-Reply-To: Your message of "Mon, 16 Jun 2003 16:58:49 EDT." <20030616205849.GC55181@evostick.agtec.uga.edu> Message-ID: <200306170610.h5H6AZhJ081919@electre.pasteur.fr> Brad Chapman wrote: > Hey all; > As you may remember, I have the honor of giving the Biopython talk > at this years Bioinformatics Open Source Conference (BOSC). It's > coming up next week in Australia and so I worked over the weekend to > get a first draft of the talk finished. I thought I would post it up > to here to solicit comments, feedback, corrections, etc. You can > check it out at: > > http://open-bio.org/~chapmanb/bosc_biopython.pdf I like the logo :-) I would have a comment on the "alternatives approaches": you present design and use of standalone programs as an alternative without programming. However, if you want to get from standalone programs the same type of results as would be obtained with a Python pipeline, you would need parsing and scripting, which is programming. -- Catherine Letondal -- Pasteur Institute Computing Center From uriel.cantrelle at ibph.pharma.univ-montp1.fr Tue Jun 17 13:41:27 2003 From: uriel.cantrelle at ibph.pharma.univ-montp1.fr (uriel.cantrelle) Date: Tue Jun 17 07:42:57 2003 Subject: [BioPython] Parsing... Message-ID: <20030617104127.M61535@ibph.pharma.univ-montp1.fr> Hello, i am working and searching informations on Blastp and PSIBlast. in order to compare Blast Results with Clustal Results, i need to parse Blast output files and obtain completes sequences (not only hits locations). could you tell me: 1-Where could i find parsing blast results scripts/programs? 2- is it possible to get completes sequences? thank you very much, Uriel Cantrelle. From MCariaso at Endogenybio.com Tue Jun 17 11:51:43 2003 From: MCariaso at Endogenybio.com (Mike Cariaso) Date: Tue Jun 17 12:42:31 2003 Subject: [BioPython] BLAST parser error with local web blast of multiple queries Message-ID: Blast output that seems to choke the parser is attached. Error message is: Traceback (most recent call last): File "./blastscores.py", line 13, in ? b_record = b_iterator.next() File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 367, in next return self._parser.parse(File.StringHandle(data)) File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line 47, in parse self._scanner.feed(handle, self._consumer) File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line 98, in feed self._scan_header(uhandle, consumer) File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line 148, in _scan_header read_and_call_until(uhandle, consumer.reference, start='

') File "/usr/lib/python2.2/site-packages/Bio/ParserSupport.py", line 366, in read_and_call_until line = safe_readline(uhandle) File "/usr/lib/python2.2/site-packages/Bio/ParserSupport.py", line 442, in safe_readline raise SyntaxError, "Unexpected end of stream." SyntaxError: Unexpected end of stream. The attached HTMLized blast output was produced by NCBI's wwwblast available from ftp://ftp.ncbi.nih.gov/blast/server/current_release My problem seems to fit in the gaps between several of the tutorial examples, so this may be a problem with my code, or the blast parser. Here is example trimmed down code: #!/usr/bin/env python import sys from Bio.Blast import NCBIWWW from Bio.Blast import NCBIStandalone if __name__ == '__main__': blast_results = open(sys.argv[1]) b_parser = NCBIWWW.BlastParser() b_iterator = NCBIStandalone.Iterator(blast_results, b_parser) while 1: b_record = b_iterator.next() if b_record is None: break for alignment in b_record.alignments: for hsp in alignment.hsps: print '\t'.join([alignment.title, alignment.length, hsp.expect ]) My thinking has been along these lines. - My blast output has been htmlized, by NCBIs tool - So I think I need NCBIWWW's parser. - There are multiple sequences in my fasta input - So I need an iterator. - NCBIWWW doesn't seem to provide an iterator, so I'm hoping to use NCBIStandalone's iterator. This assumption is suspect. But I don't yet know the biopython code base well enough to know a better alternative. Any help is greatly appreciated. Michael Cariaso -------------- next part -------------- An HTML attachment was scrubbed... URL: http://portal.open-bio.org/pipermail/biopython/attachments/20030617/dfd5f49d/tyrkin2-0001.html From cyli at MIT.EDU Tue Jun 17 16:01:30 2003 From: cyli at MIT.EDU (Ying Li) Date: Tue Jun 17 14:59:56 2003 Subject: [BioPython] Parsing bl2seq output Message-ID: <1AB1BABD-A0F6-11D7-BDBE-0003934CD516@mit.edu> Hi! I'm just starting out with biopython, and I was wondering if there was a parser that parses bl2seq output. I thought BlastParser would work, but when I get an unexpected end-of-stream error. If someone could tell me if I'm doing something wrong, or if I'm not then where a bl2seq parser is, or whether one is in biopython, I'd really appreciate it. Thanks so much! -Ying The code I used, the error I received, and the output I tried to parse are as below: code: --------- from Bio.Blast import NCBIStandalone parser = NCBIStandalone.BlastParser() handle = open("output", 'r') rec = parser.parse(handle) --------- error: --------- Traceback (most recent call last): File "", line 1, in ? File "/sw/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 611, in parse self._scanner.feed(handle, self._consumer) File "/sw/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", line 81, in feed read_and_call_until(uhandle, consumer.noevent, contains='BLAST') File "/sw/lib/python2.2/site-packages/Bio/ParserSupport.py", line 366, in read_and_call_until line = safe_readline(uhandle) File "/sw/lib/python2.2/site-packages/Bio/ParserSupport.py", line 442, in safe_readline raise SyntaxError, "Unexpected end of stream." SyntaxError: Unexpected end of stream. output from bl2seq: ---------- Query= (443 letters) > Length = 373 Score = 20.0 bits (40), Expect = 0.13 Identities = 22/61 (36%), Positives = 29/61 (47%), Gaps = 17/61 (27%) Query: 32 SELIKIS----NTEFVILVRSNLGVTILN--EFKEV-FV----------YEFKSVLNSYV 74 SE + +S N +I +SNL V+ILN EF + FV EFKS L + Sbjct: 88 SEFVTLSTFAENELEIITEKSNLKVSILNVEEFPLIGFVENGLELSIDSQEFKSTLTQTI 147 Query: 75 S 75 S Sbjct: 148 S 148 Score = 18.5 bits (36), Expect = 0.38 Identities = 33/165 (20%), Positives = 76/165 (46%), Gaps = 29/165 (17%) Query: 257 FNSGLSTPINALDIPTAKLIIEAEIKKQGLKQKIKEDAVVYLAQN-FSDDVRKIKGLVNR 315 F S L+ I++++ K+++ G+ KIK++ + ++ + F +++I Sbjct: 139 FKSTLTQTISSINEWNQKVVLA------GMNLKIKDNKISFVTTDLFRVSLKEI------ 186 Query: 316 LLFFGIQNDLGHIIDLEDVIDLFKDTPSANLGLLNVKKIKEVVAKKYDVTIKAIDGKART 375 +L ++ II + +I+L NL + NVK+ K ++ + T K +D Sbjct: 187 ILNEATNQEVDIIIPYKTLIEL------RNL-IENVKEFK-IIIHDTNATFK-LDNDLLQ 237 Query: 376 TAIKNARHLSMYFAKIILNHTSTQIGAEFGGRDHSTVLSAISRIE 420 + + + R+ +++ A + ++ A+ T+L +SR E Sbjct: 238 STLIDGRYPNVHSAFPTTHEIKLELKAK-------TLLKVLSRFE 275 Score = 15.4 bits (28), Expect = 3.3 Identities = 5/11 (45%), Positives = 7/11 (63%) Query: 423 IYKEKEFKKIV 433 +Y E F K+V Sbjct: 33 VYMEVSFDKLV 43 Lambda K H 0.317 0.136 0.361 Gapped Lambda K H 0.267 0.0410 0.140 Matrix: BLOSUM62 Gap Penalties: Existence: 11, Extension: 1 Number of Hits to DB: 459 Number of Sequences: 0 Number of extensions: 18 Number of successful extensions: 4 Number of sequences better than 10.0: 1 Number of HSP's better than 10.0 without gapping: 1 Number of HSP's successfully gapped in prelim test: 0 Number of HSP's that attempted gapping in prelim test: 0 Number of HSP's gapped (non-prelim): 4 length of query: 443 length of database: 373 effective HSP length: 32 effective length of query: 411 effective length of database: 341 effective search space: 140151 effective search space used: 140151 T: 11 A: 40 X1: 16 ( 7.3 bits) X2: 38 (14.6 bits) X3: 64 (24.7 bits) S1: 24 (13.8 bits) S2: 24 (13.9 bits) From jchang at jeffchang.com Tue Jun 17 14:16:18 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Tue Jun 17 16:15:32 2003 Subject: [BioPython] BLAST parser error with local web blast of multiple queries In-Reply-To: Message-ID: <8E3BBA88-A100-11D7-8820-000A956845CE@jeffchang.com> Hi Mike, Thanks for the BLAST report. Yes, there are indeed changes in the WWW format. I've updated the NCBIWWW parser to deal with them. Unfortunately, there is no iterator for NCBIWWW output, and it's not trivial to create one. In general, though, the NCBIStandalone parser (which parses plain text output) is more heavily used and better tested. I'd highly recommend using plain text format (choose Plain text in the web form). We will slowly deprecate the support for HTML-ized blast reports in favor of this format. Along the same lines, is anyone using the XML format? There is no support for it in biopython, but perhaps there should be. Jeff On Tuesday, June 17, 2003, at 07:51 AM, Mike Cariaso wrote: > Blast output that seems to choke the parser is attached. > > Error message is: > Traceback (most recent call last): > File "./blastscores.py", line 13, in ? > b_record = b_iterator.next() > File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIStandalone.py", > line 367, in next > return self._parser.parse(File.StringHandle(data)) > File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line > 47, > in parse > self._scanner.feed(handle, self._consumer) > File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line > 98, > in feed > self._scan_header(uhandle, consumer) > File "/usr/lib/python2.2/site-packages/Bio/Blast/NCBIWWW.py", line > 148, in _scan_header > read_and_call_until(uhandle, consumer.reference, start='

') > File "/usr/lib/python2.2/site-packages/Bio/ParserSupport.py", line > 366, in read_and_call_until > line = safe_readline(uhandle) > File "/usr/lib/python2.2/site-packages/Bio/ParserSupport.py", line > 442, in safe_readline > raise SyntaxError, "Unexpected end of stream." > SyntaxError: Unexpected end of stream. > > > The attached HTMLized blast output was produced by NCBI's wwwblast > available from ftp://ftp.ncbi.nih.gov/blast/server/current_release > > > My problem seems to fit in the gaps between several of the tutorial > examples, so this may be a problem with my code, or the blast parser. > > > Here is example trimmed down code: > #!/usr/bin/env python > > import sys > from Bio.Blast import NCBIWWW > from Bio.Blast import NCBIStandalone > > if __name__ == '__main__': > blast_results = open(sys.argv[1]) > b_parser = NCBIWWW.BlastParser() > b_iterator = NCBIStandalone.Iterator(blast_results, b_parser) > while 1: > b_record = b_iterator.next() > if b_record is None: break > > for alignment in b_record.alignments: > for hsp in alignment.hsps: > print '\t'.join([alignment.title, > alignment.length, > hsp.expect > ]) > > > My thinking has been along these lines. > > - My blast output has been htmlized, by NCBIs tool - So I think I need > NCBIWWW's parser. > > - There are multiple sequences in my fasta input - So I need an > iterator. > > - NCBIWWW doesn't seem to provide an iterator, so I'm hoping to use > NCBIStandalone's iterator. This assumption is suspect. But I don't yet > know the biopython code base well enough to know a better alternative. > > Any help is greatly appreciated. > > Michael Cariaso > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From ykim at cs.nmsu.edu Tue Jun 17 15:39:25 2003 From: ykim at cs.nmsu.edu (Yosep) Date: Tue Jun 17 16:39:26 2003 Subject: [BioPython] Re: Message-ID: Hello. I just downloaded your biopython package and now am trying to install it. However, I get the following message. Bio/KDTree/_KDTree.swig.C:544: Numeric/arrayobject.h: No such file or directory I have searched through my machine to look for the arrayobject.h file. I was wondering if the file belongs to some other packages, or dependecies. Any would be great. Thank you very much! sincerely, Yosep Kim From chapmanb at uga.edu Tue Jun 17 17:43:10 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Tue Jun 17 16:49:53 2003 Subject: [BioPython] Parsing... In-Reply-To: <20030617104127.M61535@ibph.pharma.univ-montp1.fr> References: <20030617104127.M61535@ibph.pharma.univ-montp1.fr> Message-ID: <20030617204310.GC25073@evostick.agtec.uga.edu> Hi Uriel; > i am working and searching informations on Blastp and PSIBlast. > in order to compare Blast Results with Clustal Results, i need to parse Blast > output files and obtain completes sequences (not only hits locations). > could you tell me: > 1-Where could i find parsing blast results scripts/programs? Biopython has BLAST parsers in Bio.Blast. The module you want to work with NCBIStandalone. Documentation of using the parser and the record information it parses it into is located in the Biopython Tutorial: http://www.biopython.org/docs/tutorial/index.html Section 3.1.5 would probably be a good place to start to learn how to use the code. > 2- is it possible to get completes sequences? The parser can only get what is in the BLAST result file, and this does not include the complete sequence. If you need this, the best solution is to the parse the GI (or some other identifier, depending on the source of your database files) and then retrieve the full sequence from some other source. Using Biopython, there are really two different ways you could do this. The first would be to index a FASTA file of all the sequences and then retrieve it from this indexed file. Section 2.4.4 describes doing this. The second solution, which may be viable depending on how many sequences you need to retrieve, would be to fetch the sequence information from NCBI (assuming you have information you can get the GI on). Section 3.4.1 of the tutorial describes how to do this. There is also brand new code (in CVS only as of this weekend) to access EUtils at NCBI, but that is not yet documented (except in the source files in Bio.EUtils). Hope this helps. Brad From chapmanb at uga.edu Tue Jun 17 17:52:06 2003 From: chapmanb at uga.edu (Brad Chapman) Date: Tue Jun 17 16:55:52 2003 Subject: [BioPython] Re: In-Reply-To: References: Message-ID: <20030617205206.GE25073@evostick.agtec.uga.edu> Hi Yosep; > I just downloaded your biopython package and now am trying to install it. > However, I get the following message. > > Bio/KDTree/_KDTree.swig.C:544: Numeric/arrayobject.h: No such > file or directory > > I have searched through my machine to look for the arrayobject.h file. I > was wondering if the file belongs to some other packages, or dependecies. > Any would be great. Thank you very much! This file belongs to the Numeric package. You have two choices: 1. Install Numeric -- Installation instructions for this are available in section 3.2 of the Biopython installation docs: http://www.biopython.org/docs/install/Installation.html If you are on an RPM-type system, you'll need to make sure you install the "devel" RPMs, which include the header files. 2. Comment out KDTree in the setup.py file (which will not install it, but everything else should be fine): #Extension('Bio.KDTree._KDTreecmodule', # ["Bio/KDTree/_KDTree.C", # "Bio/KDTree/_KDTree.swig.C"], # libraries=["stdc++"] # ), Hope this helps. Brad From dlrubin at yahoo.com Tue Jun 17 21:19:23 2003 From: dlrubin at yahoo.com (Daniel Rubin) Date: Tue Jun 17 23:19:22 2003 Subject: [BioPython] Martel links are broken Message-ID: <20030618031923.79542.qmail@web13901.mail.yahoo.com> Hi, All links to Martel stuff seem to be broken, for example: biopython.org/~dalke/Martel/Martel-0.5/doc/writing_a_format.txt Thanks, Daniel __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com From adalke at mindspring.com Wed Jun 18 02:55:08 2003 From: adalke at mindspring.com (adalke@mindspring.com) Date: Wed Jun 18 01:52:43 2003 Subject: [BioPython] Martel links are broken Message-ID: <3420572.1055915565956.JavaMail.nobody@wamui04.slb.atl.earthlink.net> Daniel Rubin : > All links to Martel stuff seem to be broken, for > example: > > biopython.org/~dalke/Martel/Martel-0.5/doc/writing_a_format.txt My fault. I was cleaning up my account and didn't realize there were external links to there. I'm travelling now - when I get back I'll see if I can recover those files. Andrew From letondal at pasteur.fr Wed Jun 18 09:17:08 2003 From: letondal at pasteur.fr (Catherine Letondal) Date: Wed Jun 18 03:30:27 2003 Subject: [BioPython] Introduction to Programming using Python Message-ID: <200306180617.h5I6H9hJ035840@electre.pasteur.fr> Hi, Since the whole course is python-based, I have thought it could be of interest to inform you about our course: "Informatics in biology". It's a 4 month course whose main goal is to provide researchers in biology an initial exposure to informatics. (see: http://www.pasteur.fr/formation/infobio/infobio-en.html) The online programming course is available here (*): http://www.pasteur.fr/formation/infobio/python/ Best, -- Catherine Letondal -- Pasteur Institute Computing Center (*) this course is different from our former "Python course in Bioinformatics" which is more amed at people having some knowledge in programming From suraj_peri at yahoo.com Wed Jun 18 14:21:41 2003 From: suraj_peri at yahoo.com (Suraj Peri) Date: Wed Jun 18 16:21:38 2003 Subject: [BioPython] BLASTParser In-Reply-To: Message-ID: <20030618202141.59791.qmail@web10507.mail.yahoo.com> Hi group, I started learning python recently. I am very much excited to parse my blast output using biopython modules. I used the code provided in the biopyton tutorial to parse my blast resutls. I have a 50 fasta formatted sequences and I blasted them against RefSeq database locally. So I used the Iterator function (please correct me if this is not correct). Now I have two problems: 1. I cannot execute my testparser.py script with the following content: import os from Bio.Blast import NCBIStandalone b_out = open('kinasesrefseqout','r') b_parser = NCBIStandalone.BlastParser() b_iterator = NCBIStandalone.Iterator (b_out, b_parser) b_record = b_iterator.next() while 1: b_record = b_iterator.next() if b_record is None: break E_VALUE_THRESH = 0.00 for alignment in b_record.alignments: for hsp in alignment.hsps: if hsp.expect < E_VALUE_THRESH: print 'Sequence:', alignment.title print 'e value:', hsp.expect if len(hsp.query) > 75: dots = '...' else: dots = '' print hsp.query [0:75] + dots print hsp.match [0:75] + dots print hsp.sbjct [0:75] + dots I get the following error: Traceback (most recent call last): File "ptpparser.py", line 3, in ? from Bio.Blast import NCBIStandalone File "Bio/__init__.py", line 65, in ? _load_registries() File "Bio/__init__.py", line 57, in _load_registries module = __import__("Bio.config.%s" % module, {}, {}, ["Bio","config"]) File "Bio/config/DBRegistry.py", line 33, in ? from Martel import Parser File "Martel/__init__.py", line 6, in ? import Expression File "Martel/Expression.py", line 33, in ? import Parser File "Martel/Parser.py", line 33, in ? import TextTools ImportError: No module named TextTools 2. When I try this directly in the interactive mode, instead of getting a complete list of what I asked it to 'print', I get the following: seqience: >ref|NG_001337.1| Homo sapiens T cell receptor beta variable orphans on chromosome 9(TRBVOR9@) on chromosome 9 Thats it. I expected a list of all sequences with < 0.00 E-Value. I get only one. Simply the iterator function failed in my case. Could any one please help me how to get the desired output. Thanks. ===== PIL/BMB/SDU/DK __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com From ik3 at mail.inf.tu-dresden.de Thu Jun 19 01:30:41 2003 From: ik3 at mail.inf.tu-dresden.de (ik3@mail.inf.tu-dresden.de) Date: Wed Jun 18 18:30:42 2003 Subject: [BioPython] BLASTParser Message-ID: <1750.149.155.96.1.1055975441.squirrel@www.inf.tu-dresden.de> Hi Suraj, do you have installed mxTextTools ? If not then do it from http://www.lemburg.com/files/python/mxTextTools.html Biopython use these module. Greetings, Ingo PS: I'm also new to these stuff. But eventually it helps a little bit. From suraj_peri at yahoo.com Wed Jun 18 18:55:52 2003 From: suraj_peri at yahoo.com (Suraj Peri) Date: Wed Jun 18 20:55:48 2003 Subject: [BioPython] BLASTParser In-Reply-To: <3EF0D562.7000809@burnham.org> Message-ID: <20030619005552.16109.qmail@web10501.mail.yahoo.com> Dear Iddo, thanks for welcoming me. I could parse my data but now I am more charged and raising my need levels. Now, I am unable to get the name of the query that I blasted. I tried instantiating the Header class and then tried to get the value attached to query attribute in the header class. I tried pulling out value from hsp.query , here I got the sequence and not the name of the sequence. I tried different ways: ==> one such way is: from Bio.Blast.Record import Header query = header() Could any one please help me to pull out the query name: Also, please excuse me if I am messing up some thing here. I am reading books and object-oriented concepts are not yet imbibed. thanks -Suraj. --- Iddo Friedberg wrote: > > > Suraj Peri wrote: > > Hi group, > > > > I started learning python recently. I am very > much > > excited to parse my blast output using biopython > > modules. > > > Welcome aboard! The more the merrier! > > You need to install mxTextTools, available from: > > http://www.lemburg.com/files/python/mxTextTools.html > > Try then. > > Best, > > Iddo > > > > > I used the code provided in the biopyton tutorial > to > > parse my blast resutls. > > I have a 50 fasta formatted sequences and I > blasted > > them against RefSeq database locally. So I used > the > > Iterator function (please correct me if this is > not > > correct). > > > > Now I have two problems: > > > > 1. I cannot execute my testparser.py script with > the > > following content: > > > > import os > > from Bio.Blast import NCBIStandalone > > b_out = open('kinasesrefseqout','r') > > b_parser = NCBIStandalone.BlastParser() > > b_iterator = NCBIStandalone.Iterator (b_out, > b_parser) > > b_record = b_iterator.next() > > > > while 1: > > b_record = b_iterator.next() > > if b_record is None: > > break > > E_VALUE_THRESH = 0.00 > > for alignment in b_record.alignments: > > for hsp in alignment.hsps: > > if hsp.expect < > > E_VALUE_THRESH: > > print > 'Sequence:', > > alignment.title > > print 'e value:', > > hsp.expect > > if len(hsp.query) > > > > 75: > > dots = > '...' > > else: > > dots = '' > > print hsp.query > > [0:75] + dots > > print hsp.match > > [0:75] + dots > > print hsp.sbjct > > [0:75] + dots > > > > > > I get the following error: > > > > Traceback (most recent call last): > > File "ptpparser.py", line 3, in ? > > from Bio.Blast import NCBIStandalone > > File "Bio/__init__.py", line 65, in ? > > _load_registries() > > File "Bio/__init__.py", line 57, in > _load_registries > > module = __import__("Bio.config.%s" % module, > {}, > > {}, ["Bio","config"]) > > File "Bio/config/DBRegistry.py", line 33, in ? > > from Martel import Parser > > File "Martel/__init__.py", line 6, in ? > > import Expression > > File "Martel/Expression.py", line 33, in ? > > import Parser > > File "Martel/Parser.py", line 33, in ? > > import TextTools > > ImportError: No module named TextTools > > > > > > 2. When I try this directly in the interactive > mode, > > instead of getting a complete list of what I asked > it > > to 'print', I get the following: > > > > seqience: >ref|NG_001337.1| Homo sapiens T cell > > receptor beta variable orphans on chromosome > > 9(TRBVOR9@) on chromosome 9 > > > > > > Thats it. I expected a list of all sequences with > < > > 0.00 E-Value. I get only one. Simply the iterator > > function failed in my case. > > > > Could any one please help me how to get the > desired > > output. > > > > Thanks. > > > > > > > > > > ===== > > PIL/BMB/SDU/DK > > > > __________________________________ > > Do you Yahoo!? > > SBC Yahoo! DSL - Now only $29.95 per month! > > http://sbc.yahoo.com > > _______________________________________________ > > BioPython mailing list - BioPython@biopython.org > > http://biopython.org/mailman/listinfo/biopython > > > > > > -- > Iddo Friedberg, Ph.D. > The Burnham Institute > 10901 N. Torrey Pines Rd. > La Jolla, CA 92037 > USA > Tel: +1 (858) 646 3100 x3516 > Fax: +1 (858) 646 3171 > http://ffas.ljcrf.edu/~iddo > ===== Suraj Peri School of Medicine Johns Hopkins University Baltimore MD 21287 __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com From thamelry at vub.ac.be Thu Jun 19 13:17:47 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Thu Jun 19 06:51:27 2003 Subject: [BioPython] Re: In-Reply-To: References: Message-ID: <200306191217.47711.thamelry@vub.ac.be> > I just downloaded your biopython package and now am trying to install it. > However, I get the following message. > > Bio/KDTree/_KDTree.swig.C:544: Numeric/arrayobject.h: No such > file or directory > > I have searched through my machine to look for the arrayobject.h file. I > was wondering if the file belongs to some other packages, or dependecies. > Any would be great. Thank you very much! arrayobject.h belongs to the Numerical python (Numpy) package. -Thomas From andreas.kuntzagk at mdc-berlin.de Thu Jun 19 11:29:22 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Thu Jun 19 08:32:34 2003 Subject: [BioPython] Some proposed code-cleanup Message-ID: <1056018334.17009.16.camel@sulawesi> Hi there, while surfing the source, I noticed the use of UserDict.UserDict. The library-doc discourages the use of this and suggests to inherit from the new dict class instead. Since biopython requires python 2.2 this should work for everybody. So I went and replaced all occurences of UserDict, UserList and UserString. All tests working. Should improve readability. You find the diffs in diff.out More improvement could be done by replacing a.member = dict() whith a.member = {} What do you think? Also in GenBank.__init__.py I found the use of "my_dict.has_key(my_key)" and "for my_key in my_dict.keys()". This can be replaced by "my_key in my_dict" and "for my_key in My_dict" GvR did this in Python source (cvs), so this must be a Good Thing(tm) :-) I'm sure there are other places and I will find them, if people like this change. See GenBank.diff Andreas -------------- next part -------------- Index: Bio/Index.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Index.py,v retrieving revision 1.5 diff -r1.5 Index.py 22d21 < import UserDict 24c23 < class _ShelveIndex(UserDict.UserDict): --- > class _ShelveIndex(dict): 37c36 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) 68c67 < class _InMemoryIndex(UserDict.UserDict): --- > class _InMemoryIndex(dict): 82c81 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) 106c105 < UserDict.UserDict.update(self, dict) --- > dict.update(self, dict) 109c108 < UserDict.UserDict.__setitem__(self, key, value) --- > dict.__setitem__(self, key, value) 112c111 < UserDict.UserDict.__delitem__(self, key) --- > dict.__delitem__(self, key) 115c114 < UserDict.UserDict.clear(self) --- > dict.clear(self) Index: Bio/PropertyManager.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/PropertyManager.py,v retrieving revision 1.2 diff -r1.2 PropertyManager.py 14d13 < import UserDict 18c17 < class CreateDict(UserDict.UserDict): --- > class CreateDict(dict): Index: Bio/Seq.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Seq.py,v retrieving revision 1.6 diff -r1.6 Seq.py 1d0 < import UserList Index: Bio/CDD/Record.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/CDD/Record.py,v retrieving revision 1.1 diff -r1.1 Record.py 29,30d28 < from UserDict import UserDict < 39c37 < class Record( UserDict ): --- > class Record( dict ): 59c57 < UserDict.__init__( self ) --- > dict.__init__( self ) Index: Bio/Crystal/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Crystal/__init__.py,v retrieving revision 1.4 diff -r1.4 __init__.py 13,14d12 < import UserList < import UserDict Index: Bio/EUtils/POM.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/EUtils/POM.py,v retrieving revision 1.1 diff -r1.1 POM.py 13,14d12 < from UserList import UserList < from UserString import UserString 38c36 < class IndentedText(UserString): --- > class IndentedText(str): 863c861 < class AttributeList(UserList): --- > class AttributeList(list): Index: Bio/FSSP/FSSPTools.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/FSSP/FSSPTools.py,v retrieving revision 1.4 diff -r1.4 FSSPTools.py 1d0 < import UserDict 14c13 < class FSSPMultAlign(UserDict.UserDict): --- > class FSSPMultAlign(dict): Index: Bio/FSSP/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/FSSP/__init__.py,v retrieving revision 1.3 diff -r1.3 __init__.py 5d4 < import UserDict 153c152 < class FSSPAlignDict(UserDict.UserDict): --- > class FSSPAlignDict(dict): 204c203 < class FSSPSumDict(UserDict.UserDict): --- > class FSSPSumDict(dict): Index: Bio/InterPro/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/InterPro/__init__.py,v retrieving revision 1.4 diff -r1.4 __init__.py 35d34 < import UserDict 37,38c36 < < class Record( UserDict.UserDict ): --- > class Record( dict ): Index: Bio/LocusLink/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/LocusLink/__init__.py,v retrieving revision 1.1 diff -r1.1 __init__.py 3d2 < import UserDict 21c20 < class Record( UserDict.UserDict): --- > class Record( dict): 24c23 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 48c47 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): Index: Bio/LocusLink/web_parse.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/LocusLink/web_parse.py,v retrieving revision 1.2 diff -r1.2 web_parse.py 6d5 < import UserDict 160c159 < class Record( UserDict.UserDict): --- > class Record(dict): 163c162 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 194c193 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): Index: Bio/MetaTool/Record.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/MetaTool/Record.py,v retrieving revision 1.3 diff -r1.3 Record.py 8d7 < import UserDict 13c12 < class Metabolite( UserDict.UserDict ): --- > class Metabolite( dict ): 23c22 < class MetaboliteRole( UserDict.UserDict ): --- > class MetaboliteRole( dict ): Index: Bio/Ndb/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Ndb/__init__.py,v retrieving revision 1.2 diff -r1.2 __init__.py 40d39 < import UserDict 43c42 < class Record( UserDict.UserDict ): --- > class Record( dict ): 75c74 < elif( isinstance( val, UserDict.UserDict ) ): --- > elif( isinstance( val, dict ) ): Index: Bio/Rebase/Rebase.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Rebase/Rebase.py,v retrieving revision 1.8 diff -r1.8 Rebase.py 35d34 < import UserDict 132c131 < class EnzymeDict( UserDict.UserDict ): --- > class EnzymeDict( dict ): 144c143 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): 181c180 < self.enzyme_dict[ 'number_of_sites' ] = UserDict.UserDict() --- > self.enzyme_dict[ 'number_of_sites' ] = dict() Index: Bio/SCOP/FileIndex.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SCOP/FileIndex.py,v retrieving revision 1.1 diff -r1.1 FileIndex.py 6,7d5 < from UserDict import UserDict < 12c10 < class FileIndex(UserDict) : --- > class FileIndex(dict) : 31c29 < UserDict.__init__(self) --- > dict.__init__(self) Index: Bio/SubsMat/FreqTable.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SubsMat/FreqTable.py,v retrieving revision 1.1 diff -r1.1 FreqTable.py 1d0 < import UserDict 51c50 < class FreqTable(UserDict.UserDict): --- > class FreqTable(dict): Index: Bio/SubsMat/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SubsMat/__init__.py,v retrieving revision 1.7 diff -r1.7 __init__.py 11d10 < import UserDict 133c132 < class SeqMat(UserDict.UserDict): --- > class SeqMat(dict): 173c172 < assert (type(data) == type({}) or isinstance(data,UserDict.UserDict) or --- > assert (type(data) == type({}) or isinstance(data,dict) or Index: Bio/UniGene/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/UniGene/__init__.py,v retrieving revision 1.5 diff -r1.5 __init__.py 5d4 < import UserDict 15c14 < class Record( UserDict.UserDict): --- > class Record( dict): 18c17 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 41c40 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): 150c149 < self.queue[ key ] = UserDict.UserDict() --- > self.queue[ key ] = dict() 152c151 < self.queue[ key ] = UserDict.UserDict() --- > self.queue[ key ] = dict() 220c219 < print record \ No newline at end of file --- > print record Index: Martel/LAX.py =================================================================== RCS file: /home/repository/biopython/biopython/Martel/LAX.py,v retrieving revision 1.2 diff -r1.2 LAX.py 81c81 < import string, UserDict --- > import string 90c90 < class LAX(handler.ContentHandler, UserDict.UserDict): --- > class LAX(handler.ContentHandler, dict): 93c93 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) -------------- next part -------------- Index: Bio/GenBank/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/GenBank/__init__.py,v retrieving revision 1.39 diff -r1.39 __init__.py 103,112c103 < all_keys = self._index.keys() < keys_to_remove = [] < < for key in all_keys: < # if the key is internal (has a __) then add it to the remove list < if key[:2] == '__': < keys_to_remove.append(key) < < for key in keys_to_remove: < all_keys.remove(key) --- > all_keys = [key for key in self._index.keys() if not key.startswith('__')] 880c871 < if self._cur_feature.qualifiers.has_key(key): --- > if key in self._cur_feature.qualifiers: 1140c1131 < if self._cur_qualifier.key.find(remove_space_key) >= 0: --- > if remove_space_key in self._cur_qualifier.key: 1306c1297 < if search_db.mindy_data.has_key("file_sizes"): --- > if "file_sizes" in search_db.mindy_data: From omid9dr18 at hotmail.com Thu Jun 19 15:45:12 2003 From: omid9dr18 at hotmail.com (Omid Khalouei) Date: Thu Jun 19 10:45:11 2003 Subject: [BioPython] entering text into web forms Message-ID: Hello, I'm a relatively new biopython user. I know how to open the websites from within python scripts, but I was wondering if it's also possible to enter a text into a form window. I mean is it possible to for example specify a parameter for an alignment inside our python script to be placed in a web form window? If yes could you please give me a hint of how to do that? Thanks alot for your help. Sam K. ________________________________________________ Sam(Omid) Khalouei Departments of Computer Science & Human Biology University of Toronto Alt. e-mail: sam.khalouei@utoronto.ca ________________________________________________ _________________________________________________________________ Add photos to your messages with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail From andreas.kuntzagk at mdc-berlin.de Thu Jun 19 16:15:11 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Thu Jun 19 11:15:12 2003 Subject: [BioPython] entering text into web forms In-Reply-To: References: Message-ID: <1056035484.17008.29.camel@sulawesi> > I'm a relatively new biopython user. I know how to open the websites from > within python scripts, but I was wondering if it's also possible to enter a > text into a form window. I'm not sure, what you want. Do you want to get the resulting website after you filled an form and pressed submit (or whatever) or do you want to open a browser-window whith the form and some text already included? The first you can do whith import urllib params = {"param1":"value", "param2":"another value"} u =urllib.urlopen(url, urllib.urlencode(params)) The other I dont know. Andreas From andreas.kuntzagk at mdc-berlin.de Thu Jun 19 14:06:57 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Thu Jun 19 11:21:14 2003 Subject: [BioPython] more cleanup Message-ID: <1056027789.17008.24.camel@sulawesi> While I was at it, i tried to make Martel/Parser.py a little bit nicer. Especially _do_callback (only for beaty, not for speed) I you like it, you can incorporate it, if not, throw it away. Andreas -------------- next part -------------- Index: Martel/Parser.py =================================================================== RCS file: /home/repository/biopython/biopython/Martel/Parser.py,v retrieving revision 1.8 diff -r1.8 Parser.py 132,133c132,137 < for item in taglist: < tag, l, r, subtags = item --- > # bind functions to local names for a slight speedup > characters = cont_handler.characters > startElement = cont_handler.startElement > endElement = cont_handler.endElement > > for tag, l, r, subtags in taglist: 135a140 > assert begin <= l, "begin = %d and l = %d" % (begin, l) 137,148c142 < cont_handler.characters(s[begin:l]) < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) < < if tag[0] == ">": < if tag == ">ignore": < # Named groups doesn't create ">ignore" tags, so pass them on < # to the ContentHandler. Unnamed groups still need a name so < # mxTextTools can create subtags for them. I named them < # ">ignore" - don't create events for them. < pass --- > characters(s[begin:l]) 150c144,146 < elif tag[:2] == ">G": --- > if tag.startswith(">"): > if not tag == ">ignore": > assert tag.startswith(">G"),"Unknown special tag %s" % repr(tag) 153,157c149,150 < cont_handler.startElement(realtag, attrs) < < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) < else: --- > startElement(realtag, attrs) > 159c152 < cont_handler.startElement(tag, _attribute_list) --- > startElement(tag, _attribute_list) 165,166c158 < cont_handler.characters(s[l:r]) < begin = r --- > characters(s[l:r]) 168,175c160,162 < if tag[0] == ">": < if tag == ">ignore": < pass < elif tag[:2] == ">G": < realtag, attrs = attrlookup[tag] < cont_handler.endElement(realtag) < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) --- > if not tag == ">ignore": > realtag, attrs = attrlookup[tag] > endElement(realtag) 177c164 < cont_handler.endElement(tag) --- > endElement(tag) 181,182c168,169 < if begin < end: < cont_handler.characters(s[begin:end]) --- > if r < end: > characters(s[r:end]) 202,203c189 < for item in taglist: < tag, l, r, subtags = item --- > for tag, l, r, subtags in taglist: 206,211c192,194 < if begin < l: < if save_stack: < cont_handler._save_text += s[begin:l] < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) --- > assert begin <= l, "begin = %d and l = %d" % (begin, l) > if begin < l and save_stack: > cont_handler._save_text += s[begin:l] 245d227 < begin = r 263,264c245,246 < if begin < end and save_stack: < cont_handler._save_text += s[begin:end] --- > if r < end and save_stack: > cont_handler._save_text += s[r:end] 543,546c525,530 < self.make_header_reader, self.header_reader_args, self.header_tagtable, < self.make_reader, self.reader_args, self.record_tagtable, < self.make_footer_reader, self.footer_reader_args, self.footer_tagtable, < (self.want_groupref_names, self.debug_level, self.attrlookup)) --- > self.make_header_reader, self.header_reader_args, > self.header_tagtable,self.make_reader, > self.reader_args, self.record_tagtable, > self.make_footer_reader, self.footer_reader_args, > self.footer_tagtable, > (self.want_groupref_names, self.debug_level, self.attrlookup)) From ik3 at mail.inf.tu-dresden.de Thu Jun 19 18:53:31 2003 From: ik3 at mail.inf.tu-dresden.de (ik3@mail.inf.tu-dresden.de) Date: Thu Jun 19 11:53:28 2003 Subject: [BioPython] entering text into web forms Message-ID: <3038.149.155.96.1.1056038011.squirrel@www.inf.tu-dresden.de> Hi Sam, eventually my little tool called WebToolViewer could be helpfull. Have a look at http://www.ingo-keller.de/python/WebToolViewer. my 2 cents Ingo PS: Eventuall some other people could be interessted in these tool. You can describe a webfrom with an xml file and then proceed so much datasets as you want to do. No restrictions of only 1.000 Sequences anymore :-). From andreas.kuntzagk at mdc-berlin.de Thu Jun 19 17:42:40 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Thu Jun 19 12:42:42 2003 Subject: [BioPython] Tries Message-ID: <1056040734.22900.3.camel@sulawesi> I wanted to try tries, but couldn't figure out how to use them. I think, i remember in 1.10 I coult do something like from Bio import trie t=trie.trie() But now the import fails. There is a trie.o and triemodule.o and triefind.py. The last already expects an trie object. How do I get one? Andreas From jchang at jeffchang.com Thu Jun 19 11:37:17 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Thu Jun 19 13:37:16 2003 Subject: [BioPython] Tries In-Reply-To: <1056040734.22900.3.camel@sulawesi> Message-ID: That should work. Odd. Is there a trie.so? Jeff On Thursday, June 19, 2003, at 09:38 AM, Andreas Kuntzagk wrote: > I wanted to try tries, but couldn't figure out how to use them. > I think, i remember in 1.10 I coult do something like > > from Bio import trie > t=trie.trie() > > But now the import fails. There is a trie.o and triemodule.o and > triefind.py. The last already expects an trie object. > > How do I get one? > > Andreas > > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From hugh at parvati.msu.montana.edu Thu Jun 19 13:03:11 2003 From: hugh at parvati.msu.montana.edu (Hugh R) Date: Thu Jun 19 14:05:50 2003 Subject: [BioPython] problem installing mxTextTools Message-ID: <200306191203.h5JC3Nf02107@parvati.msu.montana.edu> Hello, I am trying to install biopython. I've run into trouble straight away, trying to install the mxTextTools stuff. I following the steps, download, gunzip, tar, then I try the python setup.py build and have a problem with gcc and an undeclared varialbe, apparently. Here is the full text of whats printed out. I grepped around a bit and can't even find __builtin_va_alist. I tried it running as root, and as myself, in different directories, and got the same thing. I believe its the latest python, gcc 2.95.2, sun solaris, but I've just started working on this system. Thanks for any thoughts. > python setup.py build running build running mx_autoconf macros to define: [] macros to undefine: [] updated build_ext with autoconf setup running build_ext building extension "mx.DateTime.mxDateTime.mxDateTime" (required) building 'mx.DateTime.mxDateTime.mxDateTime' extension creating build creating build/temp.solaris-2.8-sun4u-2.2 creating build/temp.solaris-2.8-sun4u-2.2/mx creating build/temp.solaris-2.8-sun4u-2.2/mx/DateTime creating build/temp.solaris-2.8-sun4u-2.2/mx/DateTime/mxDateTime creating build/temp.solaris-2.8-sun4u-2.2/mx/DateTime/mxDateTime/mxDateTime gcc -Wall -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -Imx/DateTime/mxDateTime -I/opt/local/include/pythor/include -I/usr/local/include -c mx/DateTime/mxDateTime/mxDateTime.c -o build/temp.solaris-2.8-sun4u-2.2/mx/xDateTime/mxDateTime/mxDateTime.o In file included from mx/DateTime/mxDateTime/mx.h:51, from mx/DateTime/mxDateTime/mxDateTime.c:41: mx/DateTime/mxDateTime/mxstdlib.h: In function `mxDebugPrintf': mx/DateTime/mxDateTime/mxstdlib.h:192: `__builtin_va_alist' undeclared (first use in this function) mx/DateTime/mxDateTime/mxstdlib.h:192: (Each undeclared identifier is reported only once mx/DateTime/mxDateTime/mxstdlib.h:192: for each function it appears in.) mx/DateTime/mxDateTime/mxstdlib.h:150: warning: `args' might be used uninitialized in this function error: command 'gcc' failed with exit status 1 > From suraj_peri at yahoo.com Thu Jun 19 13:15:38 2003 From: suraj_peri at yahoo.com (Suraj Peri) Date: Thu Jun 19 15:15:33 2003 Subject: [BioPython] BLASTParser In-Reply-To: <20030619005552.16109.qmail@web10501.mail.yahoo.com> Message-ID: <20030619191538.1452.qmail@web10504.mail.yahoo.com> Hi all, Please excuse me for re-posting. Could any one please help me, how to get the name of my query sequence (that I am blasting against NRdb) in the parsed output using blast parser. thanks -suraj. ===== Suraj Peri School of Medicine Johns Hopkins University Baltimore MD 21287 __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com From MCariaso at Endogenybio.com Thu Jun 19 16:23:25 2003 From: MCariaso at Endogenybio.com (Mike Cariaso) Date: Thu Jun 19 15:23:22 2003 Subject: [BioPython] Biopython XML parsers Message-ID: I'm working on a parser for MAGE-ML, but running into issues. The parser examples in the tutorial are targeted at generic parsers. However MAGE is an XML based format, and since so much effort has already gone into XML parsers it seems inappropriate to use Martel. If I go with the sax parser, its not clear to me how to set up and use an iterator. All I ever see is the content handler being setup and then a call to start the parse. I've checked the biopython tree for a suitable example, but if its there I'm not seeing one. Could someone either post a skeleton, or working code for ANY xml parser that would play nicely with the biopython model. Michael Cariaso mcariaso@endogenybio.com From Cath.Lawrence at anu.edu.au Fri Jun 20 12:25:56 2003 From: Cath.Lawrence at anu.edu.au (Cath Lawrence) Date: Thu Jun 19 21:26:00 2003 Subject: [BioPython] biopython installation In-Reply-To: <26115E60-9858-11D7-893F-000A956845CE@smi.stanford.edu> Message-ID: <23E5E190-A2BE-11D7-8765-00039390F614@anu.edu.au> Revisiting an old thread since I thought I should report in, despite the personal embarrassment... On Saturday, June 7, 2003, at 05:50 AM, Jeffrey Chang wrote: > On Thursday, June 5, 2003, at 12:03 AM, Cath Lawrence wrote: >> ... when I run the test suite I get many tests skipped due to import >> errors - and the documentation appears to be silent on these modules >> and their purposes. >> [mostly snipped] > This does not look right. There should not be import errors on > packages like Crystal, Polypeptide, Saf, etc. You mentioned that you > were using the CVS version. Some of these modules look relatively > recent. Thanks for the ideas, Jeffrey. It helped. And now the admission of my stupidity. cvs update ***-d*** !! Ooops. Still missed a couple - Skipping test because of import error: No module named MySQLdb Skipping test because of import error: No module named _KDTreec And a final exception: Exception exceptions.AttributeError: in > ignored cheers, Cath Cath Lawrence, Cath.Lawrence@anu.edu.au Senior Scientific Programmer, Centre for Bioinformation Science, John Curtin School of Medical Research (room 4088) Australian National University, Canberra ACT 0200 ph: (02) 61257959 mobile: 0421-902694 fax: (02) 61254712 From andreas.kuntzagk at mdc-berlin.de Fri Jun 20 09:08:48 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 20 04:08:50 2003 Subject: [BioPython] Tries In-Reply-To: References: Message-ID: <1056096302.22951.26.camel@sulawesi> Hi, Ok, now I see my problem. When I tried the tries I was in the cvs-directory. So python tried to load the trie.so from there, even when I didn't have the director in my PYTHONPATH. (was like: start python, do alot of work whith it, later "oh, lets trie trie", looking at sys.path to make sure, import, fail) So now I understand, setup.py build creates the .so only in the build directory. Every day you learn something new. Andreas From letondal at pasteur.fr Fri Jun 20 16:37:49 2003 From: letondal at pasteur.fr (Catherine Letondal) Date: Fri Jun 20 09:37:44 2003 Subject: [BioPython] entering text into web forms In-Reply-To: Your message of "Thu, 19 Jun 2003 14:45:12 -0000." Message-ID: <200306201337.h5KDbnhJ159086@electre.pasteur.fr> "Omid Khalouei" wrote: > Hello, > > I'm a relatively new biopython user. I know how to open the websites from > within python scripts, but I was wondering if it's also possible to enter a > text into a form window. I mean is it possible to for example specify a > parameter for an alignment inside our python script to be placed in a web > form window? If yes could you please give me a hint of how to do that? > > Thanks alot for your help. > > Sam K. > Hi, You can use httplib. There are good books explaining this as well (see: "Web programming in Python", which is a very good book - not only for web programming (http://www.unixreview.com/documents/s=7460/uni1031085776057/ur0209c.htm). Example : Say that you want to use Entrez Web form and search a term provided as argument on the command line in the nucleotide db. You have several solutions: 1) do a GET 2) do a POST + application/x-www-form-urlencoded content-type 3) do a POST + multipart/form-data #3 would be worth is you submitted, say, a big sequence to a sequence analysis server - which is not the case here 1) do a GET from httplib import HTTP from sys import argv req = HTTP('www.ncbi.nlm.nih.gov') req.putrequest("GET", '/entrez/query.fcgi?db=nucleotide&cmd=search&term=' + argv[1]) req.putheader("Accept", "text/html") req.putheader("User-Agent", argv[0]) req.endheaders() ec, em, h = req.getreply() print ec, em f=req.getfile() l=f.read() f.close() print l 2) do a POST + application/x-www-form-urlencoded content-type from httplib import HTTP from sys import argv params = 'db=nucleotide&cmd=search&term=' + argv[1] content_length = "%d" % len(params) req = HTTP('www.ncbi.nlm.nih.gov') req.putrequest("POST", '/entrez/query.fcgi') req.putheader("Accept", "text/html") req.putheader("User-Agent", argv[0]) req.putheader("Content-Length", content_length) req.putheader("Content-type", "application/x-www-form-urlencoded") req.endheaders() req.send(params) ec, em, h = req.getreply() print ec, em f=req.getfile() l=f.read() f.close() print l 3) do a POST + multipart/form-data what is tricky here is to build the body of the request with proper format, e.g you need boundaries etc... and my solution can probably be enhanced. from httplib import HTTP from sys import argv boundary ="3350843711048987223263301088" postdata = "--" + boundary postdata += "\r\nContent-Disposition: form-data; name=\"db\"" postdata += "\r\n\r\n" + 'nucleotide' + "\r\n" postdata += "--" + boundary postdata += "\r\nContent-Disposition: form-data; name=\"cmd\"" postdata += "\r\n\r\n" + 'search' + "\r\n" postdata += "--" + boundary postdata += "\r\nContent-Disposition: form-data; name=\"term\"" postdata += "\r\n\r\n" + argv[1] + "\r\n" postdata += "--" + boundary postdata += "--\r\n" content_length = str(len(postdata)) req = HTTP('www.ncbi.nlm.nih.gov') req.putrequest("POST", '/entrez/query.fcgi') req.putheader("Accept", "text/html") req.putheader("User-Agent", argv[0]) req.putheader("Content-Length", content_length) req.putheader("Content-type", "multipart/form-data; boundary=" + boundary) req.endheaders() req.send(postdata) ec, em, h = req.getreply() print ec, em f=req.getfile() l=f.read() f.close() print l -- Catherine Letondal -- Pasteur Institute Computing Center From andreas.kuntzagk at mdc-berlin.de Fri Jun 20 15:30:10 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 20 10:30:12 2003 Subject: [BioPython] SwissProt.SProt parser improvement Message-ID: <1056119183.22900.33.camel@sulawesi> Hi, I have added code to the parser to get the FeatureId (FTId) where it exists. Also replaced all occurences of the module string whith the functions for the string type. Makes for more readable code. Feel free to use or throw away Andreas From andreas.kuntzagk at mdc-berlin.de Fri Jun 20 15:53:54 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Fri Jun 20 10:56:05 2003 Subject: [BioPython] SwissProt.SProt parser improvement In-Reply-To: <1056119183.22900.33.camel@sulawesi> References: <1056119183.22900.33.camel@sulawesi> Message-ID: <1056120608.22952.35.camel@sulawesi> Am Fre, 2003-06-20 um 16.26 schrieb Andreas Kuntzagk: > Hi, > > I have added code to the parser to get the FeatureId (FTId) where it > exists. Also replaced all occurences of the module string whith the > functions for the string type. Makes for more readable code. > > Feel free to use or throw away Forgot to attach the diff. Andreas -------------- next part -------------- Index: Bio/SwissProt/SProt.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SwissProt/SProt.py,v retrieving revision 1.24 diff -r1.24 SProt.py 36d35 < import string 166c165 < data = string.join(lines, '') --- > data = ''.join(lines) 506c505 < cols = string.split(line) --- > cols = line.split() 523c522 < cols = string.split(self._chomp(string.rstrip(line[5:])), ';') --- > cols= self._chomp(line[5:].rstrip()).split(';') 525c524 < self.data.accessions.append(string.lstrip(ac)) --- > self.data.accessions.append(ac.lstrip()) 529,530c528,529 < if string.find(uprline, 'CREATED') >= 0: < cols = string.split(line) --- > cols = line.split() > if uprline.find(uprline) >= 0: 537,538c536 < elif string.find(uprline, 'LAST SEQUENCE UPDATE') >= 0: < cols = string.split(line) --- > elif uprline.find('LAST SEQUENCE UPDATE') >= 0: 545,546c543 < elif string.find(uprline, 'LAST ANNOTATION UPDATE') >= 0: < cols = string.split(line) --- > elif uprline.find( 'LAST ANNOTATION UPDATE') >= 0: 570,571c567,568 < line = self._chomp(string.rstrip(line[5:])) < cols = string.split(line, ';') --- > line = self._chomp(line[5:].rstrip()) > cols = line.split(';') 573c570 < self.data.organism_classification.append(string.lstrip(col)) --- > self.data.organism_classification.append(col.lstrip()) 587,588c584,585 < line = self._chomp(string.rstrip(line[5:])) < index = string.find(line, '=') --- > line = self._chomp(line[5:].rstrip()) > index = line.find('=') 592c589 < ids = string.split(line[index+1:], ',') --- > ids = line[index+1:].split(',') 594,595c591,592 < ids = string.split(line, ',') < self.data.taxonomy_id.extend(map(string.strip, ids)) --- > ids = line.split(',') > self.data.taxonomy_id.extend([id.strip for id in ids]) 598c595 < rn = string.rstrip(line[5:]) --- > rn = line[5:].rstrip() 606c603 < self.data.references[-1].positions.append(string.rstrip(line[5:])) --- > self.data.references[-1].positions.append(line[5:].rstrip()) 610c607 < cols = string.split(string.rstrip(line[5:]), ';') --- > cols = line[5:].rstrip().split( ';') 616c613 < index = string.find(col, '=') --- > index = col.find('=') 634c631 < ref.comments.append((string.lstrip(token), text)) --- > ref.comments.append((token.lstrip(), text)) 646c643 < ind = string.find(line, '[NCBI, ExPASy, Israel, Japan]') --- > ind = line.find('[NCBI, ExPASy, Israel, Japan]') 656,657c653,654 < if string.find(line, "=") != -1: < cols = string.split(line) --- > if line.find( "=") != -1: > cols = line.split() 661c658 < id_cols = string.split(info_col, "=") --- > id_cols = info_col.split("=") 670c667 < cols = string.split(line) --- > cols = line.split() 719c716 < i = string.find(line, '[') --- > i = line.find('[') 722,724c719,720 < cols = string.split(self._chomp(string.rstrip(line)), ';') < for i in range(len(cols)): < cols[i] = string.lstrip(cols[i]) --- > cols = self._chomp(line.rstrip()).split(';') > cols = [col.lstrip() for col in cols] 728,731c724,726 < cols = string.split(self._chomp(string.rstrip(line[5:])), ';') < for col in cols: < self.data.keywords.append(string.lstrip(col)) < --- > cols = self._chomp(line[5:].rstrip()).split(';') > self.data.keywords.extend([c.lstrip for c in cols]) > 734c729 < name = string.rstrip(line[0:8]) --- > name = line[0:8].rstrip() 738c733 < from_res = string.lstrip(line[9:15]) --- > from_res = line[9:15].lstrip() 742,744c737,743 < to_res = string.lstrip(line[16:22]) < description = string.rstrip(line[29:70]) < --- > to_res = line[16:22].lstrip() > description = line[29:70].rstrip() > #if there is a feature_id (FTId), store it away > if line[29:35]==r"/FTId=": > ft_id = line[35:70].rstrip()[:-1] > else: > ft_id ="" 747c746 < name, from_res, to_res, old_description = self.data.features[-1] --- > name, from_res, to_res, old_description,old_ft_id = self.data.features[-1] 754c753 < self.data.features.append((name, from_res, to_res, description)) --- > self.data.features.append((name, from_res, to_res, description,ft_id)) 764c763 < descr_cols = string.split(description, " -> ") --- > descr_cols = description.split(" -> ") 771c770 < extra_info_pos = string.find(second_seq, " (") --- > extra_info_pos = second_seq.find(" (") 777,778c776,777 < first_seq = string.replace(first_seq, " ", "") < second_seq = string.replace(second_seq, " ", "") --- > first_seq = first_seq.replace(" ", "") > second_seq = second_seq.replace(" ", "") 786c785 < cols = string.split(line) --- > cols = line.split() 792c791 < seq = string.rstrip(string.replace(line, " ", "")) --- > seq = line.replace(" ", "").rstrip() 797a797,798 > # from Python 2.2.2 could be replaced whith word.rstrip(".,;") > # if there is always only one puctuation 814c815 < setattr(rec, m, string.rstrip(attr)) --- > setattr(rec, m, attr.rstrip()) 823c824 < setattr(ref, m, string.rstrip(attr)) --- > setattr(ref, m, attr.rstrip()) 849c850 < self.data.description = string.rstrip(self.data.description) --- > self.data.description = self.data.description.rstrip() 852c853 < cols = string.split(line) --- > cols = line.split() 856c857 < ids = string.split(string.rstrip(line[5:]), ';') --- > ids = line[5:].rstrip().split(';') 861c862 < string.strip(line[5:]) + "\n" --- > line[5:].strip() + "\n" 864c865 < seq = Seq.Seq(string.rstrip(string.replace(line, " ", "")), --- > seq = Seq.Seq(line.replace(" ", "").rstrip(), From MCariaso at Endogenybio.com Fri Jun 20 12:29:56 2003 From: MCariaso at Endogenybio.com (Mike Cariaso) Date: Fri Jun 20 11:29:50 2003 Subject: [BioPython] RE: Biopython XML parsers Message-ID: Yesterday I asked a question about generating a new parser for an XML format (MAGE-ML). I've had some success and believe I can now answer my own question, but I'd still like to run this past the biopythonistas, and anyone who's got more python experience than me. Q: How do I use a sax parser with an iterator? A: Since the XML document has a nested structure, my initial attempts were failing, since I had the opening, but not closing tags of the XML headers. Ie. The full XML doc looks like this I wanted my iterator to iterate over each BioSequence block. But it was choking because at the first iteration all it could see was: Which is not valid, since there are no closing or tags. So the iterator needs to strip the records down to just the ...stuff... blocks. Most of the bits of the example that relate to a Scanner, can (I believe) be replaced by xml.sax related standard modules. The working code is below. I imagine the powers that be are pretty busy actually creating biopython, and holding down real jobs. So I welcome feedback, and especially advice. But I post this more so that it will go into the achives, and possibly be useful to others. #!/usr/bin/env python from Bio.ParserSupport import * from xml.sax import make_parser class MageIterator: def __init__(self, handle, parser=None): if type(handle) is not FileType and type(handle) is not InstanceType: raise ValueError, "I expected a file handle or file-like object" self._uhandle = File.UndoHandle(handle) self._parser = parser def next(self): while 1: #Strip any leading try: line = safe_peekline(self._uhandle) except SyntaxError: break if not line: break if -1 != line.find(''):break if not lines: return None #call the parser to fire the handlers data = string.join(lines, '') if self._parser is not None: self._parser.parse(File.StringHandle(data)) return data class _MageConsumer(AbstractConsumer): def _unhandled(self, *foo): pass def startElement(self, name, attrs): if name == 'BioSequence': print 'ID\t',attrs['identifier'] if 'name' in attrs.keys() : print 'Name\t',attrs['name'] if __name__ == '__main__': fh = open('MG_U74Av2_annot_small.xml') parser = make_parser() parser.setContentHandler(_MageConsumer()) iterator = MageIterator(fh, parser) while 1: rec = iterator.next() if rec is None: break print 'done' From hugh at parvati.msu.montana.edu Fri Jun 20 10:41:14 2003 From: hugh at parvati.msu.montana.edu (Hugh R) Date: Fri Jun 20 11:43:51 2003 Subject: [BioPython] stray '\' in program Message-ID: <200306200941.h5K9fQf02344@parvati.msu.montana.edu> Ok, now I'm trying to install numpy, to see if that goes any better. So I unzip the Numeric--.zip file, and do the python setup.py build, and I get a whole lot of stray '\' in program error messages from gcc. I know the \ is a line continuation character in python, but its not in C (????) Whats up with this? thanks From jchang at jeffchang.com Fri Jun 20 11:55:41 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 20 13:55:39 2003 Subject: [BioPython] stray '\' in program In-Reply-To: <200306200941.h5K9fQf02344@parvati.msu.montana.edu> Message-ID: <689E972A-A348-11D7-8F51-000A956845CE@jeffchang.com> Based on this and your previous message, it really sounds like there's something wrong with your gcc installation. Can you compile any C programs, or just not Python libraries? \ is a line continuation character in C, so I'm not sure what it's complaining about. Also, from the previous post, __builtin_va_alist sounds like something from stdarg. Try making a small test C program, and #include to see if it complains. That should not generate any errors, and if it does, I'd start looking more closely to see if your gcc is set up correctly. The include files may be incorrect or out of date. Jeff On Friday, June 20, 2003, at 08:41 AM, Hugh R wrote: > Ok, now I'm trying to install numpy, to see if that goes any better. > So I unzip > the Numeric--.zip file, and do the python setup.py build, and I get a > whole lot > of stray '\' in program error messages from gcc. I know the \ is a line > continuation character in python, but its not in C (????) > Whats up with this? > > thanks > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From jchang at jeffchang.com Fri Jun 20 12:18:58 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 20 14:18:58 2003 Subject: [BioPython] SwissProt.SProt parser improvement In-Reply-To: <1056119183.22900.33.camel@sulawesi> Message-ID: Hi Andreas, Thanks for the patch! I've committed it, and the changes will be available in the CVS soon. I made some small fixes to a couple of the diff-lets: 529,530c528,529 < if string.find(uprline, 'CREATED') >= 0: < cols = string.split(line) --- > cols = line.split() > if uprline.find(uprline) >= 0: uprline.find('CREATED') 594,595c591,592 < ids = string.split(line, ',') < self.data.taxonomy_id.extend(map(string.strip, ids)) --- > ids = line.split(',') > self.data.taxonomy_id.extend([id.strip for id in ids]) self.data.taxonomy_id.extend([id.strip() for id in ids]) 728,731c724,726 < cols = string.split(self._chomp(string.rstrip(line[5:])), ';') < for col in cols: < self.data.keywords.append(string.lstrip(col)) < --- > cols = self._chomp(line[5:].rstrip()).split(';') > self.data.keywords.extend([c.lstrip for c in cols]) > self.data.keywords.extend([c.lstrip() for c in cols]) Jeff On Friday, June 20, 2003, at 07:26 AM, Andreas Kuntzagk wrote: > Hi, > > I have added code to the parser to get the FeatureId (FTId) where it > exists. Also replaced all occurences of the module string whith the > functions for the string type. Makes for more readable code. > > Feel free to use or throw away > > Andreas > > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From hugh at parvati.msu.montana.edu Fri Jun 20 13:19:02 2003 From: hugh at parvati.msu.montana.edu (Hugh R) Date: Fri Jun 20 14:21:40 2003 Subject: [BioPython] stray '\' in program Message-ID: <200306201219.h5KCJEf02418@parvati.msu.montana.edu> Ok, I've found some #define references to va_list, builtin_va_list etc in a file gcc-2.95.2-sol8-sparc-local. And a small C program trying to declare a varialbe of either type complains. So is the latest gcc recommended? thanks. Hugh >Date: Fri, 20 Jun 2003 10:55:41 -0700 >Subject: Re: [BioPython] stray '\' in program >Mime-Version: 1.0 (Apple Message framework v552) >Cc: biopython@biopython.org >To: Hugh R >From: Jeffrey Chang >Content-Transfer-Encoding: 7bit > >Based on this and your previous message, it really sounds like there's >something wrong with your gcc installation. Can you compile any C >programs, or just not Python libraries? \ is a line continuation >character in C, so I'm not sure what it's complaining about. Also, >from the previous post, __builtin_va_alist sounds like something from >stdarg. Try making a small test C program, and #include to >see if it complains. That should not generate any errors, and if it >does, I'd start looking more closely to see if your gcc is set up >correctly. The include files may be incorrect or out of date. > >Jeff > > >On Friday, June 20, 2003, at 08:41 AM, Hugh R wrote: > >> Ok, now I'm trying to install numpy, to see if that goes any better. >> So I unzip >> the Numeric--.zip file, and do the python setup.py build, and I get a >> whole lot >> of stray '\' in program error messages from gcc. I know the \ is a line >> continuation character in python, but its not in C (????) >> Whats up with this? >> >> thanks >> >> _______________________________________________ >> BioPython mailing list - BioPython@biopython.org >> http://biopython.org/mailman/listinfo/biopython > From jchang at jeffchang.com Fri Jun 20 18:39:03 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 20 20:39:00 2003 Subject: [BioPython] Voting Ballot for new logo Message-ID: Hello, everbody! It is time to vote on the new Biopython logo. This is the logo that will be used to "brand" the project. It will appear on the official webpage, pages that link to that page, and on talks about the project. Many people have been hard at work designing excellent logos, and we're going to start voting on which logo to use. You do not have to be a Biopython contributor to vote. Followers of the project and other well-wishers are invited to participate! Some of the logos have had minor updates since last week, so please be sure to check the page before you vote. http://www.biopython.org/static/logos To vote, please fill out the ballot: ----- BEGIN BALLOT ----- ___ Sep Dadsetan ___ Iddo Friedberg ___ Gyro Funch ___ JP Glutting ___ Andreas Kuntzagk ___ Catherine Letondal ___ Runsun Pan ___ Leighton Pritchard ___ Henrik Vestergaard & Thomas Hamelryck ----- END BALLOT ----- To fill out the ballot, rank all the logos you like from 1-N, with the favorite getting a vote of 1. For example, if your favorite is Letondal followed by Funch, Pan, Friedberg, then Vestergaard, your ballot will look like: ___ Sep Dadsetan _4_ Iddo Friedberg _2_ Gyro Funch ___ JP Glutting ___ Andreas Kuntzagk _1_ Catherine Letondal _3_ Runsun Pan ___ Leighton Pritchard _5_ Henrik Vestergaard & Thomas Hamelryck Please either send the ballot directly to me, or reply to the list by next Friday, June 27. Only one ballot per person, please. I will tally the results over the weekend by instant run-off voting and announce the results the week after. Good luck everybody! Jeff From pan at uchicago.edu Fri Jun 20 21:31:45 2003 From: pan at uchicago.edu (pan@uchicago.edu) Date: Fri Jun 20 21:31:39 2003 Subject: [BioPython] Voting Ballot for new logo In-Reply-To: References: Message-ID: <1056159105.3ef3b581147f5@webmail.uchicago.edu> Hi Jeff, I thought Henrik has changed his logo to right-handed ... :( In that case, I would still vote mine as the #1. If he got the helix changed to right-handed, then pls switch his and mine. thx. pan > ----- BEGIN BALLOT ----- > > ___ Sep Dadsetan > ___ Iddo Friedberg > ___ Gyro Funch > _3_ JP Glutting > ___ Andreas Kuntzagk > ___ Catherine Letondal > _1_ Runsun Pan > ___ Leighton Pritchard > _2_ Henrik Vestergaard & Thomas Hamelryck > > ----- END BALLOT ----- From jchang at jeffchang.com Fri Jun 20 21:19:54 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 20 23:19:56 2003 Subject: [BioPython] Some proposed code-cleanup In-Reply-To: <1056018334.17009.16.camel@sulawesi> Message-ID: <3A3CFC0C-A397-11D7-8E49-000A956845CE@jeffchang.com> Hi Andreas, I don't understand the subtle differences with UserDict with the dict type. However, it does cause some problems. For example, if you apply the patches to SubsMat/__init__.py and FreqTable.py, the regression tests fail! I don't think we should accept these fixes until we know that they won't break current code. I actually checked in the changes, and had to back them out again. Please let me know if I might have missed something, and a module is not acting quite right. I checked in the GenBank patch, except for the snippet: 1140c1131 < if self._cur_qualifier.key.find(remove_space_key) >= 0: --- > if remove_space_key in self._cur_qualifier.key: This does not work, because remove_space_key and self._cur_qualifier.key are both strings. The "in" operator does not apply. Jeff On Thursday, June 19, 2003, at 03:25 AM, Andreas Kuntzagk wrote: > Hi there, > > while surfing the source, I noticed the use of UserDict.UserDict. > The library-doc discourages the use of this and suggests to inherit > from > the new dict class instead. Since biopython requires python 2.2 this > should work for everybody. > So I went and replaced all occurences of UserDict, UserList and > UserString. All tests working. Should improve readability. > You find the diffs in diff.out > More improvement could be done by replacing > > a.member = dict() > > whith > > a.member = {} > > What do you think? > > Also in GenBank.__init__.py I found the use of > "my_dict.has_key(my_key)" > and "for my_key in my_dict.keys()". > This can be replaced by "my_key in my_dict" and "for my_key in My_dict" > GvR did this in Python source (cvs), so this must be a Good Thing(tm) > :-) > I'm sure there are other places and I will find them, if people like > this change. > > See GenBank.diff > > Andreas > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From jchang at jeffchang.com Fri Jun 20 21:20:46 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Fri Jun 20 23:20:43 2003 Subject: [BioPython] more cleanup In-Reply-To: <1056027789.17008.24.camel@sulawesi> Message-ID: <5997F4AC-A397-11D7-8E49-000A956845CE@jeffchang.com> This causes the regression tests to fail. I did not check it in. (Actually, I did check it in, but backed it out.) People, please let me know if something appears odd. Jeff On Thursday, June 19, 2003, at 06:03 AM, Andreas Kuntzagk wrote: > While I was at it, i tried to make Martel/Parser.py a little bit nicer. > Especially _do_callback (only for beaty, not for speed) > I you like it, you can incorporate it, if not, throw it away. > > Andreas > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From info at seanalonzo.com Sat Jun 21 01:33:55 2003 From: info at seanalonzo.com (Sean-Alonzo) Date: Sat Jun 21 00:33:42 2003 Subject: [BioPython] URL Submission: SeanAlonzo.com Message-ID: <200306210433.h5L4XcmG022934@localhost.localdomain> Hello: I would like to submit my site for submission into your links section: SeanAlonzo.com SeanAlonzo.com is the official site of occult fiction author Sean-Alonzo, exploring symbolism, alternative history, philosophy, secret societies and other areas of the esoteric tradition. http://www.seanalonzo.com Sean-Alonzo From Ravinder.Singh at colorado.edu Sat Jun 21 00:40:00 2003 From: Ravinder.Singh at colorado.edu (Ravinder Singh) Date: Sat Jun 21 01:39:53 2003 Subject: [BioPython] Vote for Gyro Funch Message-ID: <3EF3EFB0.7050203@colorado.edu> Hi my vote for the logo is: First preference: Gyro Funch Second preference: Henrik Vestergaard (Thomas Hamelryck) Ravinder -- ******************************************************************************** Dr. Ravinder Singh Assistant Professor MCD Biology 347 UCB University of Colorado Boulder, CO 80309-0347 (303)492-8886 (voice) (303)492-7744 (fax) From mmokrejs at natur.cuni.cz Sat Jun 21 15:23:15 2003 From: mmokrejs at natur.cuni.cz (=?iso-8859-2?Q?Martin_MOKREJ=A9?=) Date: Sat Jun 21 08:23:12 2003 Subject: [BioPython] stray '\' in program In-Reply-To: <689E972A-A348-11D7-8F51-000A956845CE@jeffchang.com> References: <689E972A-A348-11D7-8F51-000A956845CE@jeffchang.com> Message-ID: On Fri, 20 Jun 2003, Jeffrey Chang wrote: Hi, > character in C, so I'm not sure what it's complaining about. Also, > from the previous post, __builtin_va_alist sounds like something from > stdarg. Try making a small test C program, and #include to I'm not a programmer in C, but I saw similar messages(undefined) on Tru64Unix/OSF1 when compiler was not set to C99 mode. Try "gcc -std=c99". Maybe that helps. -- Martin Mokrejs , PGP5.0i key is at http://www.natur.cuni.cz/~mmokrejs MIPS / Institute for Bioinformatics GSF - National Research Center for Environment and Health Ingolstaedter Landstrasse 1, D-85764 Neuherberg, Germany tel.: +49-89-3187 3683 , fax:?+49-89-3187 3585 From andreas.kuntzagk at mdc-berlin.de Mon Jun 23 10:02:44 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Mon Jun 23 05:02:45 2003 Subject: [BioPython] Some proposed code-cleanup In-Reply-To: <3A3CFC0C-A397-11D7-8E49-000A956845CE@jeffchang.com> References: <3A3CFC0C-A397-11D7-8E49-000A956845CE@jeffchang.com> Message-ID: <1056358738.22901.48.camel@sulawesi> Hi, > I don't understand the subtle differences with UserDict with the dict > type. I think, UserDict, UserList, UserString was introduced, because before python2.2. you could not directly inherit from the builtin types. This was changed and the documentation for this modules read to me like they will be deprecated and can be exchanged for the builtin type (now classes). > However, it does cause some problems. For example, if you apply > the patches to SubsMat/__init__.py and FreqTable.py, the regression > tests fail! I don't think we should accept these fixes until we know > that they won't break current code. I'm sorry. I tried the regression tests and all seemed fine. What I didn't notice was, the tests used my already installed biopython and not the code from the build-directory. Grr, why do I keep tripping over this errors? Shouldn't the "python setup.py test" use the directory it is positioned in? If it is required to set PYTHONPATH before test, it should be mentioned in the README. I will look into the problems now to see if I could find out. Andreas From thamelry at vub.ac.be Mon Jun 23 13:07:25 2003 From: thamelry at vub.ac.be (Thomas Hamelryck) Date: Mon Jun 23 06:46:24 2003 Subject: [BioPython] Voting Ballot for new logo In-Reply-To: <1056159105.3ef3b581147f5@webmail.uchicago.edu> References: <1056159105.3ef3b581147f5@webmail.uchicago.edu> Message-ID: <200306231207.25768.thamelry@vub.ac.be> On Saturday 21 June 2003 03:31 am, pan@uchicago.edu wrote: > Hi Jeff, > > I thought Henrik has changed his logo to right-handed ... :( > > In that case, I would still vote mine as the #1. If he got the > helix changed to right-handed, then pls switch his and mine. FYI: the handedness of the snake-helix will be adjusted this week (I just had a meeting with Henrik). I am now also in the possession of a heavy block of crystal in which our biopython logo-proposal is burned in 3D with some kind of laser technique. :-) I'll post a picture of it one of these days. -Thomas From andreas.kuntzagk at mdc-berlin.de Mon Jun 23 15:41:53 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Mon Jun 23 11:09:31 2003 Subject: [BioPython] getting rid of UserDict part two ... Message-ID: <1056379087.22901.64.camel@sulawesi> or "cleanup of the cleanup" Now that the regression tests ran my real code, I could see the problems and fix them. The tests run fine now and I hope this time everything is ok. Problems were, when people used the UserDict.data instead of using the Mapping - interface. Also I updated the test_SProt output to work whith update for parsing the Feature-ID. Maybe I can convince this time to get rid of UserDict. I think, the code looks cleaner this way and probably is also (a little bit) faster, because throwing out a m unnecessary wrapper. Andreas -------------- next part -------------- Index: Bio/Index.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Index.py,v retrieving revision 1.5 diff -r1.5 Index.py 22d21 < import UserDict 24c23 < class _ShelveIndex(UserDict.UserDict): --- > class _ShelveIndex(dict): 37c36 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) 68c67 < class _InMemoryIndex(UserDict.UserDict): --- > class _InMemoryIndex(dict): 82c81 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) 106c105 < UserDict.UserDict.update(self, dict) --- > dict.update(self, dict) 109c108 < UserDict.UserDict.__setitem__(self, key, value) --- > dict.__setitem__(self, key, value) 112c111 < UserDict.UserDict.__delitem__(self, key) --- > dict.__delitem__(self, key) 115c114 < UserDict.UserDict.clear(self) --- > dict.clear(self) Index: Bio/PropertyManager.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/PropertyManager.py,v retrieving revision 1.2 diff -r1.2 PropertyManager.py 14d13 < import UserDict 18c17 < class CreateDict(UserDict.UserDict): --- > class CreateDict(dict): 20,27c19,20 < try: < return self.data[key] < except KeyError: < pass < x = {} < self.data[key] = x < return x < --- > return self.setdefault(key,{}) > 45c38 < return self.class_property.data[klass][property] --- > return self.class_property[klass][property] 51c44 < return self.class_property_resolver.data[klass][property]( --- > return self.class_property_resolver[klass][property]( 71c64 < return self.class_property.data[base][property] --- > return self.class_property[base][property] 75c68 < return self.class_property_resolver.data[base][property]( --- > return self.class_property_resolver[base][property]( Index: Bio/Seq.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Seq.py,v retrieving revision 1.6 diff -r1.6 Seq.py 1d0 < import UserList Index: Bio/Align/AlignInfo.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Align/AlignInfo.py,v retrieving revision 1.9 diff -r1.9 AlignInfo.py 537c537 < key not in e_freq_table.data.keys()): --- > key not in e_freq_table): 540c540 < % (e_freq_table.data.keys(), obs_freq.keys() - --- > % (e_freq_table.keys(), obs_freq.keys() - 552c552 < inner_log = obs_freq[letter] / e_freq_table.data[letter] --- > inner_log = obs_freq[letter] / e_freq_table[letter] Index: Bio/CDD/Record.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/CDD/Record.py,v retrieving revision 1.1 diff -r1.1 Record.py 29,30d28 < from UserDict import UserDict < 39c37 < class Record( UserDict ): --- > class Record( dict ): 59,61c57,59 < UserDict.__init__( self ) < self.data[ 'references' ] = [] < self.data[ 'alignment_lookup' ] = {} --- > dict.__init__( self ) > self[ 'references' ] = [] > self[ 'alignment_lookup' ] = {} 66c64 < keys = self.data.keys() --- > keys = self.keys() 70c68 < contents = self.data[ key ] --- > contents = self[ key ] Index: Bio/Crystal/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Crystal/__init__.py,v retrieving revision 1.4 diff -r1.4 __init__.py 13,14d12 < import UserList < import UserDict Index: Bio/EUtils/POM.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/EUtils/POM.py,v retrieving revision 1.1 diff -r1.1 POM.py 13,14d12 < from UserList import UserList < from UserString import UserString 38c36 < class IndentedText(UserString): --- > class IndentedText(str): 863c861 < class AttributeList(UserList): --- > class AttributeList(list): Index: Bio/FSSP/FSSPTools.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/FSSP/FSSPTools.py,v retrieving revision 1.4 diff -r1.4 FSSPTools.py 1d0 < import UserDict 14c13 < class FSSPMultAlign(UserDict.UserDict): --- > class FSSPMultAlign(dict): Index: Bio/FSSP/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/FSSP/__init__.py,v retrieving revision 1.3 diff -r1.3 __init__.py 5d4 < import UserDict 153c152 < class FSSPAlignDict(UserDict.UserDict): --- > class FSSPAlignDict(dict): 204c203 < class FSSPSumDict(UserDict.UserDict): --- > class FSSPSumDict(dict): Index: Bio/InterPro/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/InterPro/__init__.py,v retrieving revision 1.4 diff -r1.4 __init__.py 35d34 < import UserDict 37,38c36 < < class Record( UserDict.UserDict ): --- > class Record( dict ): Index: Bio/LocusLink/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/LocusLink/__init__.py,v retrieving revision 1.1 diff -r1.1 __init__.py 3d2 < import UserDict 21c20 < class Record( UserDict.UserDict): --- > class Record( dict): 24c23 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 48c47 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): Index: Bio/LocusLink/web_parse.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/LocusLink/web_parse.py,v retrieving revision 1.2 diff -r1.2 web_parse.py 6d5 < import UserDict 160c159 < class Record( UserDict.UserDict): --- > class Record(dict): 163c162 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 194c193 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): Index: Bio/MetaTool/Record.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/MetaTool/Record.py,v retrieving revision 1.3 diff -r1.3 Record.py 8d7 < import UserDict 13c12 < class Metabolite( UserDict.UserDict ): --- > class Metabolite( dict ): 23c22 < class MetaboliteRole( UserDict.UserDict ): --- > class MetaboliteRole( dict ): Index: Bio/Ndb/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Ndb/__init__.py,v retrieving revision 1.2 diff -r1.2 __init__.py 40d39 < import UserDict 43c42 < class Record( UserDict.UserDict ): --- > class Record( dict ): 46,56c45,54 < self.data = {} < self.data[ 'Id' ] = '' < self.data[ 'Features' ] = '' < self.data[ 'Name' ] = '' < self.data[ 'Sequence' ] = Crystal( {} ) < self.data[ 'Citation' ] = Reference() < self.data[ 'Space Group' ] = '' < self.data[ 'Cell Constants' ] = {} < self.data[ 'Crystallization Conditions' ] = [] < self.data[ 'Refinement' ] = '' < self.data[ 'Coordinates' ] = '' --- > self[ 'Id' ] = '' > self[ 'Features' ] = '' > self[ 'Name' ] = '' > self[ 'Sequence' ] = Crystal( {} ) > self[ 'Citation' ] = Reference() > self[ 'Space Group' ] = '' > self[ 'Cell Constants' ] = {} > self[ 'Crystallization Conditions' ] = [] > self[ 'Refinement' ] = '' > self[ 'Coordinates' ] = '' 75c73 < elif( isinstance( val, UserDict.UserDict ) ): --- > elif( isinstance( val, dict ) ): Index: Bio/Rebase/Rebase.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/Rebase/Rebase.py,v retrieving revision 1.8 diff -r1.8 Rebase.py 35d34 < import UserDict 132c131 < class EnzymeDict( UserDict.UserDict ): --- > class EnzymeDict( dict ): 144c143 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): 181c180 < self.enzyme_dict[ 'number_of_sites' ] = UserDict.UserDict() --- > self.enzyme_dict[ 'number_of_sites' ] = dict() Index: Bio/SCOP/FileIndex.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SCOP/FileIndex.py,v retrieving revision 1.1 diff -r1.1 FileIndex.py 6,7d5 < from UserDict import UserDict < 12c10 < class FileIndex(UserDict) : --- > class FileIndex(dict) : 31c29 < UserDict.__init__(self) --- > dict.__init__(self) Index: Bio/SubsMat/FreqTable.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SubsMat/FreqTable.py,v retrieving revision 1.1 diff -r1.1 FreqTable.py 1d0 < import UserDict 51c50 < class FreqTable(UserDict.UserDict): --- > class FreqTable(dict): 54d52 < self.data = {} 76c74 < self.data = in_dict --- > self.update(in_dict) Index: Bio/SubsMat/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SubsMat/__init__.py,v retrieving revision 1.7 diff -r1.7 __init__.py 11d10 < import UserDict 133c132 < class SeqMat(UserDict.UserDict): --- > class SeqMat(dict): 173c172 < assert (type(data) == type({}) or isinstance(data,UserDict.UserDict) or --- > assert (type(data) == type({}) or isinstance(data,dict) or 177,178d175 < if type(data) == type({}): < self.data = copy.copy(data) 180c177 < self.data = copy.copy(data.data) --- > self.update(data) 281,282c278,279 < full_mat = copy.copy(self.data) < for i in full_mat.keys(): --- > full_mat = copy.copy(self) > for i in self: Index: Bio/SwissProt/SProt.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/SwissProt/SProt.py,v retrieving revision 1.24 diff -r1.24 SProt.py 36d35 < import string 166c165 < data = string.join(lines, '') --- > data = ''.join(lines) 506c505 < cols = string.split(line) --- > cols = line.split() 523c522 < cols = string.split(self._chomp(string.rstrip(line[5:])), ';') --- > cols= self._chomp(line[5:].rstrip()).split(';') 525c524 < self.data.accessions.append(string.lstrip(ac)) --- > self.data.accessions.append(ac.lstrip()) 529,530c528,529 < if string.find(uprline, 'CREATED') >= 0: < cols = string.split(line) --- > cols = line.split() > if uprline.find('CREATED') >= 0: 537,538c536 < elif string.find(uprline, 'LAST SEQUENCE UPDATE') >= 0: < cols = string.split(line) --- > elif uprline.find('LAST SEQUENCE UPDATE') >= 0: 545,546c543 < elif string.find(uprline, 'LAST ANNOTATION UPDATE') >= 0: < cols = string.split(line) --- > elif uprline.find( 'LAST ANNOTATION UPDATE') >= 0: 570,571c567,568 < line = self._chomp(string.rstrip(line[5:])) < cols = string.split(line, ';') --- > line = self._chomp(line[5:].rstrip()) > cols = line.split(';') 573c570 < self.data.organism_classification.append(string.lstrip(col)) --- > self.data.organism_classification.append(col.lstrip()) 587,588c584,585 < line = self._chomp(string.rstrip(line[5:])) < index = string.find(line, '=') --- > line = self._chomp(line[5:].rstrip()) > index = line.find('=') 592c589 < ids = string.split(line[index+1:], ',') --- > ids = line[index+1:].split(',') 594,595c591,592 < ids = string.split(line, ',') < self.data.taxonomy_id.extend(map(string.strip, ids)) --- > ids = line.split(',') > self.data.taxonomy_id.extend([id.strip for id in ids]) 598c595 < rn = string.rstrip(line[5:]) --- > rn = line[5:].rstrip() 606c603 < self.data.references[-1].positions.append(string.rstrip(line[5:])) --- > self.data.references[-1].positions.append(line[5:].rstrip()) 610c607 < cols = string.split(string.rstrip(line[5:]), ';') --- > cols = line[5:].rstrip().split( ';') 616c613 < index = string.find(col, '=') --- > index = col.find('=') 634c631 < ref.comments.append((string.lstrip(token), text)) --- > ref.comments.append((token.lstrip(), text)) 646c643 < ind = string.find(line, '[NCBI, ExPASy, Israel, Japan]') --- > ind = line.find('[NCBI, ExPASy, Israel, Japan]') 656,657c653,654 < if string.find(line, "=") != -1: < cols = string.split(line) --- > if line.find( "=") != -1: > cols = line.split() 661c658 < id_cols = string.split(info_col, "=") --- > id_cols = info_col.split("=") 670c667 < cols = string.split(line) --- > cols = line.split() 719c716 < i = string.find(line, '[') --- > i = line.find('[') 722,724c719,720 < cols = string.split(self._chomp(string.rstrip(line)), ';') < for i in range(len(cols)): < cols[i] = string.lstrip(cols[i]) --- > cols = self._chomp(line.rstrip()).split(';') > cols = [col.lstrip() for col in cols] 728,731c724,726 < cols = string.split(self._chomp(string.rstrip(line[5:])), ';') < for col in cols: < self.data.keywords.append(string.lstrip(col)) < --- > cols = self._chomp(line[5:].rstrip()).split(';') > self.data.keywords.extend([c.lstrip for c in cols]) > 734c729 < name = string.rstrip(line[0:8]) --- > name = line[0:8].rstrip() 738c733 < from_res = string.lstrip(line[9:15]) --- > from_res = line[9:15].lstrip() 742,744c737,743 < to_res = string.lstrip(line[16:22]) < description = string.rstrip(line[29:70]) < --- > to_res = line[16:22].lstrip() > description = line[29:70].rstrip() > #if there is a feature_id (FTId), store it away > if line[29:35]==r"/FTId=": > ft_id = line[35:70].rstrip()[:-1] > else: > ft_id ="" 747c746 < name, from_res, to_res, old_description = self.data.features[-1] --- > name, from_res, to_res, old_description,old_ft_id = self.data.features[-1] 754c753 < self.data.features.append((name, from_res, to_res, description)) --- > self.data.features.append((name, from_res, to_res, description,ft_id)) 764c763 < descr_cols = string.split(description, " -> ") --- > descr_cols = description.split(" -> ") 771c770 < extra_info_pos = string.find(second_seq, " (") --- > extra_info_pos = second_seq.find(" (") 777,778c776,777 < first_seq = string.replace(first_seq, " ", "") < second_seq = string.replace(second_seq, " ", "") --- > first_seq = first_seq.replace(" ", "") > second_seq = second_seq.replace(" ", "") 786c785 < cols = string.split(line) --- > cols = line.split() 792c791 < seq = string.rstrip(string.replace(line, " ", "")) --- > seq = line.replace(" ", "").rstrip() 797a797,798 > # from Python 2.2.2 could be replaced whith word.rstrip(".,;") > # if there is always only one puctuation 814c815 < setattr(rec, m, string.rstrip(attr)) --- > setattr(rec, m, attr.rstrip()) 823c824 < setattr(ref, m, string.rstrip(attr)) --- > setattr(ref, m, attr.rstrip()) 849c850 < self.data.description = string.rstrip(self.data.description) --- > self.data.description = self.data.description.rstrip() 852c853 < cols = string.split(line) --- > cols = line.split() 856c857 < ids = string.split(string.rstrip(line[5:]), ';') --- > ids = line[5:].rstrip().split(';') 861c862 < string.strip(line[5:]) + "\n" --- > line[5:].strip() + "\n" 864c865 < seq = Seq.Seq(string.rstrip(string.replace(line, " ", "")), --- > seq = Seq.Seq(line.replace(" ", "").rstrip(), Index: Bio/UniGene/__init__.py =================================================================== RCS file: /home/repository/biopython/biopython/Bio/UniGene/__init__.py,v retrieving revision 1.5 diff -r1.5 __init__.py 5d4 < import UserDict 15c14 < class Record( UserDict.UserDict): --- > class Record( dict): 18c17 < UserDict.UserDict.__init__( self ) --- > dict.__init__( self ) 41c40 < elif( isinstance( item, UserDict.UserDict ) ): --- > elif( isinstance( item, dict ) ): 150c149 < self.queue[ key ] = UserDict.UserDict() --- > self.queue[ key ] = dict() 152c151 < self.queue[ key ] = UserDict.UserDict() --- > self.queue[ key ] = dict() 220c219 < print record \ No newline at end of file --- > print record Index: Martel/LAX.py =================================================================== RCS file: /home/repository/biopython/biopython/Martel/LAX.py,v retrieving revision 1.2 diff -r1.2 LAX.py 81c81 < import string, UserDict --- > import string 90c90 < class LAX(handler.ContentHandler, UserDict.UserDict): --- > class LAX(handler.ContentHandler, dict): 93c93 < UserDict.UserDict.__init__(self) --- > dict.__init__(self) Index: Martel/Parser.py =================================================================== RCS file: /home/repository/biopython/biopython/Martel/Parser.py,v retrieving revision 1.8 diff -r1.8 Parser.py 132,133c132,137 < for item in taglist: < tag, l, r, subtags = item --- > # bind functions to local names for a slight speedup > characters = cont_handler.characters > startElement = cont_handler.startElement > endElement = cont_handler.endElement > > for tag, l, r, subtags in taglist: 135a140 > assert begin <= l, "begin = %d and l = %d" % (begin, l) 137,148c142 < cont_handler.characters(s[begin:l]) < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) < < if tag[0] == ">": < if tag == ">ignore": < # Named groups doesn't create ">ignore" tags, so pass them on < # to the ContentHandler. Unnamed groups still need a name so < # mxTextTools can create subtags for them. I named them < # ">ignore" - don't create events for them. < pass --- > characters(s[begin:l]) 150c144,146 < elif tag[:2] == ">G": --- > if tag.startswith(">"): > if not tag == ">ignore": > assert tag.startswith(">G"),"Unknown special tag %s" % repr(tag) 153,157c149,150 < cont_handler.startElement(realtag, attrs) < < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) < else: --- > startElement(realtag, attrs) > 159c152 < cont_handler.startElement(tag, _attribute_list) --- > startElement(tag, _attribute_list) 165,166c158 < cont_handler.characters(s[l:r]) < begin = r --- > characters(s[l:r]) 168,175c160,162 < if tag[0] == ">": < if tag == ">ignore": < pass < elif tag[:2] == ">G": < realtag, attrs = attrlookup[tag] < cont_handler.endElement(realtag) < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) --- > if not tag == ">ignore": > realtag, attrs = attrlookup[tag] > endElement(realtag) 177c164 < cont_handler.endElement(tag) --- > endElement(tag) 181,182c168,169 < if begin < end: < cont_handler.characters(s[begin:end]) --- > if r < end: > characters(s[r:end]) 202,203c189 < for item in taglist: < tag, l, r, subtags = item --- > for tag, l, r, subtags in taglist: 206,211c192,194 < if begin < l: < if save_stack: < cont_handler._save_text += s[begin:l] < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) --- > assert begin <= l, "begin = %d and l = %d" % (begin, l) > if begin < l and save_stack: > cont_handler._save_text += s[begin:l] 245d227 < begin = r 263,264c245,246 < if begin < end and save_stack: < cont_handler._save_text += s[begin:end] --- > if r < end and save_stack: > cont_handler._save_text += s[r:end] 543,546c525,530 < self.make_header_reader, self.header_reader_args, self.header_tagtable, < self.make_reader, self.reader_args, self.record_tagtable, < self.make_footer_reader, self.footer_reader_args, self.footer_tagtable, < (self.want_groupref_names, self.debug_level, self.attrlookup)) --- > self.make_header_reader, self.header_reader_args, > self.header_tagtable,self.make_reader, > self.reader_args, self.record_tagtable, > self.make_footer_reader, self.footer_reader_args, > self.footer_tagtable, > (self.want_groupref_names, self.debug_level, self.attrlookup)) Index: Tests/output/test_SProt =================================================================== RCS file: /home/repository/biopython/biopython/Tests/output/test_SProt,v retrieving revision 1.3 diff -r1.3 test_SProt 9,14c9,14 < ('TRANSMEM', 20, 40, 'POTENTIAL.') < ('TRANSMEM', 197, 217, 'POTENTIAL.') < ('TRANSMEM', 222, 242, 'POTENTIAL.') < ('TRANSMEM', 277, 297, 'POTENTIAL.') < ('TRANSMEM', 313, 333, 'POTENTIAL.') < ('VARSPLIC', 344, 348, 'DLDFE -> FLIK (IN FORM 2).') --- > ('TRANSMEM', 20, 40, 'POTENTIAL.', '') > ('TRANSMEM', 197, 217, 'POTENTIAL.', '') > ('TRANSMEM', 222, 242, 'POTENTIAL.', '') > ('TRANSMEM', 277, 297, 'POTENTIAL.', '') > ('TRANSMEM', 313, 333, 'POTENTIAL.', '') > ('VARSPLIC', 344, 348, 'DLDFE -> FLIK (IN FORM 2).', '') 27,28c27,28 < ('DOMAIN', 13, 82, 'DNAJ-LIKE.') < ('DOMAIN', 118, 128, 'POLY-CYS.') --- > ('DOMAIN', 13, 82, 'DNAJ-LIKE.', '') > ('DOMAIN', 118, 128, 'POLY-CYS.', '') 48,52c48,52 < ('MOD_RES', 1, 1, 'ACETYLATION.') < ('CONFLICT', 73, 73, 'K -> T (IN REF. 8).') < ('CONFLICT', 120, 120, 'F -> S (IN REF. 8).') < ('CONFLICT', 123, 123, 'K -> Y (IN REF. 8).') < ('CONFLICT', 129, 129, 'H -> Y (IN REF. 13).') --- > ('MOD_RES', 1, 1, 'ACETYLATION.', '') > ('CONFLICT', 73, 73, 'K -> T (IN REF. 8).', '') > ('CONFLICT', 120, 120, 'F -> S (IN REF. 8).', '') > ('CONFLICT', 123, 123, 'K -> Y (IN REF. 8).', '') > ('CONFLICT', 129, 129, 'H -> Y (IN REF. 13).', '') 113,124c113,124 < ('INIT_MET', 0, 0, '') < ('METAL', 44, 44, 'IRON-SULFUR (2FE-2S) (POTENTIAL).') < ('METAL', 46, 46, 'IRON-SULFUR (2FE-2S) (POTENTIAL).') < ('METAL', 63, 63, 'IRON-SULFUR (2FE-2S) (POTENTIAL).') < ('METAL', 66, 66, 'IRON-SULFUR (2FE-2S) (POTENTIAL).') < ('VARIANT', 2, 2, 'V -> E (IN STRAIN G7).') < ('VARIANT', 14, 14, 'L -> P (IN STRAIN G7).') < ('VARIANT', 48, 48, 'S -> A (IN STRAIN G7).') < ('VARIANT', 76, 76, 'K -> R (IN STRAIN G7).') < ('VARIANT', 84, 84, 'Q -> E (IN STRAIN G7).') < ('VARIANT', 90, 90, 'P -> A (IN STRAIN G7).') < ('VARIANT', 103, 103, 'S -> GEF (IN STRAIN G7).') --- > ('INIT_MET', 0, 0, '', '') > ('METAL', 44, 44, 'IRON-SULFUR (2FE-2S) (POTENTIAL).', '') > ('METAL', 46, 46, 'IRON-SULFUR (2FE-2S) (POTENTIAL).', '') > ('METAL', 63, 63, 'IRON-SULFUR (2FE-2S) (POTENTIAL).', '') > ('METAL', 66, 66, 'IRON-SULFUR (2FE-2S) (POTENTIAL).', '') > ('VARIANT', 2, 2, 'V -> E (IN STRAIN G7).', '') > ('VARIANT', 14, 14, 'L -> P (IN STRAIN G7).', '') > ('VARIANT', 48, 48, 'S -> A (IN STRAIN G7).', '') > ('VARIANT', 76, 76, 'K -> R (IN STRAIN G7).', '') > ('VARIANT', 84, 84, 'Q -> E (IN STRAIN G7).', '') > ('VARIANT', 90, 90, 'P -> A (IN STRAIN G7).', '') > ('VARIANT', 103, 103, 'S -> GEF (IN STRAIN G7).', '') 180,185c180,185 < ('TRANSMEM', 8, 28, 'POTENTIAL.') < ('TRANSMEM', 82, 102, 'POTENTIAL.') < ('TRANSMEM', 116, 136, 'POTENTIAL.') < ('TRANSMEM', 164, 184, 'POTENTIAL.') < ('CONFLICT', 62, 62, 'I -> V (IN REF. 2).') < ('CONFLICT', 135, 135, 'V -> A (IN REF. 2).') --- > ('TRANSMEM', 8, 28, 'POTENTIAL.', '') > ('TRANSMEM', 82, 102, 'POTENTIAL.', '') > ('TRANSMEM', 116, 136, 'POTENTIAL.', '') > ('TRANSMEM', 164, 184, 'POTENTIAL.', '') > ('CONFLICT', 62, 62, 'I -> V (IN REF. 2).', '') > ('CONFLICT', 135, 135, 'V -> A (IN REF. 2).', '') 203,273c203,273 < ('SIGNAL', 1, 24, '') < ('CHAIN', 25, 365, 'HLA CLASS I HISTOCOMPATIBILITY ANTIGEN, A-2 ALPHA CHAIN.') < ('DOMAIN', 25, 114, 'EXTRACELLULAR ALPHA-1.') < ('DOMAIN', 115, 206, 'EXTRACELLULAR ALPHA-2.') < ('DOMAIN', 207, 298, 'EXTRACELLULAR ALPHA-3.') < ('DOMAIN', 299, 308, 'CONNECTING PEPTIDE.') < ('TRANSMEM', 309, 332, '') < ('DOMAIN', 333, 365, 'CYTOPLASMIC TAIL.') < ('CARBOHYD', 110, 110, '') < ('DISULFID', 125, 188, '') < ('DISULFID', 227, 283, '') < ('STRAND', 27, 36, '') < ('STRAND', 45, 52, '') < ('TURN', 53, 54, '') < ('STRAND', 55, 61, '') < ('TURN', 62, 63, '') < ('STRAND', 70, 71, '') < ('HELIX', 74, 76, '') < ('TURN', 77, 78, '') < ('HELIX', 81, 108, '') < ('TURN', 109, 110, '') < ('TURN', 113, 114, '') < ('STRAND', 118, 127, '') < ('TURN', 129, 130, '') < ('STRAND', 133, 142, '') < ('TURN', 143, 144, '') < ('STRAND', 145, 150, '') < ('TURN', 152, 153, '') < ('STRAND', 157, 159, '') < ('TURN', 163, 163, '') < ('HELIX', 164, 173, '') < ('TURN', 174, 175, '') < ('HELIX', 176, 185, '') < ('TURN', 186, 186, '') < ('HELIX', 187, 198, '') < ('TURN', 199, 199, '') < ('HELIX', 200, 203, '') < ('TURN', 204, 204, '') < ('STRAND', 207, 207, '') < ('STRAND', 210, 219, '') < ('TURN', 220, 221, '') < ('STRAND', 222, 233, '') < ('STRAND', 238, 243, '') < ('TURN', 244, 245, '') < ('STRAND', 246, 247, '') < ('HELIX', 249, 251, '') < ('STRAND', 253, 254, '') < ('STRAND', 258, 259, '') < ('STRAND', 265, 274, '') < ('TURN', 275, 276, '') < ('HELIX', 278, 280, '') < ('STRAND', 281, 286, '') < ('TURN', 288, 289, '') < ('STRAND', 294, 297, '') < ('VARIANT', 33, 33, 'F -> Y (IN A*0205, A*0206, A*0208, A*0210 AND A*0221). /FTId=VAR_004334.') < ('VARIANT', 54, 54, 'D -> N (IN A*0221). /FTId=VAR_004335.') < ('VARIANT', 67, 67, 'Q -> R (IN A*0202, A*0205, AND A*0208). /FTId=VAR_004336.') < ('VARIANT', 90, 90, 'K -> N (IN A*0208 AND A*0220). /FTId=VAR_004337.') < ('VARIANT', 97, 98, 'TH -> ID (IN A*0211). /FTId=VAR_004338.') < ('VARIANT', 119, 119, 'V -> L (IN A*0202, A*0205, A*0208 AND A*0217). /FTId=VAR_004339.') < ('VARIANT', 121, 121, 'R -> M (IN A*0204 AND A*0217). /FTId=VAR_004340.') < ('VARIANT', 123, 123, 'Y -> C (IN A*0207 AND A*0218). /FTId=VAR_004341.') < ('VARIANT', 123, 123, 'Y -> F (IN A*0210 AND A*0217). /FTId=VAR_004342.') < ('VARIANT', 131, 131, 'W -> G (IN A*0210). /FTId=VAR_004343.') < ('VARIANT', 162, 162, 'M -> K (IN A*0218). /FTId=VAR_004344.') < ('VARIANT', 173, 173, 'A -> T (IN A*0203). /FTId=VAR_004345.') < ('VARIANT', 176, 176, 'V -> E (IN A*0203 AND A*0213). /FTId=VAR_004346.') < ('VARIANT', 180, 180, 'L -> W (IN A*0202, A*0203, A*0205 AND A*0208). /FTId=VAR_004347.') < ('VARIANT', 180, 180, 'L -> Q (IN A*0212 AND A*0213). /FTId=VAR_004348.') < ('VARIANT', 187, 187, 'T -> E (IN A*0216). /FTId=VAR_004349.') < ('VARIANT', 260, 260, 'A -> E (IN A*0209). /FTId=VAR_004350.') --- > ('SIGNAL', 1, 24, '', '') > ('CHAIN', 25, 365, 'HLA CLASS I HISTOCOMPATIBILITY ANTIGEN, A-2 ALPHA CHAIN.', '') > ('DOMAIN', 25, 114, 'EXTRACELLULAR ALPHA-1.', '') > ('DOMAIN', 115, 206, 'EXTRACELLULAR ALPHA-2.', '') > ('DOMAIN', 207, 298, 'EXTRACELLULAR ALPHA-3.', '') > ('DOMAIN', 299, 308, 'CONNECTING PEPTIDE.', '') > ('TRANSMEM', 309, 332, '', '') > ('DOMAIN', 333, 365, 'CYTOPLASMIC TAIL.', '') > ('CARBOHYD', 110, 110, '', '') > ('DISULFID', 125, 188, '', '') > ('DISULFID', 227, 283, '', '') > ('STRAND', 27, 36, '', '') > ('STRAND', 45, 52, '', '') > ('TURN', 53, 54, '', '') > ('STRAND', 55, 61, '', '') > ('TURN', 62, 63, '', '') > ('STRAND', 70, 71, '', '') > ('HELIX', 74, 76, '', '') > ('TURN', 77, 78, '', '') > ('HELIX', 81, 108, '', '') > ('TURN', 109, 110, '', '') > ('TURN', 113, 114, '', '') > ('STRAND', 118, 127, '', '') > ('TURN', 129, 130, '', '') > ('STRAND', 133, 142, '', '') > ('TURN', 143, 144, '', '') > ('STRAND', 145, 150, '', '') > ('TURN', 152, 153, '', '') > ('STRAND', 157, 159, '', '') > ('TURN', 163, 163, '', '') > ('HELIX', 164, 173, '', '') > ('TURN', 174, 175, '', '') > ('HELIX', 176, 185, '', '') > ('TURN', 186, 186, '', '') > ('HELIX', 187, 198, '', '') > ('TURN', 199, 199, '', '') > ('HELIX', 200, 203, '', '') > ('TURN', 204, 204, '', '') > ('STRAND', 207, 207, '', '') > ('STRAND', 210, 219, '', '') > ('TURN', 220, 221, '', '') > ('STRAND', 222, 233, '', '') > ('STRAND', 238, 243, '', '') > ('TURN', 244, 245, '', '') > ('STRAND', 246, 247, '', '') > ('HELIX', 249, 251, '', '') > ('STRAND', 253, 254, '', '') > ('STRAND', 258, 259, '', '') > ('STRAND', 265, 274, '', '') > ('TURN', 275, 276, '', '') > ('HELIX', 278, 280, '', '') > ('STRAND', 281, 286, '', '') > ('TURN', 288, 289, '', '') > ('STRAND', 294, 297, '', '') > ('VARIANT', 33, 33, 'F -> Y (IN A*0205, A*0206, A*0208, A*0210 AND A*0221). /FTId=VAR_004334.', 'VAR_004334') > ('VARIANT', 54, 54, 'D -> N (IN A*0221). /FTId=VAR_004335.', 'VAR_004335') > ('VARIANT', 67, 67, 'Q -> R (IN A*0202, A*0205, AND A*0208). /FTId=VAR_004336.', 'VAR_004336') > ('VARIANT', 90, 90, 'K -> N (IN A*0208 AND A*0220). /FTId=VAR_004337.', 'VAR_004337') > ('VARIANT', 97, 98, 'TH -> ID (IN A*0211). /FTId=VAR_004338.', 'VAR_004338') > ('VARIANT', 119, 119, 'V -> L (IN A*0202, A*0205, A*0208 AND A*0217). /FTId=VAR_004339.', 'VAR_004339') > ('VARIANT', 121, 121, 'R -> M (IN A*0204 AND A*0217). /FTId=VAR_004340.', 'VAR_004340') > ('VARIANT', 123, 123, 'Y -> C (IN A*0207 AND A*0218). /FTId=VAR_004341.', 'VAR_004341') > ('VARIANT', 123, 123, 'Y -> F (IN A*0210 AND A*0217). /FTId=VAR_004342.', 'VAR_004342') > ('VARIANT', 131, 131, 'W -> G (IN A*0210). /FTId=VAR_004343.', 'VAR_004343') > ('VARIANT', 162, 162, 'M -> K (IN A*0218). /FTId=VAR_004344.', 'VAR_004344') > ('VARIANT', 173, 173, 'A -> T (IN A*0203). /FTId=VAR_004345.', 'VAR_004345') > ('VARIANT', 176, 176, 'V -> E (IN A*0203 AND A*0213). /FTId=VAR_004346.', 'VAR_004346') > ('VARIANT', 180, 180, 'L -> W (IN A*0202, A*0203, A*0205 AND A*0208). /FTId=VAR_004347.', 'VAR_004347') > ('VARIANT', 180, 180, 'L -> Q (IN A*0212 AND A*0213). /FTId=VAR_004348.', 'VAR_004348') > ('VARIANT', 187, 187, 'T -> E (IN A*0216). /FTId=VAR_004349.', 'VAR_004349') > ('VARIANT', 260, 260, 'A -> E (IN A*0209). /FTId=VAR_004350.', 'VAR_004350') 395c395 < ('ACT_SITE', 165, 165, 'BY SIMILARITY.') --- > ('ACT_SITE', 165, 165, 'BY SIMILARITY.', '') 408,430c408,430 < ('DOMAIN', 1, 19, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 20, 40, '1 (POTENTIAL).') < ('DOMAIN', 41, 58, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 59, 79, '2 (POTENTIAL).') < ('DOMAIN', 80, 93, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 94, 116, '3 (POTENTIAL).') < ('DOMAIN', 117, 137, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 138, 158, '4 (POTENTIAL).') < ('DOMAIN', 159, 192, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 193, 213, '5 (POTENTIAL).') < ('DOMAIN', 214, 260, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 261, 281, '6 (POTENTIAL).') < ('DOMAIN', 282, 294, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 295, 315, '7 (POTENTIAL).') < ('DOMAIN', 316, 388, 'CYTOPLASMIC (POTENTIAL).') < ('CARBOHYD', 7, 7, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('DISULFID', 93, 184, 'BY SIMILARITY.') < ('LIPID', 329, 329, 'PALMITATE (BY SIMILARITY).') < ('VARSPLIC', 169, 169, 'L -> LERSLNQGLGQDFHA (IN ISOFORM 5- HT4(F)).') < ('VARSPLIC', 359, 388, 'RDAVECGGQWESQCHPPATSPLVAAQPSDT -> SGCSPVSSFLLLFCNRPVPV (IN ISOFORM 5-HT4(E)).') < ('VARSPLIC', 359, 388, 'RDAVECGGQWESQCHPPATSPLVAAQPSDT -> SSGTETDRRNFGIRKRRLTKPS (IN ISOFORM 5-HT4(D)).') < ('VARSPLIC', 360, 388, 'DAVECGGQWESQCHPPATSPLVAAQPSDT -> F (IN ISOFORM 5-HT4(C)).') < ('VARSPLIC', 360, 388, 'DAVECGGQWESQCHPPATSPLVAAQPSDT -> YTVLHRGHHQELEKLPIHNDPESLESCF (IN ISOFORM 5- HT4(A)).') --- > ('DOMAIN', 1, 19, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 20, 40, '1 (POTENTIAL).', '') > ('DOMAIN', 41, 58, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 59, 79, '2 (POTENTIAL).', '') > ('DOMAIN', 80, 93, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 94, 116, '3 (POTENTIAL).', '') > ('DOMAIN', 117, 137, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 138, 158, '4 (POTENTIAL).', '') > ('DOMAIN', 159, 192, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 193, 213, '5 (POTENTIAL).', '') > ('DOMAIN', 214, 260, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 261, 281, '6 (POTENTIAL).', '') > ('DOMAIN', 282, 294, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 295, 315, '7 (POTENTIAL).', '') > ('DOMAIN', 316, 388, 'CYTOPLASMIC (POTENTIAL).', '') > ('CARBOHYD', 7, 7, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('DISULFID', 93, 184, 'BY SIMILARITY.', '') > ('LIPID', 329, 329, 'PALMITATE (BY SIMILARITY).', '') > ('VARSPLIC', 169, 169, 'L -> LERSLNQGLGQDFHA (IN ISOFORM 5- HT4(F)).', '') > ('VARSPLIC', 359, 388, 'RDAVECGGQWESQCHPPATSPLVAAQPSDT -> SGCSPVSSFLLLFCNRPVPV (IN ISOFORM 5-HT4(E)).', '') > ('VARSPLIC', 359, 388, 'RDAVECGGQWESQCHPPATSPLVAAQPSDT -> SSGTETDRRNFGIRKRRLTKPS (IN ISOFORM 5-HT4(D)).', '') > ('VARSPLIC', 360, 388, 'DAVECGGQWESQCHPPATSPLVAAQPSDT -> F (IN ISOFORM 5-HT4(C)).', '') > ('VARSPLIC', 360, 388, 'DAVECGGQWESQCHPPATSPLVAAQPSDT -> YTVLHRGHHQELEKLPIHNDPESLESCF (IN ISOFORM 5- HT4(A)).', '') 465,516c465,516 < ('SIGNAL', 1, 26, '') < ('CHAIN', 27, 700, 'LUTROPIN-CHORIOGONADOTROPIC HORMONE RECEPTOR.') < ('DOMAIN', 27, 362, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 363, 390, '1 (POTENTIAL).') < ('DOMAIN', 391, 399, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 400, 422, '2 (POTENTIAL).') < ('DOMAIN', 423, 443, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 444, 466, '3 (POTENTIAL).') < ('DOMAIN', 467, 486, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 487, 509, '4 (POTENTIAL).') < ('DOMAIN', 510, 529, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 530, 551, '5 (POTENTIAL).') < ('DOMAIN', 552, 574, 'CYTOPLASMIC (POTENTIAL).') < ('TRANSMEM', 575, 598, '6 (POTENTIAL).') < ('DOMAIN', 599, 609, 'EXTRACELLULAR (POTENTIAL).') < ('TRANSMEM', 610, 631, '7 (POTENTIAL).') < ('DOMAIN', 632, 700, 'CYTOPLASMIC (POTENTIAL).') < ('REPEAT', 52, 75, 'LRR 1.') < ('REPEAT', 126, 150, 'LRR 2.') < ('REPEAT', 152, 175, 'LRR 3.') < ('REPEAT', 176, 200, 'LRR 4.') < ('REPEAT', 202, 224, 'LRR 5.') < ('REPEAT', 225, 248, 'LRR 6.') < ('REPEAT', 250, 271, 'LRR 7.') < ('DISULFID', 443, 518, 'BY SIMILARITY.') < ('CARBOHYD', 103, 103, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('CARBOHYD', 178, 178, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('CARBOHYD', 199, 199, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('CARBOHYD', 295, 295, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('CARBOHYD', 303, 303, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('CARBOHYD', 317, 317, 'N-LINKED (GLCNAC...) (POTENTIAL).') < ('VARSPLIC', 83, 132, 'MISSING (IN ISOFORM 1950).') < ('VARSPLIC', 133, 157, 'MISSING (IN ISOFORM 1759).') < ('VARSPLIC', 184, 700, 'MISSING (IN ISOFORM C2).') < ('VARSPLIC', 232, 251, 'DISSTKLQALPSHGLESIQT -> PCRATGWSPFRRSSPCLPTH (IN ISOFORM 2075).') < ('VARSPLIC', 232, 293, 'MISSING (IN ISOFORM E/A2, ISOFORM EB AND ISOFORM B1).') < ('VARSPLIC', 252, 700, 'MISSING (IN ISOFORM 2075).') < ('VARSPLIC', 294, 367, 'QNFSFSIFENFSKQCESTVRKADNETLYSAIFEENELSGWDYDYGFCSPKTLQCAPEPDAFNPCEDIMGYAFLR -> IFHFPFLKTSPNNAKAQLEKQITRRFIPPSLRRMNSVAGIMIMASVHPRHSNVLQNQMLSTPVKILWAMPSLGS (IN ISOFORM B1 AND ISOFORM B3).') < ('VARSPLIC', 294, 294, 'Q -> P (IN ISOFORM C1).') < ('VARSPLIC', 295, 700, 'MISSING (IN ISOFORM C1).') < ('VARSPLIC', 321, 342, 'YSAIFEENELSGWDYDYGFCSP -> LHGALPAAHCLRGLPNKRPVL (IN ISOFORM 1834, ISOFORM 1759 AND ISOFORM EB).') < ('VARSPLIC', 343, 700, 'MISSING (IN ISOFORMS 1834, ISOFORM 1759 AND ISOFORM EB).') < ('VARSPLIC', 368, 700, 'MISSING (IN ISOFORM B1 AND ISOFORM B3).') < ('VARIANT', 82, 82, 'I -> M (IN ISOFORM 1950).') < ('VARIANT', 179, 179, 'E -> G (IN ISOFORM 1759).') < ('VARIANT', 233, 233, 'I -> T (IN ISOFORM 1950).') < ('VARIANT', 646, 646, 'G -> S (IN ISOFORM 1950).') < ('MUTAGEN', 409, 409, 'D->N: SIGNIFICANT REDUCTION OF BINDING.') < ('MUTAGEN', 436, 436, 'D->N: NO CHANGE IN BINDING OR CAMP PROD.') < ('MUTAGEN', 455, 455, 'E->Q: NO CHANGE IN BINDING OR CAMP PROD.') < ('MUTAGEN', 582, 582, 'D->N: NO CHANGE IN BINDING OR CAMP PROD.') < ('CONFLICT', 33, 33, 'R -> L (IN REF. 7).') --- > ('SIGNAL', 1, 26, '', '') > ('CHAIN', 27, 700, 'LUTROPIN-CHORIOGONADOTROPIC HORMONE RECEPTOR.', '') > ('DOMAIN', 27, 362, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 363, 390, '1 (POTENTIAL).', '') > ('DOMAIN', 391, 399, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 400, 422, '2 (POTENTIAL).', '') > ('DOMAIN', 423, 443, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 444, 466, '3 (POTENTIAL).', '') > ('DOMAIN', 467, 486, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 487, 509, '4 (POTENTIAL).', '') > ('DOMAIN', 510, 529, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 530, 551, '5 (POTENTIAL).', '') > ('DOMAIN', 552, 574, 'CYTOPLASMIC (POTENTIAL).', '') > ('TRANSMEM', 575, 598, '6 (POTENTIAL).', '') > ('DOMAIN', 599, 609, 'EXTRACELLULAR (POTENTIAL).', '') > ('TRANSMEM', 610, 631, '7 (POTENTIAL).', '') > ('DOMAIN', 632, 700, 'CYTOPLASMIC (POTENTIAL).', '') > ('REPEAT', 52, 75, 'LRR 1.', '') > ('REPEAT', 126, 150, 'LRR 2.', '') > ('REPEAT', 152, 175, 'LRR 3.', '') > ('REPEAT', 176, 200, 'LRR 4.', '') > ('REPEAT', 202, 224, 'LRR 5.', '') > ('REPEAT', 225, 248, 'LRR 6.', '') > ('REPEAT', 250, 271, 'LRR 7.', '') > ('DISULFID', 443, 518, 'BY SIMILARITY.', '') > ('CARBOHYD', 103, 103, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('CARBOHYD', 178, 178, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('CARBOHYD', 199, 199, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('CARBOHYD', 295, 295, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('CARBOHYD', 303, 303, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('CARBOHYD', 317, 317, 'N-LINKED (GLCNAC...) (POTENTIAL).', '') > ('VARSPLIC', 83, 132, 'MISSING (IN ISOFORM 1950).', '') > ('VARSPLIC', 133, 157, 'MISSING (IN ISOFORM 1759).', '') > ('VARSPLIC', 184, 700, 'MISSING (IN ISOFORM C2).', '') > ('VARSPLIC', 232, 251, 'DISSTKLQALPSHGLESIQT -> PCRATGWSPFRRSSPCLPTH (IN ISOFORM 2075).', '') > ('VARSPLIC', 232, 293, 'MISSING (IN ISOFORM E/A2, ISOFORM EB AND ISOFORM B1).', '') > ('VARSPLIC', 252, 700, 'MISSING (IN ISOFORM 2075).', '') > ('VARSPLIC', 294, 367, 'QNFSFSIFENFSKQCESTVRKADNETLYSAIFEENELSGWDYDYGFCSPKTLQCAPEPDAFNPCEDIMGYAFLR -> IFHFPFLKTSPNNAKAQLEKQITRRFIPPSLRRMNSVAGIMIMASVHPRHSNVLQNQMLSTPVKILWAMPSLGS (IN ISOFORM B1 AND ISOFORM B3).', '') > ('VARSPLIC', 294, 294, 'Q -> P (IN ISOFORM C1).', '') > ('VARSPLIC', 295, 700, 'MISSING (IN ISOFORM C1).', '') > ('VARSPLIC', 321, 342, 'YSAIFEENELSGWDYDYGFCSP -> LHGALPAAHCLRGLPNKRPVL (IN ISOFORM 1834, ISOFORM 1759 AND ISOFORM EB).', '') > ('VARSPLIC', 343, 700, 'MISSING (IN ISOFORMS 1834, ISOFORM 1759 AND ISOFORM EB).', '') > ('VARSPLIC', 368, 700, 'MISSING (IN ISOFORM B1 AND ISOFORM B3).', '') > ('VARIANT', 82, 82, 'I -> M (IN ISOFORM 1950).', '') > ('VARIANT', 179, 179, 'E -> G (IN ISOFORM 1759).', '') > ('VARIANT', 233, 233, 'I -> T (IN ISOFORM 1950).', '') > ('VARIANT', 646, 646, 'G -> S (IN ISOFORM 1950).', '') > ('MUTAGEN', 409, 409, 'D->N: SIGNIFICANT REDUCTION OF BINDING.', '') > ('MUTAGEN', 436, 436, 'D->N: NO CHANGE IN BINDING OR CAMP PROD.', '') > ('MUTAGEN', 455, 455, 'E->Q: NO CHANGE IN BINDING OR CAMP PROD.', '') > ('MUTAGEN', 582, 582, 'D->N: NO CHANGE IN BINDING OR CAMP PROD.', '') > ('CONFLICT', 33, 33, 'R -> L (IN REF. 7).', '') 587c587 < ('INIT_MET', 0, 0, '') --- > ('INIT_MET', 0, 0, '', '') From jchang at jeffchang.com Mon Jun 23 09:55:34 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Mon Jun 23 11:55:26 2003 Subject: [BioPython] Some proposed code-cleanup In-Reply-To: <1056358738.22901.48.camel@sulawesi> Message-ID: <1FD473A0-A593-11D7-9E09-000A956845CE@jeffchang.com> On Monday, June 23, 2003, at 01:58 AM, Andreas Kuntzagk wrote: [replacing UserDict, etc with the types] >> However, it does cause some problems. For example, if you apply >> the patches to SubsMat/__init__.py and FreqTable.py, the regression >> tests fail! I don't think we should accept these fixes until we know >> that they won't break current code. > > I'm sorry. I tried the regression tests and all seemed fine. What I > didn't notice was, the tests used my already installed biopython and > not > the code from the build-directory. Grr, why do I keep tripping over > this > errors? Shouldn't the "python setup.py test" use the directory it is > positioned in? If it is required to set PYTHONPATH before test, it > should be mentioned in the README. I will look into the problems now to > see if I could find out. Yes, we should do something about this. It has caused us problems many times. Probably the best thing to do is to modify run_tests.py to: - identify its directory - insert the build path (../build/lib.XXX/Bio, etc) to the front of sys.path, if it exists - insert the source path (../Bio) to the front of sys.path, if it exists Jeff From panku79 at yahoo.com Tue Jun 24 08:29:59 2003 From: panku79 at yahoo.com (=?iso-8859-1?q?pankaj=20kulkarni?=) Date: Tue Jun 24 02:40:50 2003 Subject: [BioPython] code not working Message-ID: <20030624062959.78432.qmail@web13804.mail.yahoo.com> Hello,I am getting error in the code which is given in the Biopython tutorial(PDF) . The code is as follows >>>from Bio import Fasta>>> parser = Fasta.RecordParser()Error:AttributeError :"module" has no attribute RecordParser I am using Windows 98 platform python 2.2.1 and also have installed biopython. All the .py files are present in the proper directory.Thanx Regards , Pankaj --------------------------------- Want to chat instantly with your online friends???Get the FREE Yahoo!Messenger From jchang at jeffchang.com Tue Jun 24 01:28:55 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Tue Jun 24 03:28:46 2003 Subject: [BioPython] getting rid of UserDict part two ... In-Reply-To: <1056379087.22901.64.camel@sulawesi> Message-ID: <833565EC-A615-11D7-AAE7-000A956845CE@jeffchang.com> Sorry, I am still getting a lot of failures with this patch. For example, test_ParserSupport.py does not pass. I think these are related to the Martel patches. Are the regression tests running against your patched version of Martel, or another installation? Jeff On Monday, June 23, 2003, at 07:38 AM, Andreas Kuntzagk wrote: > or "cleanup of the cleanup" > > Now that the regression tests ran my real code, I could see the > problems > and fix them. The tests run fine now and I hope this time everything is > ok. Problems were, when people used the UserDict.data instead of using > the Mapping - interface. Also I updated the test_SProt output to work > whith update for parsing the Feature-ID. > > Maybe I can convince this time to get rid of UserDict. I think, the > code > looks cleaner this way and probably is also (a little bit) faster, > because throwing out a m unnecessary wrapper. > > Andreas > > > _______________________________________________ > BioPython mailing list - BioPython@biopython.org > http://biopython.org/mailman/listinfo/biopython From andreas.kuntzagk at mdc-berlin.de Tue Jun 24 15:40:53 2003 From: andreas.kuntzagk at mdc-berlin.de (Andreas Kuntzagk) Date: Tue Jun 24 12:25:26 2003 Subject: [BioPython] getting rid of UserDict part two ... In-Reply-To: <833565EC-A615-11D7-AAE7-000A956845CE@jeffchang.com> References: <833565EC-A615-11D7-AAE7-000A956845CE@jeffchang.com> Message-ID: <1056465430.3347.14.camel@sulawesi> Hi, As promised, I looked into Parser.py and hopefully found what went wrong. I believe the tests are working (but I did that before...) Here is the patch against cvs. Andreas -------------- next part -------------- Index: Martel/Parser.py =================================================================== RCS file: /home/repository/biopython/biopython/Martel/Parser.py,v retrieving revision 1.10 diff -r1.10 Parser.py 132,133c132,137 < for item in taglist: < tag, l, r, subtags = item --- > # bind functions to local names for a slight speedup > characters = cont_handler.characters > startElement = cont_handler.startElement > endElement = cont_handler.endElement > > for tag, l, r, subtags in taglist: 135a140 > assert begin <= l, "begin = %d and l = %d" % (begin, l) 137,140c142 < cont_handler.characters(s[begin:l]) < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) --- > characters(s[begin:l]) 142,150c144,150 < if tag[0] == ">": < if tag == ">ignore": < # Named groups doesn't create ">ignore" tags, so pass them on < # to the ContentHandler. Unnamed groups still need a name so < # mxTextTools can create subtags for them. I named them < # ">ignore" - don't create events for them. < pass < < elif tag[:2] == ">G": --- > if tag.startswith(">"): > # Named groups doesn't create ">ignore" tags, so pass them on > # to the ContentHandler. Unnamed groups still need a name so > # mxTextTools can create subtags for them. I named them > # ">ignore" - don't create events for them. > if not tag == ">ignore": > assert tag.startswith(">G"),"Unknown special tag %s" % repr(tag) 153,156c153,154 < cont_handler.startElement(realtag, attrs) < < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) --- > startElement(realtag, attrs) > 159c157 < cont_handler.startElement(tag, _attribute_list) --- > startElement(tag, _attribute_list) 165c163 < cont_handler.characters(s[l:r]) --- > characters(s[l:r]) 168,171c166,167 < if tag[0] == ">": < if tag == ">ignore": < pass < elif tag[:2] == ">G": --- > if tag.startswith(">"): > if tag.startswith(">G"): 173,175c169 < cont_handler.endElement(realtag) < else: < raise AssertionError("Unknown special tag %s" % repr(tag)) --- > endElement(realtag) 177c171 < cont_handler.endElement(tag) --- > endElement(tag) 182c176 < cont_handler.characters(s[begin:end]) --- > characters(s[begin:end]) 202,203c196 < for item in taglist: < tag, l, r, subtags = item --- > for tag, l, r, subtags in taglist: 206,211c199,201 < if begin < l: < if save_stack: < cont_handler._save_text += s[begin:l] < else: < # Some integrity checking < assert begin == l, "begin = %d and l = %d" % (begin, l) --- > assert begin <= l, "begin = %d and l = %d" % (begin, l) > if begin < l and save_stack: > cont_handler._save_text += s[begin:l] From hugh at parvati.msu.montana.edu Tue Jun 24 15:23:35 2003 From: hugh at parvati.msu.montana.edu (Hugh R) Date: Tue Jun 24 16:26:14 2003 Subject: [BioPython] stray '\' in program Message-ID: <200306241423.h5OENif03374@parvati.msu.montana.edu> System is sun sparc solaris2.8 I believe. Ok, I tried installing a new gcc. 3.3 crapped out during the build, but 3.0 worked. Now I can make a small C program and declare variables of type va_list and __builtin_va_list, which is a typedef of va_list. But I still have the same problem building the egenix package. The function va_start is getting passed a variable of type va_list. Thats the line that seems to be causing the problem. The variable args is declared as va_list, but the compiler complaint refers to __builtin_va_list. In file included from mx/DateTime/mxDateTime/mx.h:51, from mx/DateTime/mxDateTime/mxDateTime.c:41: mx/DateTime/mxDateTime/mxstdlib.h: In function `mxDebugPrintf': mx/DateTime/mxDateTime/mxstdlib.h:192: `__builtin_va_alist' undeclared (first use in this function) mx/DateTime/mxDateTime/mxstdlib.h:192: (Each undeclared identifier is reported only once mx/DateTime/mxDateTime/mxstdlib.h:192: for each function it appears in.) mx/DateTime/mxDateTime/mxstdlib.h:150: warning: `args' might be used uninitialized in this function error: command 'gcc' failed with exit status 1 I tried aliasing gcc with gcc -std=c99, but the same thing happened. This mean much to anyone? thanks Hugh >Date: Fri, 20 Jun 2003 11:29:53 -0700 >Subject: Re: [BioPython] stray '\' in program >Mime-Version: 1.0 (Apple Message framework v552) >From: Jeffrey Chang >To: Hugh R >Content-Transfer-Encoding: 7bit > >The Python.h file comes with the python distribution. What system are >you on? Are you on some time of linux/unix or windows? If it is on >linux, and you are using RPM's, perhaps the python-devel library is not >installed? Or if it's windows, it might be a pathing problem. > >Jeff > > > >On Friday, June 20, 2003, at 11:02 AM, Hugh R wrote: > >> I am worried about that! I tried the Numeric...tar.gz instead and that >> seems to >> have built and installed ok. I can import Numeric from the python >> interpreter. >> No luck with the mx stuff though. >> One thing I noticed, the mx.h file includes a Python.h file, which I >> haven't >> been able to locate. >> I tried a simple C program. It didn't like the \ character. I >> included >> stdarg.h and it didn't complain, but I'm not too sure how to test it >> further. >> >> Hugh >> >>> Date: Fri, 20 Jun 2003 10:55:41 -0700 >>> Subject: Re: [BioPython] stray '\' in program >>> Mime-Version: 1.0 (Apple Message framework v552) >>> Cc: biopython@biopython.org >>> To: Hugh R >>> From: Jeffrey Chang >>> Content-Transfer-Encoding: 7bit >>> >>> Based on this and your previous message, it really sounds like there's >>> something wrong with your gcc installation. Can you compile any C >>> programs, or just not Python libraries? \ is a line continuation >>> character in C, so I'm not sure what it's complaining about. Also, >>> from the previous post, __builtin_va_alist sounds like something from >>> stdarg. Try making a small test C program, and #include to >>> see if it complains. That should not generate any errors, and if it >>> does, I'd start looking more closely to see if your gcc is set up >>> correctly. The include files may be incorrect or out of date. >>> >>> Jeff >>> >>> >>> On Friday, June 20, 2003, at 08:41 AM, Hugh R wrote: >>> >>>> Ok, now I'm trying to install numpy, to see if that goes any better. >>>> So I unzip >>>> the Numeric--.zip file, and do the python setup.py build, and I get a >>>> whole lot >>>> of stray '\' in program error messages from gcc. I know the \ is a >>>> line >>>> continuation character in python, but its not in C (????) >>>> Whats up with this? >>>> >>>> thanks >>>> >>>> _______________________________________________ >>>> BioPython mailing list - BioPython@biopython.org >>>> http://biopython.org/mailman/listinfo/biopython >>> > From jchang at jeffchang.com Tue Jun 24 15:42:37 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Tue Jun 24 17:42:29 2003 Subject: [BioPython] getting rid of UserDict part two ... In-Reply-To: <1056465430.3347.14.camel@sulawesi> Message-ID: This patch seems to fix things, meaning makes the regression tests run. I've committed it to the CVS repository. Thanks very much! Jeff On Tuesday, June 24, 2003, at 07:37 AM, Andreas Kuntzagk wrote: > Hi, > > As promised, I looked into Parser.py and hopefully found what went > wrong. I believe the tests are working (but I did that before...) > Here is the patch against cvs. > > Andreas > From jchang at jeffchang.com Tue Jun 24 23:56:56 2003 From: jchang at jeffchang.com (Jeffrey Chang) Date: Wed Jun 25 01:56:49 2003 Subject: [BioPython] Re: Voting Ballot for new logo In-Reply-To: Message-ID: There are 3 days left to vote for the logo. So far, I have received 14 ballots, which is just a fraction of the people registered on the list. There are a few people, including heavy contributors, who have not yet cast a ballot! If you have any preferences at all, please send your rankings by Friday. Thanks, Jeff On Friday, June 20, 2003, at 05:39 PM, Jeffrey Chang wrote: > Hello, everbody! > > It is time to vote on the new Biopython logo. This is the logo that > will be used to "brand" the project. It will appear on the official > webpage, pages that link to that page, and on talks about the project. > > Many people have been hard at work designing excellent logos, and > we're going to start voting on which logo to use. You do not have to > be a Biopython contributor to vote. Followers of the project and > other well-wishers are invited to participate! > > Some of the logos have had minor updates since last week, so please be > sure to check the page before you vote. > http://www.biopython.org/static/logos > > To vote, please fill out the ballot: > > ----- BEGIN BALLOT ----- > > ___ Sep Dadsetan > ___ Iddo Friedberg > ___ Gyro Funch > ___ JP Glutting > ___ Andreas Kuntzagk > ___ Catherine Letondal > ___ Runsun Pan > ___ Leighton Pritchard > ___ Henrik Vestergaard & Thomas Hamelryck > > ----- END BALLOT ----- > > To fill out the ballot, rank all the logos you like from 1-N, with the > favorite getting a vote of 1. For example, if your favorite is > Letondal followed by Funch, Pan, Friedberg, then Vestergaard, your > ballot will look like: > > ___ Sep Dadsetan > _4_ Iddo Friedberg > _2_ Gyro Funch > ___ JP Glutting > ___ Andreas Kuntzagk > _1_ Catherine Letondal > _3_ Runsun Pan > ___ Leighton Pritchard > _5_ Henrik Vestergaard & Thomas Hamelryck > > > Please either send the ballot directly to me, or reply to the list by > next Friday, June 27. Only one ballot per person, please. I will > tally the results over the weekend by instant run-off voting and > announce the results the week after. Good luck everybody! > > Jeff > From mikhail at ibioinformatics.org Wed Jun 25 12:37:39 2003 From: mikhail at ibioinformatics.org (Mikhail Esteves) Date: Wed Jun 25 02:06:21 2003 Subject: [BioPython] Re: Voting Ballot for new logo Message-ID: <200306251137.39294.mikhail@ibioinformatics.org> ----- BEGIN BALLOT ----- _9_ Sep Dadsetan _7_ Iddo Friedberg _5_ Gyro Funch _6_ JP Glutting _8_ Andreas Kuntzagk _2_ Catherine Letondal _4_ Runsun Pan _3_ Leighton Pritchard _1_ Henrik Vestergaard & Thomas Hamelryck ----- END BALLOT ----- From sbassi at asalup.org Wed Jun 25 20:41:53 2003 From: sbassi at asalup.org (Sebastian Bassi) Date: Wed Jun 25 19:15:22 2003 Subject: [BioPython] primer3 parser Message-ID: <3EFA2531.5040309@asalup.org> I was trying to use primer3 on Biopython. I'm running Win2000, but I have primer3 compiled (using GCC under CYGWIN, under Win2000). So primer3 runs as a DOS program. I know it's not a DOS program, but it runs in a console as a DOS program. I couldn't run the Primer3Commandline. Here is my code: from Bio.Emboss.Applications import Primer3Commandline from Bio.Emboss.Primer import Primer3Parser from Bio.Application import generic_run primercl=Primer3Commandline(cmd="primer3.exe") primercl.set_parameter("-sequence", "in.pr3") primercl.set_parameter("-outfile", "out.pr3") primercl.set_parameter("-productsizerange", "30,10000") primercl.set_parameter("-target", "100,200") result, r, e = generic_run(primercl) parser=Primer3Parser() print parser.parse(open("out.pr3","r")) When I run this, I get a error stating "out.pr3" doesn't exist, this is because the program (primer3) didn't run. I put cmd="primer3.exe" on the Primer3Commandline function since this is how I named the program. the path is also fine. Then, I tried another thing: I run primer3 "by hand" and then I tried to parse the resulted file. To try the parse it, I did this code: from Bio.Emboss.Applications import Primer3Commandline from Bio.Emboss.Primer import Primer3Parser from Bio.Application import generic_run parser=Primer3Parser() print parser.parse(open("data\\salida.txt","r")) # salida.txt is the output file from primer3. When I run this, I got this error: >>> Traceback (most recent call last): File "C:\Program Files\Python22\primer3test.py", line 13, in ? x=parser.parse(open("data\\salida.txt","r")) File "C:\PROGRA~1\Python22\Lib\site-packages\Bio\Emboss\Primer.py", line 154, in parse self._scanner.feed(handle, self._consumer) File "C:\PROGRA~1\Python22\Lib\site-packages\Bio\Emboss\Primer.py", line 236, in feed self._parser.parseFile(handle) File "C:\PROGRA~1\Python22\Lib\site-packages\Martel\Parser.py", line 338, in parseFile self.parseString(fileobj.read()) File "C:\PROGRA~1\Python22\Lib\site-packages\Martel\Parser.py", line 366, in parseString self._err_handler.fatalError(result) File "C:\PROGRA~1\Python22\Lib\site-packages\_xmlplus\sax\handler.py", line 38, in fatalError raise exception ParserPositionException: error parsing at or beyond character 0 So there are 2 different problems: 1) primer3 doesn't run from biopython. 2) I can't parse the file product of manually ran primer3. -- Best regards, //=\ Sebastian Bassi - Diplomado en Ciencia y Tecnologia, UNQ //=\ \=// IT Manager Advanta Seeds - Balcarce Research Center - \=// //=\ Pro secretario ASALUP - www.asalup.org - PGP key available //=\ \=// E-mail: sbassi@genesdigitales.com - ICQ UIN: 3356556 - \=// http://Bioinformatica.info -------------- next part -------------- PRIMER_SEQUENCE_ID=seq49-int SEQUENCE=CTTATATACTACAGTAATTAATAACATATTAGATGTGATTCAATTTTTAATACAAGCTGAAAAATCCTAGAATTGACGGGTTTAGATCGATATTAATACAAGATGATATACTACATGTGAAACTCTTAAATTAACAATCAAACTACAAGTGTATAATCTTAAACACTAAACAATATAGATAATATCAACAAAATATATACAACTCACAGATTACTATACATTTAAAATCAAATAAAATAATATCATATATATTTAAATCATCTTTACAATAAAAGTTTTTAGTTTAACTAAAGTATAAGCCTACCTGCGGTATACTGCAGGTTAATAACTAGATTATAGGGCTTATTGGATCTAAAGACGGGTCATCAAAGATTTCCTAAACTGAAGCAAAATATACTGAATATTCAAATATCTATCTGTTACCAAATTA INCLUDED_REGION=150,130 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-430 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 402, GC content failed 221, low tm 181, ok 0 PRIMER_RIGHT_EXPLAIN=considered 402, GC content failed 321, low tm 81, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq54-int SEQUENCE=CTCTTCTCTCGTCTCTCGTCAGCATATGCGTAAGAGCATCTCCATTGGTGAGATACTCCATGAGTACCTCATAATATATTATTAATATTTTAATTTAAGTAGAGAAACTTATACTAAAATTGTGCTTCCATTGGTGAAATACTCTTATGAGTATCTCATTAACATTAACATATTATTATATGTTTTTTATATTAAATTTAAAATCTCTACAATATTTTCAAACATATCAATTATTATTTTTACAATTATATTATTAAATAGTTTTATTATTTTTAAAACCATAATTAAACATAATTAAACATAATTAAACATTACTTTACATATAAAATCATAATAAAAAATATATCAATTAAACATAAAATTCCATATAAAACCATGATAACATAAATTAAATAGAAAAAATATATAAATTACACAGAAATTACATATAAAACCATGATAACATAAATCAAAACTAACTATATTATCTATTATGGTTTTACTCTTCATTTGATAATGCACCAAACTTTTGTCATATATGCTCAACTAGGTCATCTTTTAGTTGTTGGTGCATATCTCTATCACGAAGTCGAATTCGATTGCCAAAAATGTTGTAAAATAAAAATAGAAAATTTTAAATGTTTGTTTTC INCLUDED_REGION=150,329 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-629 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 1596, GC content failed 1406, low tm 190, ok 0 PRIMER_RIGHT_EXPLAIN=considered 1596, GC content failed 1311, low tm 285, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq61-int SEQUENCE=GACTATGACATCTCTAAGATAAGCAATACTCATGACTCTCGCTTGAGAAGTGCATTCTCATATTGACTACACCATTAGGCAATATGTTTCCTAACGTTTAACCATACAAGTTTGTCCCCCTCTTTCCCTTTGCAATACTAATTAGTATAACAAATTTCATTAGAGAATGTTTAATTTCATAAATATCTCAATATTTTGATATCTTATCCTATCTTCCATATTTTCTTTGCATTTTTTGTAAATAACTACATATTATTATCTTCAAAAATGAATTTCACATTTCAACAAAATAAAATATTTTCATGTTTCTACATGCATGCTAGTTTATTCTCTTAATAGTTGATACAATATTCCTAATACTCTTTAAGACGTGCATAAACTTTTTAAAATTGAATGATAATTAATTTAATTCACATCGACTTTAGACTACGTTCCAAGTAAACTTCC INCLUDED_REGION=150,147 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-447 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 464, GC content failed 232, low tm 219, long poly-x seq 13, ok 0 PRIMER_RIGHT_EXPLAIN=considered 464, GC content failed 225, low tm 226, long poly-x seq 13, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq63-int SEQUENCE=TTATTCTCCAATTTGGATTTTCTTTCTCGAAAGTGAAAGGAATGATGAATGGTAAAGAAATTGGACACCTTTTCCCATGGATACTATGGTATGTATAGAAGGCTCAAAATAGCTTTATACAGTAGAAACTCTATAAATTAGTAATGTTGGGATCATGAAATTTTATTAATTTATAATGATATTAATTTATCCTATAAATTAATATTTATTAACTTATACGATAAGTTAATAAATATTAATTTATAGAAATATTTACATAAAATACAATATTATATTCTTTTTAAAATGTTTCTTAATTTAAGTTTTTATATGTTTTGTTGTTTGCATATATAATTATGTTAGTTTTAGTTTTTTTTTTACTTCTTTAATTTATTTTTCAGCAAGATATTGTGTCTATATATCTACGCCATTAACGTCAATGTAAACGTAAACATGAAGCTTAATCCAATTTCTCTTTACTCAAATCTTAGCAATGCTTTCTCAAAAAGATTTTACAAAATCAACTATGACGGATCAAATA INCLUDED_REGION=150,220 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-520 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 942, GC content failed 900, low tm 42, ok 0 PRIMER_RIGHT_EXPLAIN=considered 942, GC content failed 843, low tm 99, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq100-int SEQUENCE=ACCAAAGTTCAGAAATTTGAATTAGAGACATTAAAATATAAAAATATCATTCTACTTCCACTAAAACCCTCTTCCAAGCTAACGATGCGGGTTTAATTCCCAAGACTTGCGCAAAAAGCATGCCCAATATTGCTTTATCCAACCTCCGATGACCGTCTCTATCTTCTTCTCCTTTTCTCGTTCTTTTGATTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTGATTCTGATACTTAATCTTCTGTCTTCACATATGGAGCATAGATACTTGACTCGAGTAGCTTTGGATCGTTAACATCAAGATCCTCAACATGGTCTGCGAAGACGTAAACTACTCTACTACGATAGTAGTCATATTCATGCTGA INCLUDED_REGION=150,121 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-421 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 348, low tm 344, ok 4 PRIMER_RIGHT_EXPLAIN=considered 348, low tm 348, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq164-int SEQUENCE=ACTTGAAAAACCATCATAAACAATTTTAATCTCGATAAAACTACATGTACTTTCGGATTTGTTCTTAAAACTACGCCTCCAATTGAACCGACCAGTTAACCGATAATTATACATCCGGTTTGACTTACCCATAATTTAACCAAAACTAATCCGATTTTGACTCTATTTTAACCCAATTTATACCCAAAAAATATATTCTCTAGAAGAAAAATACTTTTTATTTATTTTCATTTATTTTTGATAAAAAAATAAAAATAAATTAATTAATTTTACCAAAATAATAAAATAACAAAATATACCGCAAAATAATATAACAAAATAGACAACAAATTCTTTTTATAAATACAATGGTGTTATATATATAAATGTATTTGGTATATACTCTAAATTTAATAATTCAAAAGCCATTTTCTTTTTACAAACACCATAATCATATATAAATATATATATATATATATACATATATAACTCATCTTGAATATATAAAAAGAAAACTGAATCTATAAAGAAAAATAAATTTATAAATACCATAAGATATACTTTGATTGTGGTGTTTACGGATATTTATAAAAATAAATTTGGCATATATTTTGAATTTCATTACATATATAGAGTTCAAAGGTCATATATTATGATTTCAAGAAAAATGAATATTTTTGTTTAAAAAAAGACAT INCLUDED_REGION=150,374 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-674 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 1830, GC content failed 1143, low tm 674, long poly-x seq 13, ok 0 PRIMER_RIGHT_EXPLAIN=considered 1866, GC content failed 1253, low tm 613, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq179-int SEQUENCE=CAGAGAGATTTGACAGCGAAGCTCCACCATGTTTTAGATCATATATAGCCGTTTGAAGAAAAAAACTGAAAATGTCGTCCACATTGTGCTACACTCTGTCCCTATAGGACCTACGCAACTTTTCTATAAGCCATATTTCAAATATTTCCGGTTATTTTTGACATCTTAATATATATATGACAGTTAAAAACAAGCAGATTAAAAATATTTATTTTTAAAAAGTTCAACCAATCATAATAAAGACTACAGAATATAAATATTAAATAAAATATTAAAATAATATATAATTTTTGGGAAAAATGTTATTTAATACCTCAACTAACAAAAAATGGCCAAATTAACCGTGAACTCGTGAAATGGCCGTTTTAACTCTCAACAAAAAGTTGACTTCTGTTTTAACCTTTAAGTTTGCGTTGACTCGGCCTAATTAACCACCGTTAAAAATCCTTCTAACAGCGTAATTGACAGCCGTTA INCLUDED_REGION=150,174 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-474 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 666, GC content failed 392, low tm 274, ok 0 PRIMER_RIGHT_EXPLAIN=considered 666, GC content failed 404, low tm 262, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq270-int SEQUENCE=TGGAGAAAAAATCTCTGTTGAAAATCTTAAGAGTCCATGGGAAGCATGATGAGTGTCAGCTGCATGAAAGTGTGTAGCTTTCGTTTTCCATGCATCAAAGTTAAGCTTATTATATGTCATTGTTTTGATTAAATTACATAAAAGTAACGATTAAAGTAGACTGTAATTATTAAAAACATCAACTTAATTTGCTTTTAAAACTCCAACTAATTATCCAACAACAAATTCAAAACAATAAAAATTAGATACATATAAATGTCAATAAAATAAATTCCTCACCTTTACCTATAACTACTTTTTCTATCCACTAAATATTTTGTAATGCTTTGTGTTACCAATCAATCAAATCCTTAGTAGTAAACCGCTTACCAAATACGACCAATATATCATTGAGTTTGAGACATTGACTAGTGCAGAGGATTGCTAGATTTCCTATGGGAACGAGGGAGCTACAAATTCGGAAAGT INCLUDED_REGION=150,166 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-466 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 618, GC content failed 323, low tm 293, ok 2 PRIMER_RIGHT_EXPLAIN=considered 618, GC content failed 227, low tm 389, ok 2 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 = PRIMER_SEQUENCE_ID=seq286-int SEQUENCE=TGAGAACGTCGTTAAAGGAGTAATATTTGATAAACATCGATCAATAAGAAAACTTACGTTTGGTCAAAGAGGAGAATCGAGCAAGGTACGAATTTATCGACCGGACGAAGGAGTTTGGAGATCGGAGCGAAGACGAAACATCAAGCAAGCCACGATCCTATTTTCTTCAAATTAATTACCTTTTTCAGAAAATATACTTTTTTATTCTTTTTGATAAATACCATATTTTATGGATTTTACATTAATTTGGAACAATTATTTTAATGATACATGTATAATTATTTTTTTTTAAACTATGGGTTATTTTTTTCAAAAAAATAATGTGTGGATGTTTCAAAAAAAATCAAATTTCATAATGAAACAAACAAAAATTCGAAGAAGATAATACACATTGTGTTGAGAACAAACAATTATTACACATTGTCGGATTAACCATATAAATACCGAACTTTGCCTTTTGATTTGGCCAAAACCTTAAAGTTAAGGTAAAACCTTCATAGCTGTCCAACAATGTTAATAA INCLUDED_REGION=150,220 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-520 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 884, GC content failed 644, low tm 225, long poly-x seq 15, ok 0 PRIMER_RIGHT_EXPLAIN=considered 831, GC content failed 606, low tm 195, long poly-x seq 30, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq399-int SEQUENCE=ACGATGTAAGTAGTCGAAATTTGCTAATGTAGTTTCATTAGCTAATATTGATTTTATTACTAATTTAGTTAGTTGACTGATCAATAGGGATTTGAGACAAATTCAAGACCGGTTCAAGACTCAAAGGGAAGATCAGTTTGGTTCTATGATCCAAATGTTTGATATATTTACTTCTATTATTTTGTAATTTATACCCTTTTAACAAAATTATCATTTTGTAATATTTGAGATTTTTTTCAAACTTTAATAAAGAAAACAATTGATGAGTATTTTTTTTTAATATACCATTAGTATTCCACTATAATAATCATCATCGGAAAAAAAAAAACACGCCTGATTACATCAACGTTGCTAAAACAGTATGTCCTATAAAAGCTAGGCAAGCAGTGTTAGCTACTAAATCCAACTCTAATCAAGCAGTATAAAAACTTGAAACAACAAATAAAC INCLUDED_REGION=150,147 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-447 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 485, GC content failed 383, low tm 97, long poly-x seq 5, ok 0 PRIMER_RIGHT_EXPLAIN=considered 480, GC content failed 400, low tm 73, long poly-x seq 7, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq414-int SEQUENCE=GGAAGAGGCACCACCAGCCTTCTCATTCTCCTCTTCATCAGCCATCGACAAAGTTATTAGGAGTGGAATAGTATCCCGCGCCAATCATGCACTACCGGCAACAACAACGAGCTCTTCTTAAGATCAACATGTGCGTCATAAGAATGGGCTGATCAACATGTTTGTTTTTGCTCTGTTTTTATAATGAAAGTTTAAGTTCATTTGTTTTTCTTTTTTCCATAACTAATCTTTTCTTTTTTGTTGATCAAATAAATATCAAATTTCAACCCAAAAAAAAAAAAAATCCTGCAAGATATTGGAATAAGAGATTTATTTGGAAAAAAATTATATATAACACGAACGGTGTTATGTAAACTCAACATAATTCGATCGTAAGAGAGTTTCTCAATATATTTGGAAAAGGTAAAACCAAACGAAACTAAAATTAC INCLUDED_REGION=150,128 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-428 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 332, GC content failed 99, low tm 215, long poly-x seq 15, ok 3 PRIMER_RIGHT_EXPLAIN=considered 265, GC content failed 139, low tm 88, long poly-x seq 38, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq427-int SEQUENCE=ATTATATACTACAATAGTTAATAACATATTAGATGTGATTCAATTTTTAATACAAGCTGGAAAATCTTAGAATTGACGGGTTTAGATCGATATTAATACAAGATGGTATGCTACATGTGAAACTCTTAAATTAACAATCAAACTACAAGTGTATAATCTTAAACACTAAACAATATAGATAATATCAACAAAACATATACAACTCACAGTTTACTATACATTTAAAATCAAATAAAATAATATCATATATTTTTAAATCATCTTTATAATAAAAGTTTTTAGTTTAACTAAAATATAAGCCTACCTGCGGTATACTGCAGATTAATCTCTAGATTATAGGGCTTATTGGAACTAAAGACGGGTCATCAAAGATTTCCTAAACTGAAGCAAAATATACTGAATATTCAAATATTTATATGTTACCAAATTATAAACAA INCLUDED_REGION=150,137 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-437 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 444, GC content failed 233, low tm 211, ok 0 PRIMER_RIGHT_EXPLAIN=considered 444, GC content failed 373, low tm 71, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq464-int SEQUENCE=CCAGCTGGCGAAGAAGTAAAAAAGCAAATAGATTAGCCAAAATACGACAACACCCTCTACCTACAAGCCATAGATACCATGACTCATAAGGGCAACACCGACATTTGTCATCATTTGATAAATCTAACCAACCCTGAAGGGCATATTCGTCTTTCCAAATAGTTATAAAGAGACAGAGACGAAGAAGGAGAGAGAGAAAGAGACAAGATTAGAGAAGAGGATAAGAGAGAGAAAGATATAGAGAATTTGTTGTCTTTTTTTCTTTTTCTTTTGTGGGGTATTTGTTTTTTTTTTTCTCCTTAAAAAGTTTTTTTTTTTGTGTGTATGAAAAAAAAAGCTTTGAAATTCTCTCTCGACAATGGTGTCGGACCAGGATCTAGCGAAAGGAGTCGAGACTTTGCTTCGACAATCCGACCCTAGCTCTCTCACATCGTTAAGCAGTATTGTTCAGCAGCTTGAAGCTAAGTTAGGGTTAGACCT INCLUDED_REGION=150,180 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-480 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 649, GC content failed 32, low tm 581, long poly-x seq 16, ok 20 PRIMER_RIGHT_EXPLAIN=considered 557, GC content failed 131, low tm 367, long poly-x seq 48, ok 11 PRIMER_PAIR_EXPLAIN=considered 36, unacceptable product size 28, ok 8 PRIMER_PAIR_QUALITY=8.4784 PRIMER_LEFT_SEQUENCE=CAGAGACGAAGAAGGAGAGAGA PRIMER_RIGHT_SEQUENCE=CCCCACAAAAGAAAAAGAAAAA PRIMER_LEFT=173,22 PRIMER_RIGHT=277,22 PRIMER_LEFT_TM=58.011 PRIMER_RIGHT_TM=59.511 PRIMER_LEFT_SELF_ANY=2.00 PRIMER_RIGHT_SELF_ANY=1.00 PRIMER_LEFT_SELF_END=0.00 PRIMER_RIGHT_SELF_END=0.00 PRIMER_LEFT_END_STABILITY=6.4000 PRIMER_RIGHT_END_STABILITY=7.6000 PRIMER_PAIR_COMPL_ANY=2.00 PRIMER_PAIR_COMPL_END=0.00 PRIMER_PRODUCT_SIZE=105 PRIMER_PAIR_QUALITY_1=8.6305 PRIMER_LEFT_1_SEQUENCE=GACAGAGACGAAGAAGGAGAGA PRIMER_RIGHT_1_SEQUENCE=CCCCACAAAAGAAAAAGAAAAA PRIMER_LEFT_1=171,22 PRIMER_RIGHT_1=277,22 PRIMER_LEFT_1_TM=57.859 PRIMER_RIGHT_1_TM=59.511 PRIMER_LEFT_1_SELF_ANY=2.00 PRIMER_RIGHT_1_SELF_ANY=1.00 PRIMER_LEFT_1_SELF_END=0.00 PRIMER_RIGHT_1_SELF_END=0.00 PRIMER_LEFT_1_END_STABILITY=6.4000 PRIMER_RIGHT_1_END_STABILITY=7.6000 PRIMER_PAIR_1_COMPL_ANY=2.00 PRIMER_PAIR_1_COMPL_END=0.00 PRIMER_PRODUCT_SIZE_1=107 PRIMER_PAIR_QUALITY_2=8.6305 PRIMER_LEFT_2_SEQUENCE=GAGACAGAGACGAAGAAGGAGA PRIMER_RIGHT_2_SEQUENCE=CCCCACAAAAGAAAAAGAAAAA PRIMER_LEFT_2=169,22 PRIMER_RIGHT_2=277,22 PRIMER_LEFT_2_TM=57.859 PRIMER_RIGHT_2_TM=59.511 PRIMER_LEFT_2_SELF_ANY=2.00 PRIMER_RIGHT_2_SELF_ANY=1.00 PRIMER_LEFT_2_SELF_END=0.00 PRIMER_RIGHT_2_SELF_END=0.00 PRIMER_LEFT_2_END_STABILITY=7.9000 PRIMER_RIGHT_2_END_STABILITY=7.6000 PRIMER_PAIR_2_COMPL_ANY=2.00 PRIMER_PAIR_2_COMPL_END=0.00 PRIMER_PRODUCT_SIZE_2=109 PRIMER_PAIR_QUALITY_3=8.7278 PRIMER_LEFT_3_SEQUENCE=CAGAGACGAAGAAGGAGAGAGA PRIMER_RIGHT_3_SEQUENCE=CCCCACAAAAGAAAAAGAAAA PRIMER_LEFT_3=173,22 PRIMER_RIGHT_3=277,21 PRIMER_LEFT_3_TM=58.011 PRIMER_RIGHT_3_TM=58.262 PRIMER_LEFT_3_SELF_ANY=2.00 PRIMER_RIGHT_3_SELF_ANY=1.00 PRIMER_LEFT_3_SELF_END=0.00 PRIMER_RIGHT_3_SELF_END=0.00 PRIMER_LEFT_3_END_STABILITY=6.4000 PRIMER_RIGHT_3_END_STABILITY=7.3000 PRIMER_PAIR_3_COMPL_ANY=2.00 PRIMER_PAIR_3_COMPL_END=0.00 PRIMER_PRODUCT_SIZE_3=105 PRIMER_PAIR_QUALITY_4=8.8799 PRIMER_LEFT_4_SEQUENCE=GACAGAGACGAAGAAGGAGAGA PRIMER_RIGHT_4_SEQUENCE=CCCCACAAAAGAAAAAGAAAA PRIMER_LEFT_4=171,22 PRIMER_RIGHT_4=277,21 PRIMER_LEFT_4_TM=57.859 PRIMER_RIGHT_4_TM=58.262 PRIMER_LEFT_4_SELF_ANY=2.00 PRIMER_RIGHT_4_SELF_ANY=1.00 PRIMER_LEFT_4_SELF_END=0.00 PRIMER_RIGHT_4_SELF_END=0.00 PRIMER_LEFT_4_END_STABILITY=6.4000 PRIMER_RIGHT_4_END_STABILITY=7.3000 PRIMER_PAIR_4_COMPL_ANY=2.00 PRIMER_PAIR_4_COMPL_END=0.00 PRIMER_PRODUCT_SIZE_4=107 = PRIMER_SEQUENCE_ID=seq518-int SEQUENCE=ATACTCTCATATTTGAAACATAAGTCTCCTCAAAAAAGCATTTGTGAAATGGTTTATACGACCTTGCGTGATGATGTAAGGTTTGTCTCCATGATATGCCCTTGTATATTAACCCAAGATATGAGAGACGTCGAGAAACATACAAATAATGCACTATAATTTATAACAGTAAAGTTTTAAAATAATGTTTCCTAAGATAAAAAATTTAAAATAATGTTATAATAGGTATCATTAATTGGAATTTATATTCAAAATGAAAATAGACAAGTCTTAAGAAAATAAATAATAACAAAAACTAAGAAGGAGAAAAGGTTTCCTCTTTGATTAGAATGCAATATATGGGGTTATTTTCCACTGTTCTCAATTAAAATATTCTTCTGAAAATCCACATTATTCCCTCATTTTCATGTATATAATTCTCTTACATGGCCAGTTGCAACTACAATC INCLUDED_REGION=150,147 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-447 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 495, GC content failed 389, low tm 103, long poly-x seq 3, ok 0 PRIMER_RIGHT_EXPLAIN=considered 504, GC content failed 336, low tm 168, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq529-int SEQUENCE=GCACATTTAAGGGGGAAAATAGTTCTTTTTAAACTAGTGGCAGCTACAAGGCCCATGACAAGTTAATGATCAATGGATCTCAAGCCCACTAATAGTATTAGATTAATAGATAATTAATGGACCGTATGAAATTTCTTAATTGCCAAGTTGATGAAACAGCTATAAATAGAAAATTCGATGATTTGGTGATTTTTTTTAAAATATAACAAACAGATTGATTAATAGAAAATTGTGTGGTTTTATGTATAATAATACTTTTCACAATCTTTTCTTTTCTTCATATAAACAAAACAGTCAAAAGAAGAATTTATGAAATTGTTAACAAATTTATAGCCATGGCCGGAAAGTTGGATTGAGCCCAAAATTTTGATTAGTCTTCGATGCAAATGTAATCACCAAGAGATATTTTCTTAGGAATTATGTTAGCTCTTTTCCAATCTTATAACATCATGTAGTGTTTTTTGG INCLUDED_REGION=150,165 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-465 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 593, GC content failed 262, low tm 318, long poly-x seq 5, ok 8 PRIMER_RIGHT_EXPLAIN=considered 612, GC content failed 201, low tm 411, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq564-int SEQUENCE=TGCATACTTGCAGGCATTTGACCAACGACTATACATATTGAAAGCAAAATATCCACCAGGGATGATAGGGTTAGATCCCACATTCAATATCTTTTGTCTTTGTTATTTATGAAAAACAAATATTTATCAGGAAAAAAACGTTTCTTCTCTAGTGGTATAAGATAATAACAAAATTTAATACTTAGTTAATGTATTTACTATCTTCAAACTTACCATCCTTCAACATTAATATTGATCAATTTTTATTTTTTTTACTAAACTACTTCCACTAAAAAAATGCAAAAGAAGAGATATATATTTAAGTCAAAGTAATTAAAGATGGATGGGTGATTCTTCAGCAAAACGGCGCCGTAGAGGTGTCTTATCCTACATTACAGCTGGGTTGTGGCAGACATCATAGGGCCTACGTATATTTGAGCTTTACTGTACGTAAAGCTTTAACATATCTAGTTAGTTCTCACTGTAC INCLUDED_REGION=150,166 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-466 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 612, GC content failed 349, low tm 258, long poly-x seq 4, ok 1 PRIMER_RIGHT_EXPLAIN=considered 542, GC content failed 261, low tm 259, long poly-x seq 21, ok 1 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 = PRIMER_SEQUENCE_ID=seq592-int SEQUENCE=GTTTAAACGCAGCGGGTGCGGTTGCGGTTGCGGAAGTTTGCGGAAACGGGCGGTTGCGGTTTCAAGCGTTATCAAGTGTTTTGAACGACTGGTTGAGCGTTTGGTAATGGGTGCGTTTGCGGGAGTTTTATGACTGGTAAACCAGCGGGTGCGATAGTAATTAAATAAAAAATAACCAAAATAAATATAATATATTACTATTAAAAAAAAAAATACAATATATTATTATGATAAATTGATAATATTTGAAAAATTAAACATACTTAATAATTAAAACCATAAATAAAACTGAAAATTCAAAAATAAATAAATTTTATAAGAAAAAGCTTAATACTTTATGCATTTGGTACATCACCAAAATTGCATCAAGTAGTGTGATAAACTGTAAATAACGTTGAACTCGCGGGTTTTCCGGATTGCCTCTATACATATGATAAAGTTTCTTCAAGATATCCAAACGATTTTTAACAC INCLUDED_REGION=150,171 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-471 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 648, GC content failed 644, low tm 4, ok 0 PRIMER_RIGHT_EXPLAIN=considered 648, GC content failed 628, low tm 20, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq607-int SEQUENCE=AATGTAACCATGGGCGTTCGGGTATTCGGTTTGGTTCCCGTTCGGTTCTAGTTCGGTTCCGATTCTTTCTGTTCTCGATTTTAGGATCCATATAGGAACCGAAACAGTTTCAGTTCGGTTCAGGTTCGGGTTCGGTTCTGAAGTTTAGGATCCATTAGAATATTTTATTTCGAATATTTCAGATATTTTTTGTCTTTTTTTCCGGATATTTTGGTGTTTTTATATATTTTTCCTTATTTGGGTATTTTTGATTATTCAAACTAAAAATAACTAATATCTTTGGATATATAATCATATTTCGGATACGCAAAATATTTTGGTTCGGTTCGGGTTCAGTTCTAATTACTTTGGTTCTAGAATTTAGGATCTATTTGAGTAGTTTACCATTTCGGGTCGGATTCGGGTTGCTTCAGTTCGGATTCGGTTCTTTCAGTTT INCLUDED_REGION=150,136 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-436 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 354, GC content failed 232, low tm 88, long poly-x seq 22, ok 12 PRIMER_RIGHT_EXPLAIN=considered 432, GC content failed 245, low tm 171, long poly-x seq 4, ok 12 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 = PRIMER_SEQUENCE_ID=seq668-int SEQUENCE=TTGTGGGGAAACTTAAATGATTAATTGATACCAAAACAAAATGTGTTTTGATGATTAACGTGGGGACCAAAACGTGGGTCGGAGAGTGCCCGGGGCCGGGAGTGCTAGCCCTCTTAATTTACGTGACTCACTTAATTACACGCATCTACCATTTTGTCATGGTGATTTATTTATATGTATACTATAAATTTAATATTTTATTTTCAAATAAAAAAACAAAAAATTTAATTAATTATCTCATATTTCCTTTGTTCTTTAAACTTGATTTTTTTTTTAAACACACATATTAAAAAACATATTAAATATTGGTTATAAATATATTACTTTTTGTGTATTACAGTTTTCTATAACTCTAAACCAATGATAATTAACTATTTTTCTTGAAAATTACAATTCACCAATACTAACCAATAAATATTACAAAGAAAACTTAAAAAATCAATCTTTTAGAAACAATTTTTTTTCTCTATATAATCAATCATTTAATAACAGAGGGAATATCGTTTTCCTTTCTGCTAAAATATCTTAGCTTTCTAATAGGTAATTTAGCGTACCGATTCATTTGTATTAACATGAATCTAATCTTTTATTTTCTGTTTTTACTACTAGTTAAATCGTTAGTCAAC INCLUDED_REGION=150,326 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-626 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 1562, GC content failed 1017, low tm 540, long poly-x seq 5, ok 0 PRIMER_RIGHT_EXPLAIN=considered 1549, GC content failed 1039, low tm 500, long poly-x seq 10, ok 0 PRIMER_PAIR_EXPLAIN=considered 0, ok 0 = PRIMER_SEQUENCE_ID=seq745-int SEQUENCE=TTAGTGCTCAGGAGAAATAAAATGTTGATAGACGTCTTTGAACAATCAATGGAGTGGAAGGTGTGGCCGAATTAGTCAATTTGTTAACAAATGCCAAGGCCAAATATTTTGTTGGGCTTTTAGTTTGGCCCAAATTGTATACAATGCTTGATGACAAACTCGGAAAAAAAAAGCAAAAAAACAAAAAAAAACCTCTCATAATACATTAGTTTATTATATAAAATGTTCCACTAAATCACACATCTCCTCCTCACTCAACACGAAACCCTTCCAAATTCCTTCACTATCCATTTCAATTTCATCCTCCCCTTGTCCTTGATGCTCCATTGAAGCTATGTGAAGCTCATCACCATAATCAAACACACCTCCACATTGATCATCGATGTCATCACCATACTCTTCTGGCTCAGCTTTAACAAACTTTCCATTATCCTCAACACCATGGCTTGAGATCAC INCLUDED_REGION=150,156 PRIMER_OPT_SIZE=19 PRIMER_MIN_SIZE=17 PRIMER_MAX_SIZE=22 PRIMER_PRODUCT_SIZE_RANGE=64-456 PRIMER_EXPLAIN_FLAG=1 PRIMER_LEFT_EXPLAIN=considered 449, GC content failed 188, low tm 208, long poly-x seq 31, ok 22 PRIMER_RIGHT_EXPLAIN=considered 558, GC content failed 112, low tm 341, high tm 10, ok 95 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 = From TimFr at intra.niddk.nih.gov Fri Jun 27 13:58:48 2003 From: TimFr at intra.niddk.nih.gov (Fritz, Tim (NIH/NIDDK)) Date: Fri Jun 27 13:04:07 2003 Subject: [BioPython] PCR primers for multigene families Message-ID: <1A453A07455BDE409F7BDA15487FD28501B3FA91@niddkch1.niddk.nih.gov> Dear Readers- I would like to design PCR primers for members of a multigene family. Thus, I would like the primers to be specific for the intended gene and not amplify other members of the family nor, ideally, other genes not in the family. Is one of the biopython modules capable of doing this or do you know of other software (perhaps web-based) that can do this. Many thanks for your help. Sincerely, Tim Fritz Dr. Timothy A. Fritz NIH/NIDDK 9000 Rockville Pike/MSC 8029 Bldg 50 Rm 4120 Bethesda, MD 20892 tim.fritz@nih.gov From katel at worldpath.net Fri Jun 27 18:44:26 2003 From: katel at worldpath.net (katel@worldpath.net) Date: Fri Jun 27 17:44:23 2003 Subject: [BioPython] emai.l test - ignore Message-ID: <410-220036527214426723@M2W058.mail2web.com> -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . From sb26 at orient-sky.com Sat Jun 28 11:25:01 2003 From: sb26 at orient-sky.com (=?iso-2022-jp?B?GyRCPlo1ck0tIzUyLyM5QGlLfDFfOl9CcCVTJTglTSU5GyhC?=) Date: Fri Jun 27 21:21:44 2003 Subject: [BioPython] =?iso-2022-jp?b?GyRCTCQ+NUJ6OS05cCF2IzUyLyM5QGkbKEI=?= =?iso-2022-jp?b?GyRCS3wxXzx9Rn4+WjVyJCskaSMzMi8xXyRYMGxKYiEhGyhC?= =?iso-2022-jp?b?GyRCISEhIRsoQg==?= Message-ID: <200306280125.h5S1P1o13693@sb88.com> ??????????????????????? ?????????????????? 03-5458-8163?????? ?????? ?????????????????????????????? ??????http://sb77.com/deny.htm???????????? ?????????????????????????????????? ???????????????????????? ???????????????????????????????? ???????????????????????????? ??????????????????????????? ??? ??????????????????????????? ? ????????????????????????????? ????????????????????????????????? ??????????????????????????????? ????? ????????????????????{????????????} ??? ????????????????????????????????? ???????????????????????????????? ???????????? ??????????????????????????????????? ???????????? ?????????????????????????????????? ??????????????? ?????????????????????????????????? ????????????? ?????????????????????????????FAX??? ?????????????? ?????????????????????????????????????? ?? ???????????????????????????????? ?? ? ???????????????? ???????? ???????????????????????????? ?????????????????????????????????? ??????????????????????? ??????????????????? ???????????????????? ??????????????????????? ????? ? ???????????????????????????3???? ?????????????????????????????????? ?????????????????? ?????????????????????????????? ??????? ???????????????????????????????? ??????? ? http://sb88.com/ ????????????? ? ???????????????????????????????? ???????? ??????????????????????????????? ???? ?????????????????????? ??????????????????????????????????? ? ???????????????????????????? ?????? ?--?--?--?--?--?--???????--?--?--?--?--?--?