
    Ri                         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y)    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         J/home/agent/.friday_env/lib/python3.12/site-packages/Bio/Blast/_writers.py_html_entity_replacer   	   sU    KKE
))CU3'IIIT]]11)<=Q?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        ZXyV)WBaseXMLWriterz XML Writer, abstract base class.c                     || _         y)zInit the stuff.N)stream)selfr   s     r   __init__zBaseXMLWriter.__init__   s	    r   c                    | j                   }|j                  }|| _        | j                          | j	                          | j                          | j                  |j                                | j                  |j                  j                                t        j                  |j                        j                  dd      }| j                  |       | j                  |j                  j                                	 |j                   }| j#                  |j$                  j                                | j'                  |j(                  j                                | j+                  t-        |             	 t/        |j0                        }| j3                  |       | j9                  |j:                         | j=                  |      }	 |j>                  }| jA                          | jC                  |       | jE                          | jG                          |S # t4        $ r Y w xY w# t6        $ r Y w xY w# t6        $ r Y ;w xY w)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   s   //##% !GNN,-GOO2245KK 1 1299'CVW	i(wzz((*+	1MME   !23!!%"3"3":":"<=!!#e*-1!%)),	 %%i07==)##G,	^^F  ""6* *   		   		s6   H, ;H H; 	H)(H),	H87H8;	IIc                 :    | j                   j                  d       y )Ns   <?xml version="1.0"?>
r   rC   r   s    r   r!   z$BaseXMLWriter._write_xml_declarationD   s    45r   c                    | j                          |j                  d      }|| j                  |j                                | j	                  |d          |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j                  |j                                |j                  d	      }|| j                  |j                                |j                  d
      }|| j                  |j                                |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j                  |       |j                  d      }|| j!                  |j                                | j#                          y )Nmatrixexpectincludezsc-matchzsc-mismatchzgap-openz
gap-extendfilterpatternzentrez-querycbszquery-gencodez
db-gencodezbl2seq-mode)_start_param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   		(#))%,,.9%%eHo6		)$**51		*%++E2		-(..u5		*%++E2		,'--e4		(#))%,,.9		)$**5<<>:		.)//?		% &&u-		/*007		,'--e4		-(..u||~>r   c                     d}| j                          |D ]  }| j                  |       |dz  } | j                          |S )Nr      )_start_iterations_write_record_end_iterations)r   r@   rB   records       r   r:   zBaseXMLWriter._write_recordss   sL      	Fv&QJE	 	r   c                    | j                   }| j                  |       |j                  }|d }nt        |j                        }| j                  |j                  j                                |j                  }|dk7  r| j                  |j                                | j                  |       |j                  D ]-  }|j                  dk(  s| j                  |j                         / | j                          |D ]  }| j!                  ||        | j#                          	 |j$                  }| j'                          | j)                  |       | j+                          | j/                          y # t,        $ r Y w xY w)Nz<unknown description>masking)r   _start_iterationr-   r3   r5   _write_iteration_query_idr/   r%   r1   _write_iteration_query_def_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_statr7   _end_iteration)	r   re   r   r-   query_lengthr1   featurehitrs   s	            r   rc   zBaseXMLWriter._write_record|   sM   f%=Luyy>L**588??+<=++K55//0B0B0DE++L9 >> J<<9,778H8HIJ 	""$ 	/COOC.	/  "	';;D &&(""4($$&  		s   $E2 2	E>=E>c                    | j                   }| j                  }|j                  }t        |j                        }| j                          | j                  |j                         	 |j                  }| j                          |D ]  }| j                          | j                  |j                  j                                | j                  |j                  j                                | j!                  |j"                  j                                |j$                  j'                  d      }|| j)                  |       |j$                  j'                  d      }	|	| j+                  |	j                                | j-                           | j/                          | j3                  |       | j5                          |D ]  }
| j7                  |
||        | j9                          | j;                          y # t0        $ r~ | j                  |j                  j                                | j!                  |j"                  j                                | j                  |j                  j                                Y w xY w)Ntaxidsciname)r   r    targetr3   r5   _start_iteration_hit_write_hit_numnumtargets_start_hit_targets_start_hitdescr_write_hit_idr/   r%   _write_hit_accessionname_write_hit_defr1   annotationsrO   _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   ry   rw   r   r   r}   target_lengthr   r{   r|   hsps              r   rq   zBaseXMLWriter._write_hit   s   --FJJ!!#CGG$	$kkG ##%! %$$&""699#3#3#56))&++*<*<*>?##F$6$6$=$=$?@**..w7$))%0 ,,00;&++GNN,<=""$% !!#M* 	>COOC}=	>!1  	<vyy//12 2 2 9 9 ;<%%fkk&8&8&:;	<s   &G< <BJJc                 |   | j                   }| j                  }|j                  }|j                  }|j                  }|j
                  d   dkD  r|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   }|j                  d      r|j                  d	      sJ |d
d }d}nd}|j                  d      \  }}|j                  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   }|j                  d      r|j                  d	      sJ |d
d }d}nd}|j                  d      \  }}|j                  d      \  }
}t        |
      }
t        |      }|
dz
  }|}|dk(  r	|dz  dz   }n||z
  dz  dz
  }|d   }|d   }t        |      }nd}
