ó
ęŪ§Hc           @   sL   d  Z  d d	 d     YZ d d
 d     YZ d d d     YZ d   Z d S(   s<   Code to interact with the primersearch program from EMBOSS.
t   InputRecordc           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s„   Represent the input file into the primersearch program.

    This makes it easy to add primer information and write it out to the
    simple primer file format.
    c         C   s   g  |  _  d  S(   N(   t   primer_info(   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/PrimerSearch.pyt   __init__   s    c         C   s>   d } x1 |  j  D]& \ } } } | d | | | f 7} q W| S(   Nt    s	   %s %s %s
(   R   (   R   t   outputt   namet   primer1t   primer2(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/PrimerSearch.pyt   __str__   s    c         C   s   |  j  j | | | f  d S(   s.   Add primer information to the record.
        N(   R   t   append(   R   t   primer_namet   first_primer_seqt   second_primer_seq(    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/PrimerSearch.pyt   add_primer_set   s    (   t   __name__t
   __module__t   __doc__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/PrimerSearch.pyR       s   		t   OutputRecordc           B   s   e  Z d  Z d   Z RS(   s»   Represent the information from a primersearch job.

    amplifiers is a dictionary where the keys are the primer names and
    the values are a list of PrimerSearchAmplifier objects.
    c         C   s   i  |  _  d  S(   N(   t
   amplifiers(   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/PrimerSearch.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/PrimerSearch.pyR      s   t	   Amplifierc           B   s   e  Z d  Z d   Z RS(   s4   Represent a single amplification from a primer.
    c         C   s   d |  _  d |  _ d  S(   NR   i    (   t   hit_infot   length(   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/PrimerSearch.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/PrimerSearch.pyR   $   s   c         C   s3  t    } xå |  D]Ż } | j   s( q q | j d  rW | j   d } g  | j | <q | j d  r t   } | j | j |  q | j d  r­ | j d d  | _ q | j d  rŽ | j   d } t	 |  | _
 q | j | 7_ q Wx; | j D]0 } x' | j | D] } | j j   | _ qWqū W| S(   sA   Get output from primersearch into a PrimerSearchOutputRecord
    s   Primer namei’’’’t   Amplimers   	Sequence: R   s   	Amplimer length: iž’’’(   R   t   stript
   startswitht   splitR   R   R
   t   replaceR   t   intR   t   rstrip(   t   handlet   recordt   lineR   t	   amplifierR   (    (    s   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/Emboss/PrimerSearch.pyt   read+   s(    		N(    (    (    (   R   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/PrimerSearch.pyt   <module>   s   	