§
    ÖX…fÈ  ã                   óJ   — d Z  G d„ d¦  «        Z G d„ d¦  «        Zd„ Zd„ ZdS )aÍ  Code to parse output from the EMBOSS eprimer3 program.

As elsewhere in Biopython there are two input functions, read and parse,
for single record output and multi-record output. For primer3, a single
record object is created for each target sequence and may contain
multiple primers.

i.e. If you ran eprimer3 with a single target sequence, use the read
function. If you ran eprimer3 with multiple targets, use the parse
function to iterate over the retsults.
c                   ó   — e Zd ZdZd„ ZdS )ÚRecordzîRepresent information from a primer3 run finding primers.

    Members:

        - primers  - list of Primer objects describing primer pairs for
          this target sequence.
        - comments - the comment line(s) for the record

    c                 ó"   — d| _         g | _        dS )úInitialize the class.Ú N)ÚcommentsÚprimers©Úselfs    ú2lib/python3.11/site-packages/Bio/Emboss/Primer3.pyÚ__init__zRecord.__init__%   s   € àˆŒØˆŒˆˆó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s-   € € € € € ðð ðð ð ð ð r   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚPrimersaý  A primer set designed by Primer3.

    Members:

        - size - length of product, note you can use len(primer) as an
          alternative to primer.size

        - forward_seq
        - forward_start
        - forward_length
        - forward_tm
        - forward_gc

        - reverse_seq
        - reverse_start
        - reverse_length
        - reverse_tm
        - reverse_gc

        - internal_seq
        - internal_start
        - internal_length
        - internal_tm
        - internal_gc

    c                 óæ   — d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        dS )r   é    r   g        N)ÚsizeÚforward_seqÚforward_startÚforward_lengthÚ
forward_tmÚ
forward_gcÚreverse_seqÚreverse_startÚreverse_lengthÚ
reverse_tmÚ
reverse_gcÚinternal_seqÚinternal_startÚinternal_lengthÚinternal_tmÚinternal_gcr	   s    r   r   zPrimers.__init__G   sƒ   € àˆŒ	ØˆÔØˆÔØˆÔØˆŒØˆŒØˆÔØˆÔØˆÔØˆŒØˆŒØˆÔØˆÔØ ˆÔØˆÔØˆÔÐÐr   c                 ó   — | j         S )z1Length of the primer product (i.e. product size).)r   r	   s    r   Ú__len__zPrimers.__len__Z   s
   € àŒyÐr   N)r   r   r   r   r   r(   r   r   r   r   r   +   s<   € € € € € ðð ð6ð ð ð&ð ð ð ð r   r   c              #   óŒ  K  — 	 |                       ¦   «         }|                     ¦   «         rnŒ*d}d}	 |                     d¦  «        r(||V — t          ¦   «         }|xj        |z  c_        d}n)|                     d¦  «        r*|                     ¦   «         dk    r|xj        |z  c_        nê|                     ¦   «         snÔ|dd…         dk    rFt          ¦   «         }t          |dd…         ¦  «        |_        |j         	                    |¦  «         n€|dd…         d	k    rÀ| 
                    ¦   «         }|r|j        d
k    r(t          ¦   «         }|j         	                    |¦  «         t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        |d         |_        n²|dd…         dk    r¿| 
                    ¦   «         }|r|j        d
k    r(t          ¦   «         }|j         	                    |¦  «         t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        |d         |_        nå|dd…         dk    r×| 
                    ¦   «         }|r|j        d
k    r(t          ¦   «         }|j         	                    |¦  «         t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        t          |d         ¦  «        |_        	 |d         |_        n# t6          $ r
 d|_        Y nw xY w	 t9          | ¦  «        }n# t:          $ r Y nw xY wŒ‰|r|V — dS dS )zAIterate over primer3 output as Bio.Emboss.Primer3.Record objects.TN)z