d}d}	d}d}d}d }d }d }|j                  }|d   }|d   }|d   } |j                  d      }!|j                  d      }"|j                  d      }#| j                          | j!                  |j"                         | j%                  t'        |      j)                                | j+                  |j,                         | j/                  t'        |      j)                                | j1                  |
       | j3                  |       | j5                  |	       | j7                  |       | j9                  |       | j;                  |       | j=                  |        |!| j?                  |!       |"| jA                  |"       || jC                  |       | jE                  |j)                                | jG                  |j)                                |#| jI                  |#j)                                | jK                          y )Nra   r   )blastn	megablast)blastpblastxrpsblastpsiblast)tblastntblastxcoded_byzcomplement()   :z..   )r   r   r   r   )r   r    z	bit scoreevalueidentitypositivegapsmidline)&r   r    r-   r}   coordinatesshaperl   
qualifiers
startswithendswithsplitintr3   r   rO   
_start_hsp_write_hsp_numr   _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   rw   r   r   r   r-   r}   r   hit_from
query_fromhit_toquery_to	hit_framerx   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   --		ooQ!##.q!t#4 Hj*1b51FH11v% !IMH "IaKFHHA	22 //!,"--j9&&}5#,,S111'2HFF&.nnS&9##.#4#4T#: &x=V$qL	 R< )A 1I!(=!8B > BI11)!OJ"#KMH"$KIIa
11..+"--j9&&}5#,,S111'2HFF*2..*='-'4':':4'@$
H _
x=(1n$	R<"-/A"5K#,|#;r"AA"EKq6Dq6DD	I JHHFDDKIIoo,	X&z*??:.v&//),CGG$!!#i."7"7"9:cii(s6{1134"":.  *  *v&"''4 %%i0  *$$X.  & %%i0T[[]+T[[]+##GNN$45r   c                    | j                   j                  d       | j                  |d          | j                  |d          | j	                  |d          | j                  t        |d         j                                | j                  |d          | j                  |d          | j                  |d          | j                   j                  d	       y )
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   rs   s     r   r=   zBaseXMLWriter._write_statistics/  s    /0%%d8n5%%d8n5&&tI7((T+->)?)F)F)HI$$T']3%%d8n5&&tI701r   c                      y N rF   s    r   r"   zBaseXMLWriter._write_definition:      r   c                      y r   r   rF   s    r   r#   z BaseXMLWriter._start_blastoutput=      r   c                      y r   r   rF   s    r   r?   zBaseXMLWriter._end_blastoutputA  r   r   c                      y r   r   r   r   s     r   r$   zBaseXMLWriter._write_programE  r   r   c                      y r   r   r   r'   s     r   r&   zBaseXMLWriter._write_versionI  r   r   c                      y r   r   r   r)   s     r   r*   zBaseXMLWriter._write_referenceM  r   r   c                      y r   r   r   r,   s     r   r+   zBaseXMLWriter._write_dbQ  r   r   c                      y r   r   rF   s    r   rN   zBaseXMLWriter._start_paramU  r   r   c                      y r   r   rF   s    r   r^   zBaseXMLWriter._end_paramY  r   r   c                      y r   r   rF   s    r   rb   zBaseXMLWriter._start_iterations]  r   r   c                      y r   r   rF   s    r   rd   zBaseXMLWriter._end_iterationsa  r   r   c                      y r   r   rF   s    r   rh   zBaseXMLWriter._start_iteratione  r   r   c                      y r   r   rF   s    r   rv   zBaseXMLWriter._end_iterationi  r   r   c                      y r   r   r   r   s     r   ri   z'BaseXMLWriter._write_iteration_query_idm  r   r   c                      y r   r   r   	query_defs     r   rj   z(BaseXMLWriter._write_iteration_query_defq  r   r   c                      y r   r   r   	query_lens     r   rk   z(BaseXMLWriter._write_iteration_query_lenu  r   r   c                      y r   r   r   ro   s     r   rn   z,BaseXMLWriter._write_iteration_query_maskingy  r   r   c                      y r   r   rF   s    r   rp   z#BaseXMLWriter._start_iteration_hits|  r   r   c                      y r   r   rF   s    r   rr   z!BaseXMLWriter._end_iteration_hits  r   r   c                      y r   r   rF   s    r   rt   z#BaseXMLWriter._start_iteration_stat  r   r   c                      y r   r   rF   s    r   ru   z!BaseXMLWriter._end_iteration_stat  r   r   c                      y r   r   r   r_   s     r   rP   z&BaseXMLWriter._write_parameters_matrix  r   r   c                      y r   r   r  s     r   rQ   z&BaseXMLWriter._write_parameters_expect  r   r   c                      y r   r   r  s     r   rR   z'BaseXMLWriter._write_parameters_include  r   r   c                      y r   r   r  s     r   rS   z(BaseXMLWriter._write_parameters_sc_match  r   r   c                      y r   r   r  s     r   rT   z+BaseXMLWriter._write_parameters_sc_mismatch  r   r   c                      y r   r   r  s     r   rU   z(BaseXMLWriter._write_parameters_gap_open  r   r   c                      y r   r   r  s     r   rV   z*BaseXMLWriter._write_parameters_gap_extend  r   r   c                      y r   r   r  s     r   rW   z&BaseXMLWriter._write_parameters_filter  r   r   c                      y r   r   r  s     r   rX   z'BaseXMLWriter._write_parameters_pattern  r   r   c                      y r   r   r  s     r   rY   z,BaseXMLWriter._write_parameters_entrez_query  r   r   c                      y r   r   r  s     r   rZ   z#BaseXMLWriter._write_parameters_cbs  r   r   c                      y r   r   r  s     r   r[   z-BaseXMLWriter._write_parameters_query_gencode  r   r   c                      y r   r   r  s     r   r\   z*BaseXMLWriter._write_parameters_db_gencode  r   r   c                      y r   r   r  s     r   r]   z+BaseXMLWriter._write_parameters_bl2seq_mode  r   r   c                      y r   r   r   db_nums     r   r   z&BaseXMLWriter._write_statistics_db_num  r   r   c                      y r   r   r   db_lens     r   r   z&BaseXMLWriter._write_statistics_db_len  r   r   c                      y r   r   r   hsp_lens     r   r   z'BaseXMLWriter._write_statistics_hsp_len  r   r   c                      y r   r   r  s     r   r   z)BaseXMLWriter._write_statistics_eff_space  r   r   c                      y r   r   r  s     r   r   z%BaseXMLWriter._write_statistics_kappa  r   r   c                      y r   r   r  s     r   r   z&BaseXMLWriter._write_statistics_lambda  r   r   c                      y r   r   r  s     r   r   z'BaseXMLWriter._write_statistics_entropy  r   r   c                      y r   r   rF   s    r   r~   z"BaseXMLWriter._start_iteration_hit  r   r   c                      y r   r   rF   s    r   r   z BaseXMLWriter._end_iteration_hit  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hit_num  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hit_id  r   r   c                      y r   r   r   hit_defs     r   r   zBaseXMLWriter._write_hit_def  r   r   c                      y r   r   r   hit_accessions     r   r   z"BaseXMLWriter._write_hit_accession  r   r   c                      y r   r   r   r{   s     r   r   zBaseXMLWriter._write_hit_taxid  r   r   c                      y r   r   r   r|   s     r   r   z BaseXMLWriter._write_hit_sciname  r   r   c                      y r   r   r   
hit_lengths     r   r   zBaseXMLWriter._write_hit_len  r   r   c                      y r   r   rF   s    r   r   zBaseXMLWriter._start_hit_hsps  r   r   c                      y r   r   rF   s    r   r   zBaseXMLWriter._end_hit_hsps  r   r   c                      y r   r   rF   s    r   r   zBaseXMLWriter._start_hsp  r   r   c                      y r   r   rF   s    r   r   zBaseXMLWriter._end_hsp
  r   r   c                      y r   r   r&  s     r   r   zBaseXMLWriter._write_hsp_num  r   r   c                      y r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_bit_score  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_score  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_evalue  r   r   c                      y r   r   r   r   s     r   r   z#BaseXMLWriter._write_hsp_query_from  r   r   c                      y r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_query_to"  r   r   c                      y r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_hit_from&  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_hit_to*  r   r   c                      y r   r   rF  s     r   _write_hsp_pattern_fromz%BaseXMLWriter._write_hsp_pattern_from.  r   r   c                      y r   r   rH  s     r   _write_hsp_pattern_toz#BaseXMLWriter._write_hsp_pattern_to2  r   r   c                      y r   r   r   r   s     r   r   z$BaseXMLWriter._write_hsp_query_frame6  r   r   c                      y r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_hit_frame:  r   r   c                      y r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_identity>  r   r   c                      y r   r   r   r   s     r   r   z!BaseXMLWriter._write_hsp_positiveB  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_gapsF  r   r   c                      y r   r   r   r   s     r   r   z"BaseXMLWriter._write_hsp_align_lenJ  r   r   c                      y r   r   r   densitys     r   _write_hsp_densityz BaseXMLWriter._write_hsp_densityN  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_qseqR  r   r   c                      y r   r   r   r   s     r   r   zBaseXMLWriter._write_hsp_hseqV  r   r   c                      y r   r   r   r   s     r   r   z BaseXMLWriter._write_hsp_midlineZ  r   r   N)Y__name__
__module____qualname____doc__r   rC   r!   r8   r:   rc   rq   r   r=   r"   r   r#   r?   r$   r&   r*   r+   rN   r^   rb   rd   rh   rv   ri   rj   rk   rn   rp   rr   rt   ru   rP   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   rJ  rL  r   r   r   r   r   r   r\  r   r   r   r   r   r   r   r      s   *&P6*X<!"Fpd	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 ZNyM)N	XMLWriterzXML Writer.c                 :    | j                   j                  d       y )Nsu   <!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "https://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">
rE   rF   s    r   r"   zXMLWriter._write_definitionb      	
r   c                 :    | j                   j                  d       y )Ns   <BlastOutput>
rE   rF   s    r   r#   zXMLWriter._start_blastoutputi      ,-r   c                 :    | j                   j                  d       y )Ns   </BlastOutput>
rE   rF   s    r   r?   zXMLWriter._end_blastoutputl  s    -.r   c                 @    | j                   j                  d|z         y )Ns.   <BlastOutput_program>%b</BlastOutput_program>
rE   r   s     r   r$   zXMLWriter._write_programo      LwVWr   c                 @    | j                   j                  d|z         y )Ns.   <BlastOutput_version>%b</BlastOutput_version>
rE   r   s     r   r&   zXMLWriter._write_versionr  ro  r   c                 @    | j                   j                  d|z         y )Ns2   <BlastOutput_reference>%b</BlastOutput_reference>
rE   r   s     r   r*   zXMLWriter._write_referenceu      BYN	
r   c                 @    | j                   j                  d|z         y )Ns$   <BlastOutput_db>%b</BlastOutput_db>
rE   r   s     r   r+   zXMLWriter._write_dbz  s    BRGHr   c                 @    | j                   j                  d|z         y )Ns0   <BlastOutput_query-ID>%b</BlastOutput_query-ID>
rE   r   s     r   r.   zXMLWriter._write_query_id}  s    @8K	
r   c                 @    | j                   j                  d|z         y )Ns2   <BlastOutput_query-def>%b</BlastOutput_query-def>
rE   r   s     r   r0   zXMLWriter._write_query_def  rr  r   c                 @    | j                   j                  d|z         y )Ns2   <BlastOutput_query-len>%d</BlastOutput_query-len>
rE   r   s     r   r2   zXMLWriter._write_query_len  rr  r   c                 @    | j                   j                  d|z         y )Ns2   <BlastOutput_query-seq>%b</BlastOutput_query-seq>
rE   )r   rA   s     r   r6   zXMLWriter._write_query_seq  rr  r   c                 :    | j                   j                  d       y )Ns'     <BlastOutput_param>
    <Parameters>
