*ë
 Ô;c       s    d  Z    d k Z  d k Z  d k Z  d k Z  d k Z  d k Z  d k Z  d k l	 Z	   d k
 l Z ! d k T" d k Z $ d e f d „  ƒ  YZ 2 d f  d „  ƒ  YZ *d	 d	 d
 d d e d e d e e e d d d d d d d d d d d d e d „ Z Ùd e i f d „  ƒ  YZ ýd „  Z d „  Z /e e e e e e e e e e e e d „ Z pd „  Z d S(   st  NCBIWWW.py

This module provides code to work with the WWW version of BLAST
provided by the NCBI.
http://www.ncbi.nlm.nih.gov/BLAST/

Classes:
BlastParser   Parses output from WWW blast.
_Scanner      Scans output from NCBI's BLAST WWW server.

Functions:
blast         Do a BLAST search against the WWW page.
blasturl      Do a BLAST search against the stable blasturl.

N(   s   File(   s   NCBI(   s   *s   BlastParserc      s&   $ d  Z  ' ( d „  Z - d „  Z RS(   s7   Parses WWW BLAST data into a Record.Blast object.

    c    s1   ( ) * t  ƒ  |  _ + t t i ƒ  ƒ |  _ d S(   s   __init__(self)N(   s   _Scanners   selfs   _scanners   SGMLStrippingConsumers   NCBIStandalones   _BlastConsumers	   _consumer(   s   self(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   __init__( s   c    s0   - . / |  i i | |  i ƒ 0 |  i i Sd S(   s   parse(self, handle)N(   s   selfs   _scanners   feeds   handles	   _consumers   data(   s   selfs   handle(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   parse- s   (   s   __doc__s   __init__s   parse(    (    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   BlastParser$ s   	s   _Scannerc      sÚ   2 d  Z  ; < d „  Z k d „  Z § d „  Z ½ d „  Z Æ d „  Z Ê d „  Z î d „  Z d „  Z )d	 „  Z	 9d
 „  Z
 Zd „  Z ld „  Z rd „  Z …d „  Z œd „  Z «d „  Z Òd „  Z RS(   s·   Scan BLAST output from NCBI's web server at:
    http://www.ncbi.nlm.nih.gov/BLAST/
    
    Tested with BLAST v2.0.10

    Methods:
    feed     Feed data into the scanner.
    
    c    sÞ   < C Z t  | t i ƒ o [ | } n ] t i | ƒ } _ t | | i ` d t i	 d ƒ ƒb |  i | | ƒ c |  i | | ƒ d |  i | | ƒ e |  i | | ƒ h x( h | i ƒ  o i t | | i ƒ q² Wd S(   sð   S.feed(handle, consumer)

        Feed in a BLAST report for scanning.  handle is a file-like
        object that contains the BLAST report.  consumer is a Consumer
        object that will receive events as the report is scanned.

        s   has_res
   <b>.?BLASTN(   s
   isinstances   handles   Files
   UndoHandles   uhandles   read_and_call_untils   consumers   noevents   res   compiles   selfs   _scan_headers   _scan_roundss   _scan_database_reports   _scan_parameterss   peeklines   read_and_call(   s   selfs   handles   consumers   uhandle(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   feed< s    c    s   k  | i ƒ   t | | i d d ƒ‘ t | | i d d ƒ” t | | i d d ƒ• t | | i ƒ ˜ t	 | | i d d ƒš t	 | | i d d ƒŸ | i
 ƒ  i d ƒ d	 j o*   |  i | | ƒ ¡ |  i | | ƒ n' £ |  i | | ƒ ¤ |  i | | ƒ ¥ | i ƒ  d  S(
   Ns   containss   BLASTs   blanki   s   starts   <p>s   RIDs   Query=i    (   s   consumers   start_headers   read_and_calls   uhandles   versions   read_and_call_whiles   noevents   read_and_call_untils	   references   attempt_read_and_calls   peeklines   finds   selfs   _scan_query_infos   _scan_database_infos
   end_header(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_headerk s   "c    sŽ  § ¨ t  | | i d d ƒ© t | | i d d ƒª t | | i d d ƒ« t | | i d d ƒ¬ t | | i ­ d d ƒ® t  | | i ¯ d d	 ƒoz ° xp ° d oe ± | i ƒ  } ² t | ƒ o ³ Pn% ´ t	 i
 | d
 ƒ d j o µ Pn ¶ | i | i ƒ  ƒ q¨ Wn · t  | | i ¸ d d ƒo ¹ t | | i d d ƒn º t  | | i d d ƒ» t | | i d d ƒd  S(   Ns   starts   <p>s   containss   Databases	   sequencess   blanki   s   problems or questionss	   BLASTFORMs   Query=i    s   Taxonomy reportss   <BR>s   <PRE>(   s   attempt_read_and_calls   uhandles   consumers   noevents   read_and_calls   database_infos   peeklines   lines   is_blank_lines   strings   finds   readlines   read_and_call_while(   s   selfs   uhandles   consumers   line(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_database_info§ s*    
c    s‹   ½ ¿ t  | | i d d ƒÀ t | | i d d ƒÁ t | | i d d ƒÂ t | | i d d ƒo Ã t | | i d d ƒn d  S(   Ns   containss   Query=s   blanki   s   starts   <PRE>(   s   read_and_calls   uhandles   consumers
   query_infos   read_and_call_untils   read_and_call_whiles   noevents   attempt_read_and_call(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_query_info½ s
   c    s-   Æ Ç |  i | | ƒ È |  i | | ƒ d  S(   N(   s   selfs   _scan_descriptionss   uhandles   consumers   _scan_alignments(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_roundsÆ s   c    s  Ê Ë | i ƒ  Ñ t | | i d d ƒoM Ô t | | i Õ d d ƒÖ t | | i d d ƒ× | i ƒ  Ù d  Sn à t	 | | i á d d ƒâ t	 | | i d d ƒå t | | i
 d d d d	 ƒè t | | i é d d
 ƒo ê t | | i d d ƒn ì | i ƒ  d  S(   Ns   containss   Score     Es   No significant similaritys   blanki   s   starts   Sequences producingi    s   <as   </PRE>(   s   consumers   start_descriptionss   attempt_read_and_calls   uhandles   description_headers   no_hitss   read_and_call_whiles   noevents   end_descriptionss   read_and_calls   description(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_descriptionsÊ s   c    s*  î  t  | ƒ } t  | ƒ } | i | ƒ | i | ƒ d } } t i | d ƒ d j o d } nn | d  d j o 	nS 
| d  d j o d } n2 | d  d	 j o d } n t	 d
 | ‚ | o |  i | | ƒ n" | o |  i | | ƒ n d  S(   Ni    s
   Alignmentsi   i
   s
     Databasei	   s	   blast_tmpi   s   <PRE>s#   Cannot resolve location at line:
%s(   s   safe_readlines   uhandles   line1s   line2s   savelines   is_pairwises   is_masterslaves   strings   finds   SyntaxErrors   selfs   _scan_pairwise_alignmentss   consumers   _scan_masterslave_alignment(   s   selfs   uhandles   consumers   line1s   line2s   is_pairwises   is_masterslave(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_alignmentsî s$   

c    s´   x§ d oœ t  | ƒ } t  | ƒ } | i | ƒ | i | ƒ | d  d j o Pn $| d  d j o %|  i | | ƒ n '|  i | | ƒ q	 Wd  S(   Ni   i
   s
     Databasei   s   Query:(	   s   safe_readlines   uhandles   line1s   line2s   savelines   selfs$   _scan_abbreviated_pairwise_alignments   consumers   _scan_one_pairwise_alignment(   s   selfs   uhandles   consumers   line1s   line2(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_pairwise_alignmentss    
c    sg   )2| i ƒ  3| i ƒ  4t | | i d d ƒ5|  i | | ƒ 6| i ƒ  7| i	 ƒ  d  S(   Ns   starts   <PRE>(
   s   consumers   start_alignments	   start_hsps   read_and_calls   uhandles   noevents   selfs   _scan_hsp_alignments   end_hsps   end_alignment(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys$   _scan_abbreviated_pairwise_alignment)s   	c    sù   9D| i ƒ  Et | | i d d ƒFt | | i d d ƒG|  i | | ƒ Jx Jd o‚ Pt | ƒ } Qt | ƒ } R| i | ƒ S| i | ƒ T| d  d j o | d  d j o UPn V|  i | | ƒ q[ WX| i ƒ  d  S(   Ns   containss
   Alignmentss   starts   <PRE>i   i   s    Score(   s   consumers   start_alignments   attempt_read_and_calls   uhandles   noevents   read_and_calls   selfs   _scan_alignment_headers   safe_readlines   line1s   line2s   savelines	   _scan_hsps   end_alignment(   s   selfs   uhandles   consumers   line1s   line2(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_one_pairwise_alignment9s    
%c    sÍ   Z^xƒ ^d ox _t  | ƒ } `t i | ƒ d  d j o a| i | ƒ bPn! ct | ƒ o et d ‚ n f| i	 | ƒ q	 Wht
 | | i id d ƒo jt | | i d d ƒn d  S(   Ni   i   s   Length =s*   I missed the Length in an alignment headers   starts
             s   blank(   s   safe_readlines   uhandles   lines   strings   lstrips   consumers   lengths   is_blank_lines   SyntaxErrors   titles   attempt_read_and_calls   noevents   read_and_call(   s   selfs   uhandles   consumers   line(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_alignment_headerZs    
c    sG   lm| i ƒ  n|  i | | ƒ o|  i | | ƒ p| i ƒ  d  S(   N(   s   consumers	   start_hsps   selfs   _scan_hsp_headers   uhandles   _scan_hsp_alignments   end_hsp(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys	   _scan_hspls   c    s   r|t  | | i d d ƒ}t | | i d d ƒ~t | | i d d ƒ€t  | | i d d ƒ‚t  | | i d d ƒƒt | | i d d ƒd  S(	   Ns   starts   <PRE>s    Scores    Identitiess    Strands    Frames   blanki   (	   s   attempt_read_and_calls   uhandles   consumers   noevents   read_and_calls   scores
   identitiess   strands   frame(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_hsp_headerrs   
c    s×   …‘x˜ ‘d o “t  | | i d d ƒ”t | | i d d ƒ•t | | i d d ƒ–t | | i d d ƒ—t  | | i d d ƒo ˜Pn q	 W™t | | i d d ƒšt | | i d d ƒd  S(   Ni   s   starts        s   Querys   Sbjcts   blanks   </PRE>(	   s   attempt_read_and_calls   uhandles   consumers   noevents   read_and_calls   querys   aligns   sbjcts   read_and_call_while(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_hsp_alignment…s    
c    s×   œ| i ƒ  žt | | i d d ƒŸx~ Ÿd os  t | ƒ } ¡t | ƒ o ¢| i | ƒ n= £| d  d j o ¤| i | ƒ ¥Pn §| i | ƒ q/ W¨t	 | | i d d ƒ©| i
 ƒ  d  S(   Ns   starts   <PRE>i   i   s   </PRE>s   blank(   s   consumers   start_alignments   read_and_calls   uhandles   noevents   safe_readlines   lines   is_blank_lines	   multaligns   read_and_call_whiles   end_alignment(   s   selfs   uhandles   consumers   line(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_masterslave_alignmentœs    
c    sg  «º| i ƒ  ¼t | | i d d ƒ½t | | i d d ƒ¾t | | i d d ƒ¿t | | i Àd d ƒÁt | | i Âd d ƒÃt | | i d d ƒÅt | | i d d ƒÆt | | i	 ƒ Çt | | i d	 d
 ƒÊt
 | | i d d ƒÌt
 | | i d d ƒo Ít | | i ƒ n Ît | | i d	 d
 ƒÐ| i ƒ  d  S(   Ns   starts   <PRE>s
     Databases
       Posteds     Number of letterss     Number of sequencess     s   Lambdas   blanki   s   Gapped(   s   consumers   start_database_reports   read_and_calls   uhandles   noevents   databases   posted_dates   num_letters_in_databases   num_sequences_in_databases	   ka_paramss   attempt_read_and_calls   gappeds   ka_params_gaps   read_and_call_whiles   end_database_report(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_database_report«s"   c    s0  Òí| i ƒ  ït | | i d d ƒñt | | i d d ƒòt | | i ód d ƒôt | | i õd d ƒöt | | i	 ÷d d ƒøt | | i
 ùd d ƒût | | i üd d ƒÿt | | i  d d	 ƒoX t | | i d d
 ƒt | | i d d ƒt | | i d d ƒn t | | i 	d d ƒ
t | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i d d ƒt | | i  d d ƒ!t | | i d d ƒ"t | | i d d ƒ$t | | i d d ƒ%t | | i d d ƒ&t | | i d d ƒ(| i  ƒ  d  S(    Ns   starts   Matrixs   Gaps   Number of Hitss   Number of Sequencess   Number of extensionss   Number of successfuls   Number of sequencess   Number of HSP's betters   Number of HSP's successfullys   Number of HSP's thats   Number of HSP's gappeds   length of querys   length of databases   effective HSPs   effective length of querys   effective length of databases   effective search spaces   effective search space useds
   frameshifts   Ts   As   X1s   X2s   X3s   S1s   S2s   blanki   s   </PRE>s   </form>(!   s   consumers   start_parameterss   read_and_calls   uhandles   matrixs   attempt_read_and_calls   gap_penaltiess   num_hitss   num_sequencess   num_extendss   num_good_extendss   num_seqs_better_es   hsps_no_gaps   hsps_prelim_gappeds   hsps_prelim_gap_attempteds   hsps_gappeds   query_lengths   database_lengths   effective_hsp_lengths   effective_query_lengths   effective_database_lengths   effective_search_spaces   effective_search_space_useds
   frameshifts	   thresholds   window_sizes   dropoff_1st_passs   gap_x_dropoffs   gap_x_dropoff_finals   gap_triggers   blast_cutoffs   noevents   end_parameters(   s   selfs   uhandles   consumer(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _scan_parametersÒs`   (   s   __doc__s   feeds   _scan_headers   _scan_database_infos   _scan_query_infos   _scan_roundss   _scan_descriptionss   _scan_alignmentss   _scan_pairwise_alignmentss$   _scan_abbreviated_pairwise_alignments   _scan_one_pairwise_alignments   _scan_alignment_headers	   _scan_hsps   _scan_hsp_headers   _scan_hsp_alignments   _scan_masterslave_alignments   _scan_database_reports   _scan_parameters(    (    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _Scanner2 s$   		/<	$(!'s    s   (none)s   Ls   10s   nos   ons   0.001s   1s	   alignments   htmls   100s   50s   Pairwises+   http://www.ncbi.nlm.nih.gov/blast/Blast.cgii   c )   sK  *gqh  |  d <| d <| d <| d <| d <| d <| d <| d <| d	 <|
 d
 <| d <| d <| d <| d <| d <| d <| d <| d <| d <| d <| d <| d <| d <| d <}" Šh  d d <d d <d d <d d <d d <} ‘|" d	 o! ’| i |" d d ƒ |" d	 <n ”h  }& •xH |" i ƒ  d  •r5 } –|" | t j	 o —t |" | ƒ |& | <n qhW™d! |& d" <šd# |& d$ <›d% |& d& <œd' |& d( <ž|  i  ƒ  d) j o Ÿd* |& d+ <nk  |  i  ƒ  d, j o ¡d- |& d+ <nD ¢|  i  ƒ  d. d/ d0 g j o £d1 |& d+ <n ¥t! d2 |  ƒ ‚ °t" i# | |& d3 d  ƒ}  ³| t j	 o2 ´|  i' ƒ  }% µ| |% ƒ ¶t) i* |% ƒ }  n ·t+ |  ƒ \ }( } ¸t. i/ | |( ƒ }( »t0 | i d4 d5 ƒ ƒ } ½t2 i2 ƒ  }# ¾xí ¾d6 oâ Àt2 i4 | ƒ Ät" i# |( | d3 d  ƒ}  Å| t j	 o2 Æ|  i' ƒ  }% Ç| |% ƒ Èt) i* |% ƒ }  n Ét5 |  ƒ \ }! }' }$ Êt. i/ | |' ƒ }' Ë|! o ÌPn Ît2 i2 ƒ  |# | d7 j o Ït: d8 | ‚ n q WÕ|$ i; d ƒ o Ö|$ d =n ×t" i# |' |$ d3 d  ƒSd9 S(:   sS  blast(program, database, query[, query_from][, query_to]
    [, entrez_query][, filter][, expect]
    [, word_size][, other_advanced][, cdd_search]
    [, composition_based_statistics][, matrix_name][, run_psiblast]
    [, i_thresh][, genetic_code][, show_overview][, ncbi_gi]
    [, format_object][, format_type][, descriptions][, alignments]
    [, alignment_view][, auto_format][, cgi][, timeout]) -> handle

    Blast against the NCBI Blast web page.  This uses the NCBI web
    page cgi script to BLAST, and returns a handle to the
    results. See:
    
    http://www.ncbi.nlm.nih.gov/blast/html/blastcgihelp.html
    
    for more descriptions about the options.

    Required Inputs:
    o program - The name of the blast program to run (ie. blastn, blastx...)
    o database - The database to search against (ie. nr, dbest...)
    o query - The input for the search, which NCBI tries to autodetermine
    the type of. Ideally, this would be a sequence in FASTA format.

    General Options:
    filter, expect, word_size, other_advanced

    Formatting Options:
    show_overview, ncbi_gi, format_object, format_type, descriptions,
    alignments, alignment_view, auto_format

    Protein specific options:
    cdd_search, composition_based_statistics, matrix_name, run_psiblast,
    i_thresh

    Translated specific options:
    genetic code
    
    s   PROGRAMs
   QUERY_FROMs   QUERY_TOs   DATABASEs   QUERYs   ENTREZ_QUERYs   FILTERs   EXPECTs	   WORD_SIZEs   OTHER_ADVANCEDs
   CDD_SEARCHs   COMPOSITION_BASED_STATISTICSs   MATRIX_NAMEs   RUN_PSIBLASTs   I_THRESHs   GENETIC_CODEs   SHOW_OVERVIEWs   NCBI_GIs   FORMAT_OBJECTs   FORMAT_TYPEs   DESCRIPTIONSs
   ALIGNMENTSs   ALIGNMENT_VIEWs   AUTO_FORMATi   s   blastpi   s   blastns   blastxs   tblastns   tblastxi    s   webs   CLIENTs   plains   SERVICEs   Puts   CMDs	   OneWindows   LAYOUTs   BLASTNs   Nucleotidess   PAGEs   BLASTPs   Proteinss   BLASTXs   TBLASTNs   TBLASTXs   Translationss   Unexpected program name %ss   gets   RTOEi   i   i<   s   timed out after %d minutesN(<   s   programs
   query_froms   query_tos   databases   querys   entrez_querys   filters   expects	   word_sizes   other_advanceds
   cdd_searchs   composition_based_statisticss   matrix_names   run_psiblasts   i_threshs   genetic_codes   show_overviews   ncbi_gis   format_objects   format_types   descriptionss
   alignmentss   alignment_views   auto_formats   paramss   default_word_sizess   gets	   variabless   keyss   ks   Nones   strs   uppers
   ValueErrors   NCBIs   _opens   cgis   handles	   output_fns   reads   resultss   Files   StringHandles   _parse_blast_ref_pages   ref_cgis
   ref_paramss   urlparses   urljoins   ints   refresh_delays   times   starts   sleeps   _parse_blast_results_pages   readys   results_cgis   results_paramss   timeouts   IOErrors   has_key()   s   programs   databases   querys
   query_froms   query_tos   entrez_querys   filters   expects	   word_sizes   ungapped_alignments   other_advanceds
   cdd_searchs   composition_based_statisticss   matrix_names   run_psiblasts   i_threshs   genetic_codes   show_overviews   ncbi_gis   format_objects   format_types   descriptionss
   alignmentss   alignment_views   auto_formats   cgis   timeouts	   output_fns   ks
   ref_paramss   refresh_delays   default_word_sizess   handles   readys   paramss   starts   results_paramss   resultss	   variabless   results_cgis   ref_cgi(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   blast*s^   =
á6!	 	 

s   _FormParserc      sJ   Ùd  Z  âãd „  Z çd „  Z ìd „  Z ïd „  Z öd „  Z RS(   s  Parse a form in an HTML page.

    Members:
    forms   List of forms in the page.
            Each form is a tuple of (action, params) where action
            is a string to the CGI script and params is a dict of
            keys and values to pass to the script.

    c    s8   ãät  i i |  ƒ åg  |  _ æd h  f |  _ d  S(   Ns    (   s   sgmllibs
   SGMLParsers   __init__s   selfs   formss   _current_form(   s   self(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   __init__ãs   c    sE   çé|  i | ƒ } ê| i d |  i d ƒ |  i d f |  _ d  S(   Ns   ACTIONi    i   (   s   selfs
   _attr2dicts
   attributess	   attr_dicts   gets   _current_form(   s   selfs
   attributess	   attr_dict(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys
   start_formçs   c    s/   ìí|  i i |  i ƒ îd h  f |  _ d  S(   Ns    (   s   selfs   formss   appends   _current_form(   s   self(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   end_formìs   c    sr   ïð|  i d } ñ|  i | ƒ } ò| i d ƒ o6 ô| i d | i d d ƒ ƒ } õ| | | d <n d  S(   Ni   s   NAMEs   VALUEs   CHECKEDs    (	   s   selfs   _current_forms   paramss
   _attr2dicts
   attributess	   attr_dicts   has_keys   gets   value(   s   selfs
   attributess   values	   attr_dicts   params(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   do_inputïs
   !c    sL   ö÷h  } øx/ | d ør" \ } } ù| | t i | ƒ <q Wú| Sd  S(   Ni    (   s	   attr_dicts
   attributess   names   values   strings   upper(   s   selfs
   attributess   values   names	   attr_dict(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys
   _attr2dictös
   	 (   s   __doc__s   __init__s
   start_forms   end_forms   do_inputs
   _attr2dict(    (    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _FormParserÙs   		c    sœ   ýþÿt  ƒ  }  | i |  i ƒ  ƒ t | i ƒ d j o t d ‚ n | i d \ } } | i
 d ƒ o t d ‚ n | | f Sd S(   s:   _parse_blast_ref_page(handle, base_cgi) -> cgi, parametersi   s#   Form broken in BLAST reference pagei    s   RIDs*   Error getting BLAST results: RID not foundN(   s   _FormParsers   parsers   feeds   handles   reads   lens   formss   SyntaxErrors   cgis   paramss   has_key(   s   handles   paramss   parsers   cgi(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _parse_blast_ref_pageýs   c    s¾   	
d t  f d „  ƒ  Y} "| ƒ  } #| i |  i ƒ  ƒ 't | i ƒ d j o (t d ‚ n )| i	 o *| i d \ } } n ,| i d \ } } -| i	 | | f Sd S(   s7   _parse_blast_results_page(handle) -> ready, cgi, paramss   _ResultsParserc      s   
d „  Z  d „  Z RS(   Nc    s#   t  i |  ƒ d |  _ d  S(   Ni    (   s   _FormParsers   __init__s   selfs   ready(   s   self(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   __init__s   c    sE   t  i | ƒ } t  i | d ƒ d j o d |  _ n d  S(   Ns   status=readyi    i   (   s   strings   lowers   comments   finds   selfs   ready(   s   selfs   comment(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   handle_comments   (   s   __init__s   handle_comment(    (    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _ResultsParser
s   i   s'   I expected 2 forms in the results page.i    i   N(   s   _FormParsers   _ResultsParsers   parsers   feeds   handles   reads   lens   formss   SyntaxErrors   readys   cgis   params(   s   handles   _ResultsParsers   paramss   parsers   cgi(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _parse_blast_results_pages   c    sž  /MNg  } O| i d |  ƒ P| i d | ƒ Rd | f d | f d | f d | f d | f d | f d	 |	 f d
 |
 f d | f d | f d | f d | f g } _xG | d _r: \ } } `| t j	 o a| i d | | f ƒ n q¸ Wc| i d ƒ d| i d ƒ ex0 e| o% f| i | d  ƒ g| d } qWit i | d ƒ } kt i ƒ  } lt | | ƒ m| i d ƒ n| Sd S(   s  blasturl(program, datalib, sequence[, ncbi_gi][, descriptions]
    [, alignments][, expect][, matrix][, gap_existence][, gap_extend]
    [, gapped][, filter][, html][, gcode]) -> handle

    Do a BLAST search using the stable URL provided by NCBI.
    program        BLASTP, BLASTN, BLASTX, TBLASTN, or TBLASTX.
    datalib        Which database to search against.
    sequence       The sequence to search.
    ncbi_gi        TRUE/FALSE whether to give 'gi' identifier.  Def FALSE.
    descriptions   Number of descriptions to show.  Def 100.
    alignments     Number of alignments to show.  Def 50.
    expect         An expect value cutoff.
    matrix         Specify an alt. matrix (PAM30, PAM70, BLOSUM80, BLOSUM45).
    gap_existence  Give a gap open penalty.
    gap_extend     Give a gap extension penalty.
    gapped         TRUE/FALSE for giving gapped alignments.  Def TRUE.
    filter         "none" turns off filtering.  Default uses 'seg' or 'dust'.
    html           TRUE/FALSE for html output.  Def FALSE.
    gcode          Specify an alternate genetic code for (T)BLASTX.

    This function does no checking of the validity of the parameters
    and passes the values to the server as is.  More help is available at:
    http://www.ncbi.nlm.nih.gov/BLAST/blast_overview.html
    
    s
   PROGRAM %ss
   DATALIB %ss   NCBI_GIs   DESCRIPTIONSs
   ALIGNMENTSs   EXPECTs   MATRIXs   GAP_EXISTENCEs
   GAP_EXTENDs   GAPPEDs   FILTERs   HTMLs   GCODEs   PATHi    s   %s %ss    s   BEGINi<   s   
N(   s   liness   appends   programs   datalibs   ncbi_gis   descriptionss
   alignmentss   expects   matrixs   gap_existences
   gap_extends   gappeds   filters   htmls   gcodes   paths
   parameterss   names   values   Nones   sequences   strings   joins   messages	   cStringIOs   StringIOs	   outhandles   _send_to_blasturls   seek(   s   programs   datalibs   sequences   ncbi_gis   descriptionss
   alignmentss   expects   matrixs   gap_existences
   gap_extends   gappeds   filters   htmls   gcodes   paths   values   liness
   parameterss   messages	   outhandles   name(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   blasturl/s(   	u " 
c    s  pwxt  i  t  i t  i ƒ } y| i d d f ƒ {| i d ƒ || i d ƒ }| i d ƒ ~| i d ƒ | i d t |  ƒ ƒ €| i d ƒ | i |  ƒ ƒxD ƒd	 o9 „| i d
 ƒ } …| o †Pn ‡| i | ƒ q· Wˆ| i ƒ  d S(   sÇ   _send_to_blasturl(query, outhandle)

    Send a BLAST request to the stable blasturl server at the NCBI.
    ftp://ncbi.nlm.nih.gov/blast/blasturl/
    The results are written to outhandle.
    
    s   www.ncbi.nlm.nih.goviP   s.   POST /cgi-bin/BLAST/nph-blast_report HTTP/1.0
s   User-Agent: BiopythonClient
s   Connection: Keep-Alive
s0   Content-type: application/x-www-form-urlencoded
s   Content-Length: %d
s   
i   i   N(   s   sockets   AF_INETs   SOCK_STREAMs   socks   connects   sends   lens   querys   recvs   datas	   outhandles   writes   close(   s   querys	   outhandles   datas   sock(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   _send_to_blasturlps"    
(   s   __doc__s   strings   times   res   sgmllibs   urlparses   sockets	   cStringIOs   Bios   Files   Bio.WWWs   NCBIs   Bio.ParserSupports   NCBIStandalones   AbstractParsers   BlastParsers   _Scanners   Nones   blasts
   SGMLParsers   _FormParsers   _parse_blast_ref_pages   _parse_blast_results_pages   blasturls   _send_to_blasturl(   s   sgmllibs   blasts   blasturls   strings   times   Files   _Scanners   _send_to_blasturls   res   urlparses   _parse_blast_results_pages   _parse_blast_ref_pages   _FormParsers   NCBIStandalones   NCBIs   sockets   BlastParsers	   cStringIO(    (    s;   /mit/seven/lib/python2.1/site-packages/Bio/Blast/NCBIWWW.pys   ? s(   
ÿ ùW¯$'0A