ó
ćŰ§Hc           @   s9   d  Z  d d d     YZ d d d     YZ d   Z d S(	   s+   Code to interact with the primer3 program.
t   Recordc           B   s   e  Z d  Z d   Z RS(   s   Represent information from a primer3 run finding primers.

    Members:

    primers   A list of primers that are generated (usually 5)
    c         C   s   d |  _  g  |  _ d  S(   Nt    (   t   commentst   primers(   t   self(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyt   __init__   s    	(   t   __name__t
   __module__t   __doc__R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyR       s   t   Primersc           B   s   e  Z d  Z d   Z RS(   sä   A primer set designed by Primer3.

    Members:

    size
    forward_seq
    forward_start
    forward_length
    forward_tm
    forward_gc
    reverse_seq
    reverse_start
    reverse_length
    reverse_tm
    reverse_gc
    c         C   sg   d |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d  S(   Ni    R   g        (   t   sizet   forward_seqt   forward_startt   forward_lengtht
   forward_tmt
   forward_gct   reverse_seqt   reverse_startt   reverse_lengtht
   reverse_tmt
   reverse_gc(   R   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyR   "   s    										(   R   R   R   R   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyR	      s   c         C   s,  t  |   }  t   } d } x |  D] } | j   r" Pq" q" Wx_ t r | j   rf | d d k rf Pn  | j | 7_ y |  j   } Wq? t k
 r | SXq? Wxt r'| j   sś nI| d d !d k rř t   } t	 | d  | _
 | j j |  n| d d !d k rĽ| j   } | s-| j
 d k rIt   } | j j |  n  t	 | d  | _ t	 | d  | _ t | d	  | _ t | d  | _ | d
 | _ nZ| d d !d k rR| j   } | sÚ| j
 d k röt   } | j j |  n  t	 | d  | _ t	 | d  | _ t | d	  | _ t | d  | _ | d
 | _ n­ | d d !d k r˙| j   } | s| j
 d k rŁt   } | j j |  n  t	 | d  | _ t	 | d  | _ t | d	  | _ t | d  | _ | d
 | _ n  y |  j   } WqĄ t k
 r#PqĄ XqĄ W| S(   s/   Parse primer3 output into a Primer3Record.
    i    t   #i   i   s   PRODUCT SIZE: s   FORWARD PRIMERi   i   i   i   s   REVERSE PRIMERs   INTERNAL OLIGON(   t   iterR    t   Nonet   stript   TrueR   t   nextt   StopIterationR	   t   intR
   R   t   appendt   splitR   R   t   floatR   R   R   R   R   R   R   R   t   internal_startt   internal_lengtht   internal_tmt   internal_gct   internal_seq(   t   handlet   recordt   primert   linet   words(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyt   read/   sp    									N(    (    (   R   R    R	   R*   (    (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/Primer3.pyt   <module>   s   