rE   rF   s    r   rN   zXMLWriter._start_param      	
r   c                 :    | j                   j                  d       y )Ns)       </Parameters>
  </BlastOutput_param>
rE   rF   s    r   r^   zXMLWriter._end_param  ry  r   c                 :    | j                   j                  d       y )Ns   <BlastOutput_iterations>
rE   rF   s    r   rb   zXMLWriter._start_iterations  s    78r   c                 :    | j                   j                  d       y )Ns   </BlastOutput_iterations>
rE   rF   s    r   rd   zXMLWriter._end_iterations  s    89r   c                 :    | j                   j                  d       y )Ns     <BlastOutput_mbstat>
rE   rF   s    r   r<   zXMLWriter._start_mbstat  s    56r   c                 :    | j                   j                  d       y )Ns     </BlastOutput_mbstat>
rE   rF   s    r   r>   zXMLWriter._end_mbstat  s    67r   c                 p    | j                   j                  d       | j                  |j                         y )Ns   <Iteration>
)r   rC   _write_iteration_numr   )r   re   s     r   rh   zXMLWriter._start_iteration  s'    *+!!&**-r   c                 :    | j                   j                  d       y )Ns   </Iteration>
rE   rF   s    r   rv   zXMLWriter._end_iteration      +,r   c                 @    | j                   j                  d|z         y )Ns.     <Iteration_iter-num>%d</Iteration_iter-num>
rE   r&  s     r   r  zXMLWriter._write_iteration_num  s    LsRSr   c                 @    | j                   j                  d|z         y )Ns,   <Iteration_query-ID>%b</Iteration_query-ID>
rE   r   s     r   ri   z#XMLWriter._write_iteration_query_id  s    JXUVr   c                 @    | j                   j                  d|z         y )Ns.   <Iteration_query-def>%b</Iteration_query-def>
rE   r   s     r   rj   z$XMLWriter._write_iteration_query_def      >J	
r   c                 @    | j                   j                  d|z         y )Ns.   <Iteration_query-len>%d</Iteration_query-len>
rE   r   s     r   rk   z$XMLWriter._write_iteration_query_len  r  r   c                 :    | j                   j                  d       y )Ns   <Iteration_hits>
rE   rF   s    r   rp   zXMLWriter._start_iteration_hits  s    /0r   c                 :    | j                   j                  d       y )Ns   </Iteration_hits>
rE   rF   s    r   rr   zXMLWriter._end_iteration_hits  s    01r   c                 :    | j                   j                  d       y )Ns     <Iteration_stat>
rE   rF   s    r   rt   zXMLWriter._start_iteration_stat  s    12r   c                 :    | j                   j                  d       y )Ns     </Iteration_stat>
rE   rF   s    r   ru   zXMLWriter._end_iteration_stat  s    23r   c                 @    | j                   j                  d|z         y )Ns0         <Parameters_matrix>%b</Parameters_matrix>
rE   r  s     r   rP   z"XMLWriter._write_parameters_matrix      NQVVWr   c                 @    | j                   j                  d|z         y )Ns0         <Parameters_expect>%g</Parameters_expect>
rE   r  s     r   rQ   z"XMLWriter._write_parameters_expect  r  r   c                 @    | j                   j                  d|z         y )Ns2         <Parameters_include>%g</Parameters_include>
rE   r  s     r   rR   z#XMLWriter._write_parameters_include      BUJ	
r   c                 @    | j                   j                  d|z         y )Ns4         <Parameters_sc-match>%d</Parameters_sc-match>
rE   r  s     r   rS   z$XMLWriter._write_parameters_sc_match      DuL	
r   c                 @    | j                   j                  d|z         y )Ns:         <Parameters_sc-mismatch>%d</Parameters_sc-mismatch>
rE   r  s     r   rT   z'XMLWriter._write_parameters_sc_mismatch  s    JUR	
r   c                 @    | j                   j                  d|z         y )Ns4         <Parameters_gap-open>%d</Parameters_gap-open>
rE   r  s     r   rU   z$XMLWriter._write_parameters_gap_open  r  r   c                 @    | j                   j                  d|z         y )Ns8         <Parameters_gap-extend>%d</Parameters_gap-extend>
rE   r  s     r   rV   z&XMLWriter._write_parameters_gap_extend  s    H5P	
r   c                 @    | j                   j                  d|z         y )Ns0         <Parameters_filter>%b</Parameters_filter>
rE   r  s     r   rW   z"XMLWriter._write_parameters_filter  r  r   c                 @    | j                   j                  d|z         y )Ns2         <Parameters_pattern>%b</Parameters_pattern>
rE   r  s     r   rX   z#XMLWriter._write_parameters_pattern  r  r   c                 @    | j                   j                  d|z         y )Ns<         <Parameters_entrez-query>%b</Parameters_entrez-query>
rE   r  s     r   rY   z(XMLWriter._write_parameters_entrez_query  s    LuT	
r   c                 @    | j                   j                  d|z         y )Ns0         <Statistics_db-num>%d</Statistics_db-num>
rE   r  s     r   r   z"XMLWriter._write_statistics_db_num      NQWWXr   c                 @    | j                   j                  d|z         y )Ns0         <Statistics_db-len>%d</Statistics_db-len>
rE   r  s     r   r   z"XMLWriter._write_statistics_db_len  r  r   c                 @    | j                   j                  d|z         y )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                   j                  d|z         y )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                   j                  d|z         y )Ns.         <Statistics_kappa>%r</Statistics_kappa>
rE   r  s     r   r   z!XMLWriter._write_statistics_kappa  s    LuTUr   c                 @    | j                   j                  d|z         y )Ns0         <Statistics_lambda>%r</Statistics_lambda>
rE   r  s     r   r   z"XMLWriter._write_statistics_lambda  r  r   c                 @    | j                   j                  d|z         y )Ns2         <Statistics_entropy>%r</Statistics_entropy>
rE   r  s     r   r   z#XMLWriter._write_statistics_entropy  r  r   c                 :    | j                   j                  d       y )Ns   <Hit>
rE   rF   s    r   r~   zXMLWriter._start_iteration_hit  s    *%r   c                 :    | j                   j                  d       y )Ns   </Hit>
rE   rF   s    r   r   zXMLWriter._end_iteration_hit  s    +&r   c                 @    | j                   j                  d|z         y )Ns     <Hit_num>%d</Hit_num>
rE   r&  s     r   r   zXMLWriter._write_hit_num  s    6<=r   c                 @    | j                   j                  d|z         y )Ns     <Hit_id>%b</Hit_id>
rE   r(  s     r   r   zXMLWriter._write_hit_id   s    4v=>r   c                 @    | j                   j                  d|z         y )Ns     <Hit_def>%b</Hit_def>
rE   r*  s     r   r   zXMLWriter._write_hit_def#  s    6@Ar   c                 @    | j                   j                  d|z         y )Ns$     <Hit_accession>%b</Hit_accession>
rE   r-  s     r   r   zXMLWriter._write_hit_accession&  s    B]RSr   c                 @    | j                   j                  d|z         y )Ns     <Hit_len>%d</Hit_len>
rE   r4  s     r   r   zXMLWriter._write_hit_len)  s    6CDr   c                 :    | j                   j                  d       y )Ns     <Hit_hsps>
rE   rF   s    r   r   zXMLWriter._start_hit_hsps,  r  r   c                 :    | j                   j                  d       y )Ns     </Hit_hsps>
rE   rF   s    r   r   zXMLWriter._end_hit_hsps/  rl  r   c                 :    | j                   j                  d       y )Ns
       <Hsp>