# EPRIMER3z	# PRIMER3ú#z9#                      Start  Len   Tm     GC%   Sequenceé   é   zPRODUCT SIZE: zFORWARD PRIMERr   é   é   é   é   zREVERSE PRIMERzINTERNAL OLIGOr   )ÚreadlineÚstripÚ
startswithr   r   r   Úintr   r   ÚappendÚsplitr   r   Úfloatr   r   r   r   r   r    r!   r   r#   r$   r%   r&   r"   Ú
IndexErrorÚnextÚStopIteration)ÚhandleÚlineÚrecordÚprimerÚwordss        r   Úparser@   _   s¯  è è € ðØŠÑ Ô ˆØ:Š:‰<Œ<ð 	Øðð €FØ€Fð8Ø?Š?Ð6Ñ7Ô7ð 3	)àÐ!ØÝ‘X”XˆFØˆOŒO˜tÑ#ˆOŒOØˆF‰FØ_Š_˜SÑ!Ô!ð ,	)à—
’
‘”ØNòOð Oð ” 4Ñ'”ùØ—’‘”ð &	)ÙØ!B$ŒZÐ+Ò+Ð+Ý‘Y”YˆFÝ˜d 2 3 3œi™.œ.ˆFŒKØŒN×!Ò! &Ñ)Ô)Ð)Ñ)Ø!B$ŒZÐ+Ò+Ð+Ø—J’J‘L”LˆEØð .˜Vœ[¨AÒ-Ð-Ý ™œØ”×%Ò% fÑ-Ô-Ð-Ý#& u¨Q¤x¡=¤=ˆFÔ Ý$'¨¨a¬¡M¤MˆFÔ!Ý % e¨A¤h¡¤ˆFÔÝ % e¨A¤h¡¤ˆFÔØ!& q¤ˆFÔÑØ!B$ŒZÐ+Ò+Ð+Ø—J’J‘L”LˆEØð .˜Vœ[¨AÒ-Ð-Ý ™œØ”×%Ò% fÑ-Ô-Ð-Ý#& u¨Q¤x¡=¤=ˆFÔ Ý$'¨¨a¬¡M¤MˆFÔ!Ý % e¨A¤h¡¤ˆFÔÝ % e¨A¤h¡¤ˆFÔØ!& q¤ˆFÔÐØ!B$ŒZÐ+Ò+Ð+Ø—J’J‘L”LˆEØð .˜Vœ[¨AÒ-Ð-Ý ™œØ”×%Ò% fÑ-Ô-Ð-Ý$'¨¨a¬¡M¤MˆFÔ!Ý%(¨¨q¬¡]¤]ˆFÔ"Ý!& u¨Q¤x¡¤ˆFÔÝ!& u¨Q¤x¡¤ˆFÔð)Ø&+¨A¤hÔ#Ð#øÝð )ð )ð )Ø&(Ô#Ð#Ð#ð)øøøð	Ý˜‘<”<ˆDˆDøÝð 	ð 	ð 	ØˆEð	øøøño8ðr ð Øˆˆˆˆˆðð s$   Í4N ÎNÎNÎN* Î*
N7Î6N7c                 óà   — t          | ¦  «        }	 t          |¦  «        }n# t          $ r t          d¦  «        d‚w xY w	 t          |¦  «         t          d¦  «        ‚# t          $ r Y nw xY w|S )zÌParse primer3 output into a Bio.Emboss.Primer3.Record object.

    This is for when there is one and only one target sequence. If
    designing primers for multiple sequences, use the parse function.
    zNo records found in handleNz$More than one record found in handle)r@   r9   r:   Ú
ValueError)r;   Úiteratorr=   s      r   ÚreadrD   §   s–   € õ V‰}Œ}€HðAÝh‘”ˆˆøÝð Að Að AÝÐ5Ñ6Ô6¸DÐ@ðAøøøðÝˆX‰ŒˆÝÐ?Ñ@Ô@Ð@øÝð ð ð Øˆðøøøà€Ms   ‘! ¡<Á A Á
A+Á*A+N)r   r   r   r@   rD   r   r   r   ú<module>rE      sŒ   ðð
ð 
ð ð ð ð ð ñ ô ð ð"1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ðhEð Eð EðPð ð ð ð r   