
    Xf                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d Z e j        de            G d de          Z	 G d	 d
e	          Z
 G d de	          ZdS )    N)ABC)abstractmethod)UndefinedSequenceErrorc                     | j         }| j        }| j        ||         }t          |          }dt          j        j        |          d}||fS )Nz&amp;;)startendobjectordhtmlentitiescodepoint2name)errorr   r	   	character	codepointentitys         2lib/python3.11/site-packages/Bio/Blast/_writers.py_html_entity_replacer   	   sO    KE
)CU3Y'III?T]1)<???F3;    htmlentityreplacec                   :   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zd Zed             Zed             Z ed             Z!ed             Z"ed              Z#ed!             Z$ed"             Z%ed#             Z&ed$             Z'ed%             Z(ed&             Z)ed'             Z*ed(             Z+ed)             Z,d* Z-d+ Z.d, Z/d- Z0ed.             Z1ed/             Z2ed0             Z3ed1             Z4ed2             Z5ed3             Z6ed4             Z7ed5             Z8ed6             Z9ed7             Z:ed8             Z;ed9             Z<ed:             Z=d; Z>d< Z?ed=             Z@ed>             ZAed?             ZBed@             ZCedA             ZDedB             ZEedC             ZFedD             ZGedE             ZHedF             ZIedG             ZJedH             ZKedI             ZLedJ             ZMedK             ZNedL             ZOedM             ZPedN             ZQedO             ZRedP             ZSedQ             ZTedR             ZUedS             ZVedT             ZWedU             ZXdVS )WBaseXMLWriterz XML Writer, abstract base class.c                     || _         dS )zInit the stuff.N)stream)selfr   s     r   __init__zBaseXMLWriter.__init__   s    r   c                    | j         }|j        }|| _        |                                  |                                  |                                  |                     |                                           |                     |j	                                                   t          j        |j                                      dd          }|                     |           |                     |j                                                   	 |j        }|                     |j                                                   |                     |j                                                   |                     t-          |                     	 t/          |j                  }|                     |           n # t4          $ r Y nw xY w# t6          $ r Y nw xY w|                     |j                   |                     |          }	 |j        }|                                   | !                    |           | "                                 n# t6          $ r Y nw xY w| #                                 |S )zWrite the records.ASCIIr   )$r   program_program_write_xml_declaration_write_definition_start_blastoutput_write_programencode_write_versionversionr   escape	reference_write_reference	_write_dbdbquery_write_query_idid_write_query_defdescription_write_query_lenlenbytesseq_write_query_seqr   AttributeError_write_paramsparam_write_recordsmbstat_start_mbstat_write_statistics_end_mbstat_end_blastoutput)	r   recordsr   r   r)   r-   	query_seqcountr;   s	            r   writezBaseXMLWriter.write   so   /##%%%   !!!GNN,,---GO2244555K 12299'CVWW	i(((wz((**+++	1ME   !2!2333!!%"3":":"<"<===!!#e**---1!%),,	 %%i0000 *     	 	 	D	 	7=)))##G,,	^F    ""6***  	 	 	D	 	s6   G G   
GG
GGI 
I"!I"c                 :    | j                             d           d S )Ns   <?xml version="1.0"?>
r   rC   r   s    r   r!   z$BaseXMLWriter._write_xml_declarationD       455555r   c                     |                                   | j                            d           |                    d          }|'|                     |                                           |                     |d                    |                    d          }||                     |           |                    d          }||                     |           |                    d          }|| 	                    |           |                    d          }|| 
                    |           |                    d          }||                     |           |                    d	          }|'|                     |                                           |                    d
          }|'|                     |                                           |                    d          }|'|                     |                                           |                    d          }||                     |           |                    d          }||                     |           |                    d          }||                     |           |                    d          }|'|                     |                                           | j                            d           |                                  d S )Ns       <Parameters>
matrixexpectincludezsc-matchzsc-mismatchzgap-openz
gap-extendfilterpatternzentrez-querycbszquery-gencodez
db-gencodezbl2seq-modes       </Parameters>
)_start_paramr   rC   get_write_parameters_matrixr%   _write_parameters_expect_write_parameters_include_write_parameters_sc_match_write_parameters_sc_mismatch_write_parameters_gap_open_write_parameters_gap_extend_write_parameters_filter_write_parameters_pattern_write_parameters_entrez_query_write_parameters_cbs_write_parameters_query_gencode_write_parameters_db_gencode_write_parameters_bl2seq_mode
_end_param)r   r9   values      r   r8   zBaseXMLWriter._write_paramsG   s   /000		(##))%,,..999%%eHo666		)$$**5111		*%%++E222		-((..u555		*%%++E222		,''--e444		(##))%,,..999		)$$**5<<>>:::		.))//???		%  &&u---		/**00777		,''--e444		-((..u||~~>>>0111r   c                     d}|                                   |D ]}|                     |           |dz  }|                                  |S )Nr      )_start_iterations_write_record_end_iterations)r   r@   rB   records       r   r:   zBaseXMLWriter._write_recordsu   s^        	 	Fv&&&QJEEr   c                 j   | j         }|                                  	 |j        }|                     |           n# t          $ r Y nw xY w|j        }|d }nt          |j                  }|                     |j	        
                                           |                     |j        
                                           |                     |           |j        D ]'}|j        dk    r|                     |j                   (|                                  |D ]}|                     ||           |                                  	 |j        }|                                  |                     |           |                                  n# t          $ r Y nw xY w|                                  d S )Nmasking)r   _start_iterationnum_write_iteration_numr7   r-   r3   r5   _write_iteration_query_idr/   r%   _write_iteration_query_defr1   _write_iteration_query_lenfeaturestype_write_iteration_query_maskinglocation_start_iteration_hits