rE   rF   s    r   r   zXMLWriter._start_hsp2  s    .)r   c                 :    | j                   j                  d       y )Ns       </Hsp>
rE   rF   s    r   r   zXMLWriter._end_hsp5  s    /*r   c                 @    | j                   j                  d|z         y )Ns       <Hsp_num>%d</Hsp_num>
rE   r&  s     r   r   zXMLWriter._write_hsp_num8  s    83>?r   c                 @    | j                   j                  d|z         y )Ns&       <Hsp_bit-score>%b</Hsp_bit-score>
rE   r<  s     r   r   zXMLWriter._write_hsp_bit_score;  s    DyPQr   c                 @    | j                   j                  d|z         y )Ns       <Hsp_score>%d</Hsp_score>
rE   r>  s     r   r   zXMLWriter._write_hsp_score>  s    <uDEr   c                 @    | j                   j                  d|z         y )Ns        <Hsp_evalue>%b</Hsp_evalue>
rE   r@  s     r   r   zXMLWriter._write_hsp_evalueA  s    >GHr   c                 @    | j                   j                  d|z         y )Ns)        <Hsp_query-from>%d</Hsp_query-from>
rE   rB  s     r   r   zXMLWriter._write_hsp_query_fromD      G*TUr   c                 @    | j                   j                  d|z         y )Ns%        <Hsp_query-to>%d</Hsp_query-to>
rE   rD  s     r   r   zXMLWriter._write_hsp_query_toG      ChNOr   c                 @    | j                   j                  d|z         y )Ns%        <Hsp_hit-from>%d</Hsp_hit-from>
rE   rF  s     r   r   zXMLWriter._write_hsp_hit_fromJ  r  r   c                 @    | j                   j                  d|z         y )Ns!        <Hsp_hit-to>%d</Hsp_hit-to>
rE   rH  s     r   r   zXMLWriter._write_hsp_hit_toM  s    ?&HIr   c                 @    | j                   j                  d|z         y )Ns-        <Hsp_pattern-from>%d</Hsp_pattern-from>
rE   r   pattern_froms     r   rJ  z!XMLWriter._write_hsp_pattern_fromP  s    =L	
r   c                 @    | j                   j                  d|z         y )Ns)        <Hsp_pattern-to>%d</Hsp_pattern-to>
rE   r   
pattern_tos     r   rL  zXMLWriter._write_hsp_pattern_toU  r  r   c                 @    | j                   j                  d|z         y )Ns+        <Hsp_query-frame>%d</Hsp_query-frame>
rE   rN  s     r   r   z XMLWriter._write_hsp_query_frameX  s    IKWXr   c                 @    | j                   j                  d|z         y )Ns'        <Hsp_hit-frame>%d</Hsp_hit-frame>
rE   rP  s     r   r   zXMLWriter._write_hsp_hit_frame[      E	QRr   c                 @    | j                   j                  d|z         y )Ns%        <Hsp_identity>%d</Hsp_identity>
rE   rR  s     r   r   zXMLWriter._write_hsp_identity^  r  r   c                 @    | j                   j                  d|z         y )Ns%        <Hsp_positive>%d</Hsp_positive>
rE   rT  s     r   r   zXMLWriter._write_hsp_positivea  r  r   c                 @    | j                   j                  d|z         y )Ns        <Hsp_gaps>%d</Hsp_gaps>
rE   rV  s     r   r   zXMLWriter._write_hsp_gapsd  s    ;dBCr   c                 @    | j                   j                  d|z         y )Ns'        <Hsp_align-len>%d</Hsp_align-len>
rE   rX  s     r   r   zXMLWriter._write_hsp_align_leng  r  r   c                 @    | j                   j                  d|z         y )Ns#        <Hsp_density>%d</Hsp_density>
rE   rZ  s     r   r\  zXMLWriter._write_hsp_densityj  s    AGKLr   c                 @    | j                   j                  d|z         y )Ns         <Hsp_qseq>%b</Hsp_qseq>
rE   r^  s     r   r   zXMLWriter._write_hsp_qseqm      <tCDr   c                 @    | j                   j                  d|z         y )Ns         <Hsp_hseq>%b</Hsp_hseq>
rE   r`  s     r   r   zXMLWriter._write_hsp_hseqp  r  r   c                 @    | j                   j                  d|z         y )Ns$         <Hsp_midline>%b</Hsp_midline>
rE   rb  s     r   r   zXMLWriter._write_hsp_midlines  s    BWLMr   N)Orc  rd  re  rf  r"   r#   r?   r$   r&   r*   r+   r.   r0   r2   r6   rN   r^   rb   rd   r<   r>   rh   rv   r  ri   rj   rk   rp   rr   rt   ru   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   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   rJ  rL  r   r   r   r   r   r   r\  r   r   r   r   r   r   rh  rh  _  s   
./XX

I









9:78.-TW



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









X



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



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

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

VYSPPDSMEENr   rh  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 ZQdP ZRyQ)R
XML2WriterzXML2 Writer.c                 :    | j                   j                  d       y )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_blastoutputz  s    		
r   c                 :    | j                   j                  d       y )Ns7       </Report>
  </report>
</BlastOutput2>
</BlastXML2>
rE   rF   s    r   r?   zXML2Writer._end_blastoutput  s    	
r   c                 @    | j                   j                  d|z         y )Ns         <program>%b</program>
rE   r   s     r   r$   zXML2Writer._write_program      :WDEr   c                 @    | j                   j                  d|z         y )Ns         <version>%b</version>
rE   r   s     r   r&   zXML2Writer._write_version  r  r   c                 @    | j                   j                  d|z         y )Ns          <reference>%b</reference>
rE   r   s     r   r*   zXML2Writer._write_reference  s    >JKr   c                 @    | j                   j                  d|z         y )Nsf         <search-target>
        <Target>
          <db>%b</db>
        </Target>
      </search-target>
rE   r   s     r   r+   zXML2Writer._write_db  s#     		
r   c                 :    | j                   j                  d       y )Ns$         <params>
        <Parameters>
rE   rF   s    r   rN   zXML2Writer._start_param  ry  r   c                 :    | j                   j                  d       y )Ns&           </Parameters>
      </params>
rE   rF   s    r   r^   zXML2Writer._end_param  ry  r   c                 :    | j                   j                  d       y )Ns"         <results>
        <Results>
rE   rF   s    r   rb   zXML2Writer._start_iterations  ry  r   c                 :    | j                   j                  d       y )Ns$           </Results>
      </results>
rE   rF   s    r   rd   zXML2Writer._end_iterations  ry  r   c                     	 |j                   }| j                  j                  d       | j                  |       | j                  j                  d       y # t        $ r Y 'w xY w)Ns               <Iteration>
s          <search>
        <Search>
)r   r   rC   r  r7   )r   re   r   s      r   rh   zXML2Writer._start_iteration  sd    
	+**C KK
 %%c*	
  		s   A 	A"!A"c                     | j                   j                  d       | j                  dk(  r| j                   j                  d       y y )Ns"           </Search>
      </search>
r   s               </Iteration>
)r   rC   r    rF   s    r   rv   zXML2Writer._end_iteration  sC    	
 ==J&KK 'r   c                 @    | j                   j                  d|z         y )Ns&                 <iter-num>%d</iter-num>
rE   r&  s     r   r  zXML2Writer._write_iteration_num  s    DsJKr   c                 @    | j                   j                  d|z         y )Ns&                 <query-id>%b</query-id>
rE   r   s     r   ri   z$XML2Writer._write_iteration_query_id  #     	
r   c                 @    | j                   j                  d|z         y )Ns,                 <query-title>%b</query-title>
rE   r   s     r   rj   z%XML2Writer._write_iteration_query_def  #     	
r   c                 @    | j                   j                  d|z         y )Ns(                 <query-len>%d</query-len>
rE   r   s     r   rk   z%XML2Writer._write_iteration_query_len  r  r   c                 r    | j                   j                  d|j                  dz   |j                  fz         y )Ns                 <query-masking>
                <Range>
                  <from>%d</from>
                  <to>%d</to>
                </Range>
              </query-masking>
ra   )r   rC   r   r	   r  s     r   rn   z)XML2Writer._write_iteration_query_masking  s5     ~~!8<<01
	
r   c                 :    | j                   j                  d       y )Ns                 <hits>
rE   rF   s    r   rp   z XML2Writer._start_iteration_hits  rj  r   c                 :    | j                   j                  d       y )Ns                 </hits>
rE   rF   s    r   rr   zXML2Writer._end_iteration_hits  rj  r   c                 :    | j                   j                  d       y )Ns                 <stat>
rE   rF   s    r   rt   z XML2Writer._start_iteration_stat  rj  r   c                 :    | j                   j                  d       y )Ns                 </stat>
rE   rF   s    r   ru   zXML2Writer._end_iteration_stat%  rj  r   c                 @    | j                   j                  d|z         y )Ns             <matrix>%b</matrix>
rE   r  s     r   rP   z#XML2Writer._write_parameters_matrix,  #     	
r   c                 @    | j                   j                  d|z         y )Ns             <expect>%g</expect>
rE   r  s     r   rQ   z#XML2Writer._write_parameters_expect4  r  r   c                 @    | j                   j                  d|z         y )Ns              <include>%g</include>
rE   r  s     r   rR   z$XML2Writer._write_parameters_include<  r  r   c                 @    | j                   j                  d|z         y )Ns"             <sc-match>%d</sc-match>
rE   r  s     r   rS   z%XML2Writer._write_parameters_sc_matchD  r  r   c                 @    | j                   j                  d|z         y )Ns(             <sc-mismatch>%d</sc-mismatch>
rE   r  s     r   rT   z(XML2Writer._write_parameters_sc_mismatchL  r  r   c                 @    | j                   j                  d|z         y )Ns"             <gap-open>%d</gap-open>
rE   r  s     r   rU   z%XML2Writer._write_parameters_gap_openT  r  r   c                 @    | j                   j                  d|z         y )Ns&             <gap-extend>%d</gap-extend>
rE   r  s     r   rV   z'XML2Writer._write_parameters_gap_extend\  r  r   c                 @    | j                   j                  d|z         y )Ns             <filter>%b</filter>
rE   r  s     r   rW   z#XML2Writer._write_parameters_filterd  r  r   c                 @    | j                   j                  d|z         y )Ns              <pattern>%b</pattern>
rE   r  s     r   rX   z$XML2Writer._write_parameters_patternl  r  r   c                 @    | j                   j                  d|z         y )Ns*             <entrez-query>%b</entrez-query>
rE   r  s     r   rY   z)XML2Writer._write_parameters_entrez_queryt  r  r   c                 @    | j                   j                  d|z         y )Ns             <cbs>%d</cbs>
rE   r  s     r   rZ   z XML2Writer._write_parameters_cbs|  r  r   c                 @    | j                   j                  d|z         y )Ns,             <query-gencode>%d</query-gencode>
rE   r  s     r   r[   z*XML2Writer._write_parameters_query_gencode  r  r   c                 @    | j                   j                  d|z         y )Ns&             <db-gencode>%d</db-gencode>
rE   r  s     r   r\   z'XML2Writer._write_parameters_db_gencode  r  r   c                 @    | j                   j                  d|z         y )Ns(             <bl2seq-mode>%b</bl2seq-mode>
rE   r  s     r   r]   z(XML2Writer._write_parameters_bl2seq_mode  r  r   c                 @    | j                   j                  d|z         y )Ns&                     <db-num>%d</db-num>
rE   r  s     r   r   z#XML2Writer._write_statistics_db_num  #     	
r   c                 @    | j                   j                  d|z         y )Ns&                     <db-len>%d</db-len>
rE   r  s     r   r   z#XML2Writer._write_statistics_db_len  r  r   c                 @    | j                   j                  d|z         y )Ns(                     <hsp-len>%d</hsp-len>
rE   r  s     r   r   z$XML2Writer._write_statistics_hsp_len  #     	
r   c                 @    | j                   j                  d|z         y )Ns,                     <eff-space>%s</eff-space>
rE   r  s     r   r   z&XML2Writer._write_statistics_eff_space  r  r   c                 @    | j                   j                  d|z         y )Ns$                     <kappa>%r</kappa>
rE   r  s     r   r   z"XML2Writer._write_statistics_kappa  r  r   c                 @    | j                   j                  d|z         y )Ns&                     <lambda>%r</lambda>
rE   r  s     r   r   z#XML2Writer._write_statistics_lambda  r  r   c                 @    | j                   j                  d|z         y )Ns(                     <entropy>%r</entropy>
rE   r  s     r   r   z$XML2Writer._write_statistics_entropy  r  r   c                 :    | j                   j                  d       y )Ns                   <Hit>
rE   rF   s    r   r~   zXML2Writer._start_iteration_hit  rj  r   c                 :    | j                   j                  d       y )Ns                   </Hit>
rE   rF   s    r   r   zXML2Writer._end_iteration_hit  rj  r   c                 @    | j                   j                  d|z         y )Ns                      <num>%d</num>
rE   r&  s     r   r   zXML2Writer._write_hit_num  #     	
r   c                 :    | j                   j                  d       y )Ns                      <description>
rE   rF   s    r   r   zXML2Writer._start_hit_targets  rj  r   c                 :    | j                   j                  d       y )Ns!                     </description>
rE   rF   s    r   r   zXML2Writer._end_hit_targets  rj  r   c                 :    | j                   j                  d       y )Ns                       <HitDescr>
rE   rF   s    r   r   zXML2Writer._start_hitdescr  rj  r   c                 :    | j                   j                  d       y )Ns                        </HitDescr>
rE   rF   s    r   r   zXML2Writer._end_hitdescr  rj  r   c                 @    | j                   j                  d|z         y )Ns"                         <id>%b</id>
rE   r(  s     r   r   zXML2Writer._write_hit_id  r  r   c                 @    | j                   j                  d|z         y )Ns(                         <title>%b</title>
rE   r*  s     r   r   zXML2Writer._write_hit_def  r  r   c                 @    | j                   j                  d|z         y )Ns0                         <accession>%b</accession>
rE   r-  s     r   r   zXML2Writer._write_hit_accession  s#     	
r   c                 @    | j                   j                  d|z         y )Ns                      <len>%d</len>
rE   r4  s     r   r   zXML2Writer._write_hit_len  #     	
r   c                 @    | j                   j                  d|z         y )Ns(                         <taxid>%d</taxid>
rE   r0  s     r   r   zXML2Writer._write_hit_taxid&  r  r   c                 @    | j                   j                  d|z         y )Ns,                         <sciname>%b</sciname>
rE   r2  s     r   r   zXML2Writer._write_hit_sciname.  r  r   c                 :    | j                   j                  d       y )Ns                     <hsps>
rE   rF   s    r   r   zXML2Writer._start_hit_hsps6  rj  r   c                 :    | j                   j                  d       y )Ns                     </hsps>
rE   rF   s    r   r   zXML2Writer._end_hit_hsps=  rj  r   c                 :    | j                   j                  d       y )Ns                       <Hsp>
rE   rF   s    r   r   zXML2Writer._start_hspD  rj  r   c                 :    | j                   j                  d       y )Ns                       </Hsp>
rE   rF   s    r   r   zXML2Writer._end_hspK  rj  r   c                 @    | j                   j                  d|z         y )Ns$                         <num>%d</num>
rE   r&  s     r   r   zXML2Writer._write_hsp_numR  r  r   c                 @    | j                   j                  d|z         y )Ns0                         <bit-score>%b</bit-score>
rE   r<  s     r   r   zXML2Writer._write_hsp_bit_scoreZ  r  r   c                 @    | j                   j                  d|z         y )Ns(                         <score>%d</score>
rE   r>  s     r   r   zXML2Writer._write_hsp_scoreb  r  r   c                 @    | j                   j                  d|z         y )Ns*                         <evalue>%b</evalue>
rE   r@  s     r   r   zXML2Writer._write_hsp_evaluej  r  r   c                 @    | j                   j                  d|z         y )Ns2                         <query-from>%d</query-from>
rE   rB  s     r   r   z XML2Writer._write_hsp_query_fromr  r  r   c                 @    | j                   j                  d|z         y )Ns.                         <query-to>%d</query-to>
rE   rD  s     r   r   zXML2Writer._write_hsp_query_toz  r  r   c                 @    | j                   j                  d|z         y )Ns.                         <hit-from>%d</hit-from>
rE   rF  s     r   r   zXML2Writer._write_hsp_hit_from  r  r   c                 @    | j                   j                  d|z         y )Ns*                         <hit-to>%d</hit-to>
rE   rH  s     r   r   zXML2Writer._write_hsp_hit_to  r  r   c                 @    | j                   j                  d|z         y )Ns6                         <pattern-from>%d</pattern-from>
rE   r  s     r   rJ  z"XML2Writer._write_hsp_pattern_from  s#     	
r   c                 @    | j                   j                  d|z         y )Ns2                         <pattern-to>%d</pattern-to>
rE   r  s     r   rL  z XML2Writer._write_hsp_pattern_to  r  r   c                 @    | j                   j                  d|z         y )Ns4                         <query-frame>%d</query-frame>
rE   rN  s     r   r   z!XML2Writer._write_hsp_query_frame  s#     	
r   c                 @    | j                   j                  d|z         y )Ns0                         <hit-frame>%d</hit-frame>
rE   rP  s     r   r   zXML2Writer._write_hsp_hit_frame  r  r   c                 @    | j                   j                  d|z         y )Ns.                         <identity>%d</identity>
rE   rR  s     r   r   zXML2Writer._write_hsp_identity  r  r   c                 @    | j                   j                  d|z         y )Ns.                         <positive>%d</positive>
rE   rT  s     r   r   zXML2Writer._write_hsp_positive  r  r   c                 @    | j                   j                  d|z         y )Ns&                         <gaps>%d</gaps>
rE   rV  s     r   r   zXML2Writer._write_hsp_gaps  #     	
r   c                 @    | j                   j                  d|z         y )Ns0                         <align-len>%d</align-len>
rE   rX  s     r   r   zXML2Writer._write_hsp_align_len  r  r   c                 @    | j                   j                  d|z         y )Ns,                         <density>%d</density>
rE   rZ  s     r   r\  zXML2Writer._write_hsp_density  r  r   c                 @    | j                   j                  d|z         y )Ns&                         <qseq>%b</qseq>
rE   r^  s     r   r   zXML2Writer._write_hsp_qseq  r  r   c                 @    | j                   j                  d|z         y )Ns&                         <hseq>%b</hseq>
rE   r`  s     r   r   zXML2Writer._write_hsp_hseq  r  r   c                 @    | j                   j                  d|z         y )Ns,                         <midline>%b</midline>
rE   rb  s     r   r   zXML2Writer._write_hsp_midline  r  r   N)Src  rd  re  rf  r#   r?   r$   r&   r*   r+   rN   r^   rb   rd   rh   rv   r  ri   rj   rk   rn   rp   rr   rt   ru   rP   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   rJ  rL  r   r   r   r   r   r   r\  r   r   r   r   r   r   r  r  w  s   

FFL






&L

































































r   r  )codecsr   abcr   r   Bio.Seqr   r   register_errorr   rh  r  r   r   r   <module>r&     s]        *   )+? @G	C G	TUN UNpy	
 y	
r   