ó
Y_Sc           @@ sz   d  Z  d d l m Z m Z d d l Td d l Td d l Td Z d Z d	 Z	 d d
 „ Z d d „ Z d „  Z d „  Z d S(   sü   Read and write sequence information in tab-delimited format.

This very simple format has two columns per line. The first column is a sequence name, the second column is the sequence itself. The columns are separated by a single tab ("\t") character.

i    (   t   absolute_importt   print_functioni   (   t   *i   t   tablet   tabt   tbls(  
EC0001	MKRISTTITTTITITTGNGAG
EC0002	MRVLKFGGTSVANAERFLRVADILESNARQGQVATVLSAPAKITNHLVAM
EC0003	MVKVYAPASSANMSVGFDVLGAAVTPVDGALLGDVVTVEAAETFSLNNLG
EC0004	MKLYNLKDHNEQVSFAQAVTQGLGKNQGLFFPHDLPEFSLTEIDEMLKLD
EC0005	MKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGH
EC0006	MLILISPAKTLDYQSPLTTTRYTLPELLDNSQQLIHEARKLTPPQISTLM
EC0007	MPDFFSFINSVLWGSVMIYLLFGAGCWFTFRTGFVQFRYIRQFGKSLKNS
EC0008	MTDKLTSLRQYTTVVADTGDIAAMKLYQPQDATTNPSLILNAAQIPEYRK
EC0009	MNTLRIGLVSISDRASSGVYQDKGIPALEEWLTSALTTPFELETRLIPDE
EC0010	MGNTKLANPAPLGLMGFGMTTILLNLHNVGYFALDGIILAMGIFYGGIAQ
c         C@ s,   g  t  |  | ƒ D] } | ^ q } t | ƒ S(   sÿ   Read and parse file. 

    Args:
        fin -- A stream or file to read
        alphabet -- The expected alphabet of the data, if given
    Returns: 
        SeqList -- A list of sequences
    Raises: 
        ValueError -- If the file is unparsable
    (   t   iterseqt   SeqList(   t   fint   alphabett   st   seqs(    (    sA   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/corebio/seq_io/table_io.pyt   read;   s    "c         c@ sž   t  | ƒ } x‹ t |  ƒ D]} \ } } | j ƒ  } | d k rC q n  | j d ƒ } t | ƒ d k rw t d | ƒ ‚ n  t | d d | d | d ƒVq Wd	 S(
   s!   Parse a file and generate sequences.
    
    Args:
        fin -- A stream or file to read
        alphabet -- The expected alphabet of the data, if given    
    Yeilds: 
        Seq -- One alphabetic sequence at a time.
    Raises: 
        ValueError -- If the file is unparsable
    t    s   	i   sE   Parse failed on line %d: did not find two columns separated by a tab.i   R	   t   namei    N(   t   Alphabett	   enumeratet   stript   splitt   lent
   ValueErrort   Seq(   R   R	   t   linenot   linet   columns(    (    sA   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/corebio/seq_io/table_io.pyR   J   s     c         C@ s"   x | D] } t  |  | ƒ q Wd S(   s|   Write a two column, tab-delimited file. 

    Args:
        fout -- A writable stream.
        seqs  -- A list of Seq's
    N(   t   writeseq(   t   foutR   R
   (    (    sA   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/corebio/seq_io/table_io.pyt   writeb   s     c         C@ s,   | j  p d } t | | d d d |  ƒd S(   s|    Write a single sequence in fasta format.

    Args:
        afile -- A writable stream.
        seq  -- A Seq instance
    R   t   seps   	t   fileN(   R   t   print(   R   t   seqR   (    (    sA   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/corebio/seq_io/table_io.pyR   l   s    N(   s   tables   tab(   t   __doc__t
   __future__R    R   t   utilsR   R   t   namest
   extensionst   examplet   NoneR   R   R   R   (    (    (    sA   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/corebio/seq_io/table_io.pyt   <module>   s   


	