_write_hit_end_iteration_hitsstat_start_iteration_statr=   _end_iteration_stat_end_iteration)	r   rf   r   rj   r-   query_lengthfeaturehitrv   s	            r   rd   zBaseXMLWriter._write_record~   s   	+*C %%c****  	 	 	D	 =LLuy>>L**58??+<+<===++E,=,D,D,F,FGGG++L999 > J J<9,,778HIII""$$$ 	/ 	/COOC....  """	';D &&(((""4((($$&&&&  	 	 	D	 	s!   : 
AA
F 
FFc                 f   | j         }| j        }|j        }t          |j                  }|                                  |                     |j                   	 |j        }| 	                                 |D ]#}| 
                                 |                     |j                                                   |                     |j                                                   |                     |j                                                   |j                            d          }||                     |           |j                            d          }	|	'|                     |	                                           |                                  %|                                  n# t0          $ r |                     |j                                                   |                     |j                                                   |                     |j                                                   Y nw xY w|                     |           |                                  |D ]}
|                     |
||           |                                  |                                  d S )Ntaxidsciname)r   r    targetr3   r5   _start_iteration_hit_write_hit_numrj   targets_start_hit_targets_start_hitdescr_write_hit_idr/   r%   _write_hit_accessionname_write_hit_defr1   annotationsrP   _write_hit_taxid_write_hit_sciname_end_hitdescr_end_hit_targetsr7   _write_hit_len_start_hit_hsps
_write_hsp_end_hit_hsps_end_iteration_hit)r   r|   rz   r   r   r   target_lengthr   r~   r   hsps              r   rt   zBaseXMLWriter._write_hit   s   -FJ!!###CG$$$	$kG ##%%%! % %$$&&&""69#3#3#5#5666))&+*<*<*>*>???##F$6$=$=$?$?@@@*..w77$))%000 ,00;;&++GNN,<,<===""$$$$!!####%  	< 	< 	<vy//11222 2 9 9 ; ;<<<%%fk&8&8&:&:;;;;;	<& 	M*** 	> 	>COOC}====!!!!!s   F0 0BI Ic                 >	   | j         }| j        }|j        }|j        }|j        }|d d df         \  }	}
|d d df         \  }}|dv r|	|k    rd}|	dz  }	nd}|dz  }n|dv r|	dz  }	d}n|dv r|j        d         }|j        d         }|                    d          r$|                    d	          sJ |d
d         }d}nd}|	                    d          \  }}|	                    d          \  }	}t          |	          }	t          |          }|	dz
  }|}|dk    r	|dz  dz   }n||z
  dz  dz
  }|dv r|
|k    r|
dz  }
d}n|dz  }d}n|dv r|
dz  }
d}n|dv r|j        d         }|j        d         }|                    d          r$|                    d	          sJ |d
d         }d}nd}|	                    d          \  }}|	                    d          \  }
}t          |
          }
t          |          }|
dz
  }|}|dk    r	|dz  dz   }n||z
  dz  dz
  }|d         }|d         }t          |          }|j        }|d         }|d         }|d         } |                    d          }!|                    d          }"|d         }#|                                  |                     |j                   |                     t%          |                                                     |                     |j                   |                     t%          |                                                     |                     |
           |                     |           |                     |	           |                     |           |                     |           |                     |           |                     |            |!|                     |!           |"|                     |"           |                      |           | !                    |                                           | "                    |                                           | #                    |#                                           | $                                 d S )Nr   )blastn	megablastrb   )blastpblastxrpsblast)tblastntblastxcoded_byzcomplement()   :z..   )r   r   r   )r   r   z	bit scoreevalueidentitypositivegapsmidline)%r   r    r-   r   coordinatesro   
qualifiers
startswithendswithsplitintr3   r   rP   
_start_hsp_write_hsp_numrj   _write_hsp_bit_scorestrr%   _write_hsp_scorescore_write_hsp_evalue_write_hsp_query_from_write_hsp_query_to_write_hsp_hit_from_write_hsp_hit_to_write_hsp_query_frame_write_hsp_hit_frame_write_hsp_identity_write_hsp_positive_write_hsp_gaps_write_hsp_align_len_write_hsp_qseq_write_hsp_hseq_write_hsp_midline_end_hsp)$r   r   rz   r   r   r   r-   r   r   hit_from
query_fromhit_toquery_to	hit_framer{   r   strandhit_idhit_from_to	hit_starthit_endquery_framequery_idquery_from_toquery_start	query_endhseqqseq	align_lenr   	bit_scorer   r   r   r   r   s$                                       r   r   zBaseXMLWriter._write_hsp   s   -	o*111a40*&qqq"u----6!!	A	!888MHII...oa(G)*5H""=11 ((-----#BrE?"*.."5"5FK*0066Hf8}}H[[F 1IG||%MA-		$}4:Q>	---X%%a
A 999!OJKK---nQ'G)*5H""=11 ((-----#BrE?&.nnS&9&9#Hm#0#6#6t#<#< JZJ8}}H$q.K I||)Ao1(<72=A1v1vII	o,	X&z*??:..v&&i(CG$$$!!#i.."7"7"9"9:::ci(((s6{{1133444"":...  ***  ***v&&&##K000!!),,,  ***$$X...  &&&!!),,,T[[]]+++T[[]]+++ 0 0111r   c                 &   | j                             d           |                     |d                    |                     |d                    |                     |d                    |                     t          |d                                                              |                     |d                    | 	                    |d                    | 
                    |d                    | j                             d	           d S )
Ns       <Statistics>
zdb-numzdb-lenzhsp-lenz	eff-spacekappalambdaentropys       </Statistics>
)r   rC   _write_statistics_db_num_write_statistics_db_len_write_statistics_hsp_len_write_statistics_eff_spacer   r%   _write_statistics_kappa_write_statistics_lambda_write_statistics_entropy)r   rv   s     r   r=   zBaseXMLWriter._write_statistics%  s    /000%%d8n555%%d8n555&&tI777((T+->)?)?)F)F)H)HIII$$T']333%%d8n555&&tI777011111r   c                     d S N rF   s    r   r"   zBaseXMLWriter._write_definition0      r   c                     d S r   r   rF   s    r   r#   z BaseXMLWriter._start_blastoutput3      r   c                     d S r   r   rF   s    r   r?   zBaseXMLWriter._end_blastoutput7  r   r   c                     d S r   r   r   r   s     r   r$   zBaseXMLWriter._write_program;  r   r   c                     d S r   r   r   r'   s     r   r&   zBaseXMLWriter._write_version?  r   r   c                     d S r   r   r   r)   s     r   r*   zBaseXMLWriter._write_referenceC  r   r   c                     d S r   r   r   r,   s     r   r+   zBaseXMLWriter._write_dbG  r   r   c                     d S r   r   rF   s    r   rO   zBaseXMLWriter._start_paramK  r   r   c                     d S r   r   rF   s    r   r_   zBaseXMLWriter._end_paramO  r   r   c                     d S r   r   rF   s    r   rc   zBaseXMLWriter._start_iterationsS  r   r   c                     d S r   r   rF   s    r   re   zBaseXMLWriter._end_iterationsW  r   r   c                     d S r   r   rF   s    r   ri   zBaseXMLWriter._start_iteration[  r   r   c                     d S r   r   rF   s    r   ry   zBaseXMLWriter._end_iteration_  r   r   c                     d S r   r   r   r   s     r   rl   z'BaseXMLWriter._write_iteration_query_idc  r   r   c                     d S r   r   r   	query_defs     r   rm   z(BaseXMLWriter._write_iteration_query_defg  r   r   c                     d S r   r   r   	query_lens     r   rn   z(BaseXMLWriter._write_iteration_query_lenk  r   r   c                     d S r   r   r   rr   s     r   rq   z,BaseXMLWriter._write_iteration_query_maskingo  r   r   c                     d S r   r   rF   s    r   rs   z#BaseXMLWriter._start_iteration_hitsr  r   r   c                     d S r   r   rF   s    r   ru   z!BaseXMLWriter._end_iteration_hitsv  r   r   c                     d S r   r   rF   s    r   rw   z#BaseXMLWriter._start_iteration_statz  r   r   c                     d S r   r   rF   s    r   rx   z!BaseXMLWriter._end_iteration_stat~  r   r   c                     d S r   r   r   r`   s     r   rQ   z&BaseXMLWriter._write_parameters_matrix  r   r   c                     d S r   r   r  s     r   rR   z&BaseXMLWriter._write_parameters_expect  r   r   c                     d S r   r   r  s     r   rS   z'BaseXMLWriter._write_parameters_include  r   r   c                     d S r   r   r  s     r   rT   z(BaseXMLWriter._write_parameters_sc_match  r   r   c                     d S r   r   r  s     r   rU   z+BaseXMLWriter._write_parameters_sc_mismatch  r   r   c                     d S r   r   r  s     r   rV   z(BaseXMLWriter._write_parameters_gap_open  r   r   c                     d S r   r   r  s     r   rW   z*BaseXMLWriter._write_parameters_gap_extend  r   r   c                     d S r   r   r  s     r   rX   z&BaseXMLWriter._write_parameters_filter  r   r   c                     d S r   r   r  s     r   rY   z'BaseXMLWriter._write_parameters_pattern  r   r   c                     d S r   r   r  s     r   rZ   z,BaseXMLWriter._write_parameters_entrez_query  r   r   c                     d S r   r   r  s     r   r[   z#BaseXMLWriter._write_parameters_cbs  r   r   c                     d S r   r   r  s     r   r\   z-BaseXMLWriter._write_parameters_query_gencode  r   r   c                     d S r   r   r  s     r   r]   z*BaseXMLWriter._write_parameters_db_gencode  r   r   c                     d S r   r   r  s     r   r^   z+BaseXMLWriter._write_parameters_bl2seq_mode  r   r   c                     d S r   r   r   db_nums     r   r   z&BaseXMLWriter._write_statistics_db_num  r   r   c                     d S r   r   r   db_lens     r   r   z&BaseXMLWriter._write_statistics_db_len  r   r   c                     d S r   r   r   hsp_lens     r   r   z'BaseXMLWriter._write_statistics_hsp_len  r   r   c                     d S r   r   r  s     r   r   z)BaseXMLWriter._write_statistics_eff_space  r   r   c                     d S r   r   r  s     r   r   z%BaseXMLWriter._write_statistics_kappa  r   r   c                     d S r   r   r  s     r   r   z&BaseXMLWriter._write_statistics_lambda  r   r   c                     d S r   r   r  s     r   r   z'BaseXMLWriter._write_statistics_entropy  r   r   c                     d S r   r   rF   s    r   r   z"BaseXMLWriter._start_iteration_hit  r   r   c                     d S r   r   rF   s    r   r   z BaseXMLWriter._end_iteration_hit  r   r   c                     d S r   r   r   rj   s     r   r   zBaseXMLWriter._write_hit_num  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hit_id  r   r   c                     d S r   r   r   hit_defs     r   r   zBaseXMLWriter._write_hit_def  r   r   c                     d S r   r   r   hit_accessions     r   r   z"BaseXMLWriter._write_hit_accession  r   r   c                     d S r   r   r   r~   s     r   r   zBaseXMLWriter._write_hit_taxid  r   r   c                     d S r   r   r   r   s     r   r   z BaseXMLWriter._write_hit_sciname  r   r   c                     d S r   r   r   
hit_lengths     r   r   zBaseXMLWriter._write_hit_len  r   r   c                     d S r   r   rF   s    r   r   zBaseXMLWriter._start_hit_hsps  r   r   c                     d S r   r   rF   s    r   r   zBaseXMLWriter._end_hit_hsps  r   r   c                     d S r   r   rF   s    r   r   zBaseXMLWriter._start_hsp  r   r   c                     d S r   r   rF   s    r   r   zBaseXMLWriter._end_hsp   r   r   c                     d S r   r   r%  s     r   r   zBaseXMLWriter._write_hsp_num  r   r   c                     d S r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_bit_score  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_score  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_evalue  r   r   c                     d S r   r   r   r   s     r   r   z#BaseXMLWriter._write_hsp_query_from  r   r   c                     d S r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_query_to  r   r   c                     d S r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_hit_from  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_hit_to   r   r   c                     d S r   r   rE  s     r   _write_hsp_pattern_fromz%BaseXMLWriter._write_hsp_pattern_from$  r   r   c                     d S r   r   rG  s     r   _write_hsp_pattern_toz#BaseXMLWriter._write_hsp_pattern_to(  r   r   c                     d S r   r   r   r   s     r   r   z$BaseXMLWriter._write_hsp_query_frame,  r   r   c                     d S r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_hit_frame0  r   r   c                     d S r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_identity4  r   r   c                     d S r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_positive8  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_gaps<  r   r   c                     d S r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_align_len@  r   r   c                     d S r   r   r   densitys     r   _write_hsp_densityz BaseXMLWriter._write_hsp_densityD  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_qseqH  r   r   c                     d S r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_hseqL  r   r   c                     d S r   r   r   r   s     r   r   z BaseXMLWriter._write_hsp_midlineP  r   r   N)Y__name__
__module____qualname____doc__r   rC   r!   r8   r:   rd   rt   r   r=   r"   r   r#   r?   r$   r&   r*   r+   rO   r_   rc   re   ri   ry   rl   rm   rn   rq   rs   ru   rw   rx   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  rK  r   r   r   r   r   r   r[  r   r   r   r   r   r   r   r      s2       **  & & &P6 6 6, , ,\       D!" !" !"F` ` `D	2 	2 	2     ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^     ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^           ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^       ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^  r   r   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdMS )N	XMLWriterzXML Writer.c                 :    | j                             d           d S )Nst   <!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">
rE   rF   s    r   r"   zXMLWriter._write_definitionX  +    	
 	
 	
 	
 	
r   c                 :    | j                             d           d S )Ns   <BlastOutput>
rE   rF   s    r   r#   zXMLWriter._start_blastoutput_      ,-----r   c                 :    | j                             d           d S )Ns   </BlastOutput>
rE   rF   s    r   r?   zXMLWriter._end_blastoutputb  s    -.....r   c                 @    | j                             d|z             d S )Ns.   <BlastOutput_program>%b</BlastOutput_program>
rE   r   s     r   r$   zXMLWriter._write_programe  $    LwVWWWWWr   c                 @    | j                             d|z             d S )Ns.   <BlastOutput_version>%b</BlastOutput_version>
rE   r   s     r   r&   zXMLWriter._write_versionh  rn  r   c                 @    | j                             d|z             d S )Ns2   <BlastOutput_reference>%b</BlastOutput_reference>
rE   r   s     r   r*   zXMLWriter._write_referencek  .    BYN	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns$   <BlastOutput_db>%b</BlastOutput_db>
rE   r   s     r   r+   zXMLWriter._write_dbp  s$    BRGHHHHHr   c                 @    | j                             d|z             d S )Ns0   <BlastOutput_query-ID>%b</BlastOutput_query-ID>
rE   r   s     r   r.   zXMLWriter._write_query_ids  s.    @8K	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns2   <BlastOutput_query-def>%b</BlastOutput_query-def>
rE   r   s     r   r0   zXMLWriter._write_query_defx  rq  r   c                 @    | j                             d|z             d S )Ns2   <BlastOutput_query-len>%d</BlastOutput_query-len>
rE   r   s     r   r2   zXMLWriter._write_query_len}  rq  r   c                 @    | j                             d|z             d S )Ns2   <BlastOutput_query-seq>%b</BlastOutput_query-seq>
rE   )r   rA   s     r   r6   zXMLWriter._write_query_seq  rq  r   c                 :    | j                             d           d S )Ns     <BlastOutput_param>
rE   rF   s    r   rO   zXMLWriter._start_param  rG   r   c                 :    | j                             d           d S )Ns     </BlastOutput_param>
rE   rF   s    r   r_   zXMLWriter._end_param      566666r   c                 :    | j                             d           d S )Ns   <BlastOutput_iterations>
rE   rF   s    r   rc   zXMLWriter._start_iterations  s    788888r   c                 :    | j                             d           d S )Ns   </BlastOutput_iterations>
rE   rF   s    r   re   zXMLWriter._end_iterations  s    899999r   c                 :    | j                             d           d S )Ns     <BlastOutput_mbstat>
rE   rF   s    r   r<   zXMLWriter._start_mbstat  ry  r   c                 :    | j                             d           d S )Ns     </BlastOutput_mbstat>
rE   rF   s    r   r>   zXMLWriter._end_mbstat  s    677777r   c                 :    | j                             d           d S )Ns   <Iteration>
rE   rF   s    r   ri   zXMLWriter._start_iteration  s    *+++++r   c                 :    | j                             d           d S )Ns   </Iteration>
rE   rF   s    r   ry   zXMLWriter._end_iteration      +,,,,,r   c                 @    | j                             d|z             d S )Ns.     <Iteration_iter-num>%d</Iteration_iter-num>
rE   r%  s     r   rk   zXMLWriter._write_iteration_num  s$    LsRSSSSSr   c                 @    | j                             d|z             d S )Ns,   <Iteration_query-ID>%b</Iteration_query-ID>
rE   r   s     r   rl   z#XMLWriter._write_iteration_query_id  s$    JXUVVVVVr   c                 @    | j                             d|z             d S )Ns.   <Iteration_query-def>%b</Iteration_query-def>
rE   r   s     r   rm   z$XMLWriter._write_iteration_query_def  .    >J	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns.   <Iteration_query-len>%d</Iteration_query-len>
rE   r   s     r   rn   z$XMLWriter._write_iteration_query_len  r  r   c                 :    | j                             d           d S )Ns   <Iteration_hits>
rE   rF   s    r   rs   zXMLWriter._start_iteration_hits  s    /00000r   c                 :    | j                             d           d S )Ns   </Iteration_hits>
rE   rF   s    r   ru   zXMLWriter._end_iteration_hits  s    011111r   c                 :    | j                             d           d S )Ns     <Iteration_stat>
rE   rF   s    r   rw   zXMLWriter._start_iteration_stat  s    122222r   c                 :    | j                             d           d S )Ns     </Iteration_stat>
rE   rF   s    r   rx   zXMLWriter._end_iteration_stat  s    233333r   c                 @    | j                             d|z             d S )Ns0         <Parameters_matrix>%b</Parameters_matrix>
rE   r  s     r   rQ   z"XMLWriter._write_parameters_matrix  %    NQVVWWWWWr   c                 @    | j                             d|z             d S )Ns0         <Parameters_expect>%g</Parameters_expect>
rE   r  s     r   rR   z"XMLWriter._write_parameters_expect  r  r   c                 @    | j                             d|z             d S )Ns2         <Parameters_include>%g</Parameters_include>
rE   r  s     r   rS   z#XMLWriter._write_parameters_include  .    BUJ	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns5          <Parameters_sc-match>%d</Parameters_sc-match>
rE   r  s     r   rT   z$XMLWriter._write_parameters_sc_match  .    EM	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns;          <Parameters_sc-mismatch>%d</Parameters_sc-mismatch>
rE   r  s     r   rU   z'XMLWriter._write_parameters_sc_mismatch  s.    KeS	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns5          <Parameters_gap-open>%d</Parameters_gap-open>
rE   r  s     r   rV   z$XMLWriter._write_parameters_gap_open  r  r   c                 @    | j                             d|z             d S )Ns9          <Parameters_gap-extend>%d</Parameters_gap-extend>
rE   r  s     r   rW   z&XMLWriter._write_parameters_gap_extend  s.    IEQ	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns1          <Parameters_filter>%b</Parameters_filter>
rE   r  s     r   rX   z"XMLWriter._write_parameters_filter  s%    ORWWXXXXXr   c                 @    | j                             d|z             d S )Ns3          <Parameters_pattern>%b</Parameters_pattern>
rE   r  s     r   rY   z#XMLWriter._write_parameters_pattern  s.    CeK	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns=          <Parameters_entrez-query>%b</Parameters_entrez-query>
rE   r  s     r   rZ   z(XMLWriter._write_parameters_entrez_query  s/    MPUU	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns0         <Statistics_db-num>%d</Statistics_db-num>
rE   r  s     r   r   z"XMLWriter._write_statistics_db_num  %    NQWWXXXXXr   c                 @    | j                             d|z             d S )Ns0         <Statistics_db-len>%d</Statistics_db-len>
rE   r  s     r   r   z"XMLWriter._write_statistics_db_len  r  r   c                 @    | j                             d|z             d S )Ns2         <Statistics_hsp-len>%d</Statistics_hsp-len>
rE   r  s     r   r   z#XMLWriter._write_statistics_hsp_len  s.    BWL	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns6         <Statistics_eff-space>%s</Statistics_eff-space>
rE   r  s     r   r   z%XMLWriter._write_statistics_eff_space  s.    FN	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns.         <Statistics_kappa>%r</Statistics_kappa>
rE   r  s     r   r   z!XMLWriter._write_statistics_kappa  s$    LuTUUUUUr   c                 @    | j                             d|z             d S )Ns0         <Statistics_lambda>%r</Statistics_lambda>
rE   r  s     r   r   z"XMLWriter._write_statistics_lambda  r  r   c                 @    | j                             d|z             d S )Ns2         <Statistics_entropy>%r</Statistics_entropy>
rE   r  s     r   r   z#XMLWriter._write_statistics_entropy  r  r   c                 :    | j                             d           d S )Ns   <Hit>
rE   rF   s    r   r   zXMLWriter._start_iteration_hit  s    *%%%%%r   c                 :    | j                             d           d S )Ns   </Hit>
rE   rF   s    r   r   zXMLWriter._end_iteration_hit  s    +&&&&&r   c                 @    | j                             d|z             d S )Ns     <Hit_num>%d</Hit_num>
rE   r%  s     r   r   zXMLWriter._write_hit_num  s$    6<=====r   c                 @    | j                             d|z             d S )Ns     <Hit_id>%b</Hit_id>
rE   r'  s     r   r   zXMLWriter._write_hit_id  s$    4v=>>>>>r   c                 @    | j                             d|z             d S )Ns     <Hit_def>%b</Hit_def>
rE   r)  s     r   r   zXMLWriter._write_hit_def  s$    6@AAAAAr   c                 @    | j                             d|z             d S )Ns$     <Hit_accession>%b</Hit_accession>
rE   r,  s     r   r   zXMLWriter._write_hit_accession  s$    B]RSSSSSr   c                 @    | j                             d|z             d S )Ns     <Hit_len>%d</Hit_len>
rE   r3  s     r   r   zXMLWriter._write_hit_len  s$    6CDDDDDr   c                 :    | j                             d           d S )Ns     <Hit_hsps>
rE   rF   s    r   r   zXMLWriter._start_hit_hsps  r  r   c                 :    | j                             d           d S )Ns     </Hit_hsps>
rE   rF   s    r   r   zXMLWriter._end_hit_hsps  rk  r   c                 :    | j                             d           d S )Ns
       <Hsp>
rE   rF   s    r   r   zXMLWriter._start_hsp  s    .)))))r   c                 :    | j                             d           d S )Ns       </Hsp>
rE   rF   s    r   r   zXMLWriter._end_hsp   s    /*****r   c                 @    | j                             d|z             d S )Ns       <Hsp_num>%d</Hsp_num>
rE   r%  s     r   r   zXMLWriter._write_hsp_num#  s$    83>?????r   c                 @    | j                             d|z             d S )Ns&       <Hsp_bit-score>%b</Hsp_bit-score>
rE   r;  s     r   r   zXMLWriter._write_hsp_bit_score&  s$    DyPQQQQQr   c                 @    | j                             d|z             d S )Ns       <Hsp_score>%d</Hsp_score>
rE   r=  s     r   r   zXMLWriter._write_hsp_score)  s$    <uDEEEEEr   c                 @    | j                             d|z             d S )Ns        <Hsp_evalue>%b</Hsp_evalue>
rE   r?  s     r   r   zXMLWriter._write_hsp_evalue,  s$    >GHHHHHr   c                 @    | j                             d|z             d S )Ns)        <Hsp_query-from>%d</Hsp_query-from>
rE   rA  s     r   r   zXMLWriter._write_hsp_query_from/  $    G*TUUUUUr   c                 @    | j                             d|z             d S )Ns%        <Hsp_query-to>%d</Hsp_query-to>
rE   rC  s     r   r   zXMLWriter._write_hsp_query_to2  $    ChNOOOOOr   c                 @    | j                             d|z             d S )Ns%        <Hsp_hit-from>%d</Hsp_hit-from>
rE   rE  s     r   r   zXMLWriter._write_hsp_hit_from5  r  r   c                 @    | j                             d|z             d S )Ns!        <Hsp_hit-to>%d</Hsp_hit-to>
rE   rG  s     r   r   zXMLWriter._write_hsp_hit_to8  s$    ?&HIIIIIr   c                 @    | j                             d|z             d S )Ns-        <Hsp_pattern-from>%d</Hsp_pattern-from>
rE   r   pattern_froms     r   rI  z!XMLWriter._write_hsp_pattern_from;  s.    =L	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns)        <Hsp_pattern-to>%d</Hsp_pattern-to>
rE   r   
pattern_tos     r   rK  zXMLWriter._write_hsp_pattern_to@  r  r   c                 @    | j                             d|z             d S )Ns+        <Hsp_query-frame>%d</Hsp_query-frame>
rE   rM  s     r   r   z XMLWriter._write_hsp_query_frameC  s$    IKWXXXXXr   c                 @    | j                             d|z             d S )Ns'        <Hsp_hit-frame>%d</Hsp_hit-frame>
rE   rO  s     r   r   zXMLWriter._write_hsp_hit_frameF  $    E	QRRRRRr   c                 @    | j                             d|z             d S )Ns%        <Hsp_identity>%d</Hsp_identity>
rE   rQ  s     r   r   zXMLWriter._write_hsp_identityI  r  r   c                 @    | j                             d|z             d S )Ns%        <Hsp_positive>%d</Hsp_positive>
rE   rS  s     r   r   zXMLWriter._write_hsp_positiveL  r  r   c                 @    | j                             d|z             d S )Ns        <Hsp_gaps>%d</Hsp_gaps>
rE   rU  s     r   r   zXMLWriter._write_hsp_gapsO  s$    ;dBCCCCCr   c                 @    | j                             d|z             d S )Ns'        <Hsp_align-len>%d</Hsp_align-len>
rE   rW  s     r   r   zXMLWriter._write_hsp_align_lenR  r  r   c                 @    | j                             d|z             d S )Ns#        <Hsp_density>%d</Hsp_density>
rE   rY  s     r   r[  zXMLWriter._write_hsp_densityU  s$    AGKLLLLLr   c                 @    | j                             d|z             d S )Ns         <Hsp_qseq>%b</Hsp_qseq>
rE   r]  s     r   r   zXMLWriter._write_hsp_qseqX  $    <tCDDDDDr   c                 @    | j                             d|z             d S )Ns         <Hsp_hseq>%b</Hsp_hseq>
rE   r_  s     r   r   zXMLWriter._write_hsp_hseq[  r  r   c                 @    | j                             d|z             d S )Ns$         <Hsp_midline>%b</Hsp_midline>
rE   ra  s     r   r   zXMLWriter._write_hsp_midline^  s$    BWLMMMMMr   N)Orb  rc  rd  re  r"   r#   r?   r$   r&   r*   r+   r.   r0   r2   r6   rO   r_   rc   re   r<   r>   ri   ry   rk   rl   rm   rn   rs   ru   rw   rx   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  rK  r   r   r   r   r   r   r[  r   r   r   r   r   r   rg  rg  U  s       
 
 
. . ./ / /X X XX X X
 
 

I I I
 
 


 
 


 
 


 
 

6 6 67 7 79 9 9: : :7 7 78 8 8, , ,- - -T T TW W W
 
 


 
 

1 1 12 2 23 3 34 4 4X X XX X X
 
 


 
 


 
 


 
 


 
 

Y Y Y
 
 


 
 

Y Y YY Y Y
 
 


 
 

V V VX X X
 
 

& & &' ' '> > >? ? ?B B BT T TE E E- - -. . .* * *+ + +@ @ @R R RF F FI I IV V VP P PP P PJ J J
 
 

V V VY Y YS S SP P PP P PD D DS S SM M ME E EE E EN N N N Nr   rg  c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdPS )Q
XML2WriterzXML2 Writer.c                 :    | j                             d           d S )Ns  <BlastXML2
    xmlns="http://www.ncbi.nlm.nih.gov"
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
    xs:schemaLocation="http://www.ncbi.nlm.nih.gov http://www.ncbi.nlm.nih.gov/data_specs/schema_alt/NCBI_BlastOutput2.xsd"
>
<BlastOutput2>
  <report>
    <Report>
rE   rF   s    r   r#   zXML2Writer._start_blastoutpute  s+    		
 	
 	
 	
 	
r   c                 :    | j                             d           d S )Ns7       </Report>
  </report>
</BlastOutput2>
</BlastXML2>
rE   rF   s    r   r?   zXML2Writer._end_blastoutputs  s+    	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns         <program>%b</program>
rE   r   s     r   r$   zXML2Writer._write_program}  $    :WDEEEEEr   c                 @    | j                             d|z             d S )Ns         <version>%b</version>
rE   r   s     r   r&   zXML2Writer._write_version  r  r   c                 @    | j                             d|z             d S )Ns          <reference>%b</reference>
rE   r   s     r   r*   zXML2Writer._write_reference  s$    >JKKKKKr   c                 @    | j                             d|z             d S )Nsf         <search-target>
        <Target>
          <db>%b</db>
        </Target>
      </search-target>
rE   r   s     r   r+   zXML2Writer._write_db  s5     		
 		
 		
 		
 		
r   c                 :    | j                             d           d S )Ns$         <params>
        <Parameters>
rE   rF   s    r   rO   zXML2Writer._start_param  +    	
 	
 	
 	
 	
r   c                 :    | j                             d           d S )Ns&           </Parameters>
      </params>
rE   rF   s    r   r_   zXML2Writer._end_param  r  r   c                 :    | j                             d           d S )Ns"         <results>
        <Results>
rE   rF   s    r   rc   zXML2Writer._start_iterations  r  r   c                 :    | j                             d           d S )Ns$           </Results>
      </results>
rE   rF   s    r   re   zXML2Writer._end_iterations  r  r   c                 :    | j                             d           d S )Ns          <search>
        <Search>
rE   rF   s    r   ri   zXML2Writer._start_iteration  r  r   c                 :    | j                             d           d S )Ns"           </Search>
      </search>
rE   rF   s    r   ry   zXML2Writer._end_iteration  r  r   c                 @    | j                             d|z             d S )Ns&                 <query-id>%b</query-id>
rE   r   s     r   rl   z$XML2Writer._write_iteration_query_id  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns,                 <query-title>%b</query-title>
rE   r   s     r   rm   z%XML2Writer._write_iteration_query_def  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns(                 <query-len>%d</query-len>
rE   r   s     r   rn   z%XML2Writer._write_iteration_query_len  r  r   c                 ^    | j                             d|j        dz   |j        fz             d S )Ns                 <query-masking>
                <Range>
                  <from>%d</from>
                  <to>%d</to>
                </Range>
              </query-masking>
rb   )r   rC   r   r	   r  s     r   rq   z)XML2Writer._write_iteration_query_masking  sC     ~!8<01
	
 
	
 
	
 
	
 
	
r   c                 :    | j                             d           d S )Ns                 <hits>
rE   rF   s    r   rs   z XML2Writer._start_iteration_hits  ri  r   c                 :    | j                             d           d S )Ns                 </hits>
rE   rF   s    r   ru   zXML2Writer._end_iteration_hits  ri  r   c                 :    | j                             d           d S )Ns                 <stat>
rE   rF   s    r   rw   z XML2Writer._start_iteration_stat  ri  r   c                 :    | j                             d           d S )Ns                 </stat>
rE   rF   s    r   rx   zXML2Writer._end_iteration_stat  ri  r   c                 @    | j                             d|z             d S )Ns             <matrix>%b</matrix>
rE   r  s     r   rQ   z#XML2Writer._write_parameters_matrix  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns             <expect>%g</expect>
rE   r  s     r   rR   z#XML2Writer._write_parameters_expect  r  r   c                 @    | j                             d|z             d S )Ns              <include>%g</include>
rE   r  s     r   rS   z$XML2Writer._write_parameters_include  r  r   c                 @    | j                             d|z             d S )Ns"             <sc-match>%d</sc-match>
rE   r  s     r   rT   z%XML2Writer._write_parameters_sc_match  r  r   c                 @    | j                             d|z             d S )Ns(             <sc-mismatch>%d</sc-mismatch>
rE   r  s     r   rU   z(XML2Writer._write_parameters_sc_mismatch#  r  r   c                 @    | j                             d|z             d S )Ns"             <gap-open>%d</gap-open>
rE   r  s     r   rV   z%XML2Writer._write_parameters_gap_open+  r  r   c                 @    | j                             d|z             d S )Ns&             <gap-extend>%d</gap-extend>
rE   r  s     r   rW   z'XML2Writer._write_parameters_gap_extend3  r  r   c                 @    | j                             d|z             d S )Ns             <filter>%b</filter>
rE   r  s     r   rX   z#XML2Writer._write_parameters_filter;  r  r   c                 @    | j                             d|z             d S )Ns              <pattern>%b</pattern>
rE   r  s     r   rY   z$XML2Writer._write_parameters_patternC  r  r   c                 @    | j                             d|z             d S )Ns*             <entrez-query>%b</entrez-query>
rE   r  s     r   rZ   z)XML2Writer._write_parameters_entrez_queryK  r  r   c                 @    | j                             d|z             d S )Ns             <cbs>%d</cbs>
rE   r  s     r   r[   z XML2Writer._write_parameters_cbsS  r  r   c                 @    | j                             d|z             d S )Ns,             <query-gencode>%d</query-gencode>
rE   r  s     r   r\   z*XML2Writer._write_parameters_query_gencode[  r  r   c                 @    | j                             d|z             d S )Ns&             <db-gencode>%d</db-gencode>
rE   r  s     r   r]   z'XML2Writer._write_parameters_db_gencodec  r  r   c                 @    | j                             d|z             d S )Ns(             <bl2seq-mode>%b</bl2seq-mode>
rE   r  s     r   r^   z(XML2Writer._write_parameters_bl2seq_modek  r  r   c                 @    | j                             d|z             d S )Ns&                     <db-num>%d</db-num>
rE   r  s     r   r   z#XML2Writer._write_statistics_db_nums  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns&                     <db-len>%d</db-len>
rE   r  s     r   r   z#XML2Writer._write_statistics_db_len{  r  r   c                 @    | j                             d|z             d S )Ns(                     <hsp-len>%d</hsp-len>
rE   r  s     r   r   z$XML2Writer._write_statistics_hsp_len  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns,                     <eff-space>%s</eff-space>
rE   r  s     r   r   z&XML2Writer._write_statistics_eff_space  r  r   c                 @    | j                             d|z             d S )Ns$                     <kappa>%r</kappa>
rE   r  s     r   r   z"XML2Writer._write_statistics_kappa  r  r   c                 @    | j                             d|z             d S )Ns&                     <lambda>%r</lambda>
rE   r  s     r   r   z#XML2Writer._write_statistics_lambda  r  r   c                 @    | j                             d|z             d S )Ns(                     <entropy>%r</entropy>
rE   r  s     r   r   z$XML2Writer._write_statistics_entropy  r  r   c                 :    | j                             d           d S )Ns                   <Hit>
rE   rF   s    r   r   zXML2Writer._start_iteration_hit  ri  r   c                 :    | j                             d           d S )Ns                   </Hit>
rE   rF   s    r   r   zXML2Writer._end_iteration_hit  ri  r   c                 @    | j                             d|z             d S )Ns                      <num>%d</num>
rE   r%  s     r   r   zXML2Writer._write_hit_num  5     	
 	
 	
 	
 	
r   c                 :    | j                             d           d S )Ns                      <description>
rE   rF   s    r   r   zXML2Writer._start_hit_targets  ri  r   c                 :    | j                             d           d S )Ns!                     </description>
rE   rF   s    r   r   zXML2Writer._end_hit_targets  ri  r   c                 :    | j                             d           d S )Ns                       <HitDescr>
rE   rF   s    r   r   zXML2Writer._start_hitdescr  ri  r   c                 :    | j                             d           d S )Ns                        </HitDescr>
rE   rF   s    r   r   zXML2Writer._end_hitdescr  ri  r   c                 @    | j                             d|z             d S )Ns"                         <id>%b</id>
rE   r'  s     r   r   zXML2Writer._write_hit_id  r  r   c                 @    | j                             d|z             d S )Ns(                         <title>%b</title>
rE   r)  s     r   r   zXML2Writer._write_hit_def  r  r   c                 @    | j                             d|z             d S )Ns0                         <accession>%b</accession>
rE   r,  s     r   r   zXML2Writer._write_hit_accession  s5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns                      <len>%d</len>
rE   r3  s     r   r   zXML2Writer._write_hit_len  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns(                         <taxid>%d</taxid>
rE   r/  s     r   r   zXML2Writer._write_hit_taxid  r  r   c                 @    | j                             d|z             d S )Ns,                         <sciname>%b</sciname>
rE   r1  s     r   r   zXML2Writer._write_hit_sciname  r  r   c                 :    | j                             d           d S )Ns                     <hsps>
rE   rF   s    r   r   zXML2Writer._start_hit_hsps  ri  r   c                 :    | j                             d           d S )Ns                     </hsps>
rE   rF   s    r   r   zXML2Writer._end_hit_hsps  ri  r   c                 :    | j                             d           d S )Ns                       <Hsp>
rE   rF   s    r   r   zXML2Writer._start_hsp  ri  r   c                 :    | j                             d           d S )Ns                       </Hsp>
rE   rF   s    r   r   zXML2Writer._end_hsp"  ri  r   c                 @    | j                             d|z             d S )Ns$                         <num>%d</num>
rE   r%  s     r   r   zXML2Writer._write_hsp_num)  r  r   c                 @    | j                             d|z             d S )Ns0                         <bit-score>%b</bit-score>
rE   r;  s     r   r   zXML2Writer._write_hsp_bit_score1  r  r   c                 @    | j                             d|z             d S )Ns(                         <score>%d</score>
rE   r=  s     r   r   zXML2Writer._write_hsp_score9  r  r   c                 @    | j                             d|z             d S )Ns*                         <evalue>%b</evalue>
rE   r?  s     r   r   zXML2Writer._write_hsp_evalueA  r  r   c                 @    | j                             d|z             d S )Ns2                         <query-from>%d</query-from>
rE   rA  s     r   r   z XML2Writer._write_hsp_query_fromI  r  r   c                 @    | j                             d|z             d S )Ns.                         <query-to>%d</query-to>
rE   rC  s     r   r   zXML2Writer._write_hsp_query_toQ  r  r   c                 @    | j                             d|z             d S )Ns.                         <hit-from>%d</hit-from>
rE   rE  s     r   r   zXML2Writer._write_hsp_hit_fromY  r  r   c                 @    | j                             d|z             d S )Ns*                         <hit-to>%d</hit-to>
rE   rG  s     r   r   zXML2Writer._write_hsp_hit_toa  r  r   c                 @    | j                             d|z             d S )Ns6                         <pattern-from>%d</pattern-from>
rE   r  s     r   rI  z"XML2Writer._write_hsp_pattern_fromi  s5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns2                         <pattern-to>%d</pattern-to>
rE   r  s     r   rK  z XML2Writer._write_hsp_pattern_toq  r  r   c                 @    | j                             d|z             d S )Ns4                         <query-frame>%d</query-frame>
rE   rM  s     r   r   z!XML2Writer._write_hsp_query_framey  s5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns0                         <hit-frame>%d</hit-frame>
rE   rO  s     r   r   zXML2Writer._write_hsp_hit_frame  r  r   c                 @    | j                             d|z             d S )Ns.                         <identity>%d</identity>
rE   rQ  s     r   r   zXML2Writer._write_hsp_identity  r  r   c                 @    | j                             d|z             d S )Ns.                         <positive>%d</positive>
rE   rS  s     r   r   zXML2Writer._write_hsp_positive  r  r   c                 @    | j                             d|z             d S )Ns&                         <gaps>%d</gaps>
rE   rU  s     r   r   zXML2Writer._write_hsp_gaps  5     	
 	
 	
 	
 	
r   c                 @    | j                             d|z             d S )Ns0                         <align-len>%d</align-len>
rE   rW  s     r   r   zXML2Writer._write_hsp_align_len  r  r   c                 @    | j                             d|z             d S )Ns,                         <density>%d</density>
rE   rY  s     r   r[  zXML2Writer._write_hsp_density  r  r   c                 @    | j                             d|z             d S )Ns&                         <qseq>%b</qseq>
rE   r]  s     r   r   zXML2Writer._write_hsp_qseq  r  r   c                 @    | j                             d|z             d S )Ns&                         <hseq>%b</hseq>
rE   r_  s     r   r   zXML2Writer._write_hsp_hseq  r  r   c                 @    | j                             d|z             d S )Ns,                         <midline>%b</midline>
rE   ra  s     r   r   zXML2Writer._write_hsp_midline  r  r   N)Rrb  rc  rd  re  r#   r?   r$   r&   r*   r+   rO   r_   rc   re   ri   ry   rl   rm   rn   rq   rs   ru   rw   rx   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  rK  r   r   r   r   r   r   r[  r   r   r   r   r   r   r  r  b  s       
 
 

 
 
F F FF F FL L L

 

 


 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 
 
 
r   r  )codecsr   abcr   r   Bio.Seqr   r   register_errorr   rg  r  r   r   r   <module>r$     s!                 * * * * * *    )+? @ @ @} } } } }C } } }@JN JN JN JN JN JN JN JNZe	
 e	
 e	
 e	
 e	
 e	
 e	
 e	
 e	
 e	
r   