ó
Y_Sc           @   s¨   d  d l  Z  d  d l m Z d  d l Td  d l m Z d  d l Td e  j f d „  ƒ  YZ d e  j f d „  ƒ  YZ	 d	 e  j f d
 „  ƒ  YZ
 e d k r¤ e  j ƒ  n  d S(   iÿÿÿÿN(   t   seq_io(   t   *(   t   StringIOt   test_alphabetc           B   s†   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 RS(   c         C   s6   |  j  t t d ƒ |  j  t t d ƒ t d ƒ } d  S(   Nt   alphabett   alph t   alphbet(   t   assertRaisest
   ValueErrort   Alphabet(   t   selft   a1(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create_alphabet&   s    c         C   s=   t  d ƒ } |  j | j d ƒ ƒ |  j | j d ƒ ƒ d  S(   NR   t   alphbetX(   R	   t
   assertTruet
   alphabetic(   R
   t   a(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_alphabet_alphabetic/   s    c         C   se   t  } x3 t | ƒ D]% \ } } |  j | j | ƒ | ƒ q Wt d ƒ } |  j d | j d ƒ ƒ d  S(   Nt   alphi   t   p(   t   generic_alphabett	   enumeratet   assertEqualt   ordR	   (   R
   R   t   it   c(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_alphabet_ord4   s
    c         C   so   t  } x= t | ƒ D]/ \ } } |  j t | j | ƒ ƒ | d ƒ q Wt d ƒ } |  j d | j d ƒ ƒ d  S(   Ni    R   t   hi   (   R   R   R   R   t   chrR	   (   R
   R   R   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_alphabet_chr<   s
    'c         C   so   t  d ƒ } |  j d | j d ƒ d ƒ t } | j | ƒ } x* t | ƒ D] \ } } |  j | | ƒ qK Wd  S(   NR   i    t   alphalphi   (   R	   R   t   ordsR   R   (   R
   R   t   oR   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_alphabet_ordsE   s    c         C   s2   t  d ƒ } |  j t d | ƒ | j d ƒ ƒ d  S(   NR   t   pplai   i   i    (   i   i   i   i    (   R	   R   t   Seqt   chrs(   R
   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_alphabet_chrsN   s    c         C   s    t  d  ƒ } |  j | t ƒ d  S(   N(   R	   t   NoneR   R   (   R
   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt	   test_noneR   s    c         C   s/   t  d ƒ } t  | ƒ } |  j | | k ƒ d S(   sK    If we pass an alphabet to the constuctor, it's passed 
        right back t   kjdahfN(   R	   R   (   R
   R   t   a2(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create_from_alphabetV   s    c         C   s(   t  d ƒ } t | ƒ } t | ƒ } d  S(   NR(   (   R	   t   reprt   str(   R
   R   t   rt   s(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt	   test_repr]   s    c         C   s    |  j  t t d ƒ ƒ d ƒ d  S(   NR(   (   R   R,   R	   (   R
   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_strb   s    c         C   s    |  j  t d ƒ j ƒ  d ƒ d  S(   NR(   (   R   R	   t   letters(   R
   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_letterse   s    c         C   s;   t  d ƒ } d } | j | ƒ } |  j t | ƒ d ƒ d  S(   Nt   ABCDEt   aBbct   ABBC(   R	   t	   normalizeR   R,   (   R
   R   R.   t   n(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_normalizeh   s    c         C   sx   t  d d ƒ } t d | ƒ } | j d ƒ d k s9 t ‚ x8 | D]0 \ } } | j | ƒ | j | ƒ k s@ t ‚ q@ Wd  S(   Nt   12345t   ABCEDR3   t   Ai    (   t   zipR	   R   t   AssertionError(   R
   t   altt   alphaR   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_altn   s
    c         C   s  t  j t d ƒ ƒ } | t k s' t ‚ t d ƒ } t d ƒ } t d ƒ } t d ƒ } t j | ƒ t f t j | ƒ t f t j | ƒ t f t j | ƒ t f f } x/ | D]' } |  j	 t  j | d ƒ | d ƒ q¬ W| j
 ƒ  | j
 ƒ  | j
 ƒ  | j
 ƒ  d  S(   Nt   ARNDCQEGHILKMFPSTWYVXs   cap.fas   cox2.msfs   Rv3829c.fastas   chain_B.fastai    i   (   R	   t   whichR#   t   unambiguous_protein_alphabetR=   t   testdata_streamR    t   readt   unambiguous_dna_alphabetR   t   close(   R
   R   t   f1t   f2t   f3t   f4t   testst   t(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_which_alphabetu   s     %


(   t   __name__t
   __module__R   R   R   R   R!   R%   R'   R*   R/   R0   R2   R8   R@   RN   (    (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR   $   s   																t   test_seqc           B   sÅ   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 RS(   c         C   s†   |  j  t d d ƒ ƒ |  j t t d d ƒ d } x! | D] } |  j  | t k ƒ q9 W|  j  t | t ƒ ƒ |  j t t d t ƒ d  S(   NR   R   s   not alphabetics|   Any printable Ascii character `1234567890-=~!@#$%^&*()_+{}|[]\:;'<>?,./QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm s   Not zero.  (   R   R#   R   R   R   (   R
   R   t   l(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create_seq   s    c         C   sa   t  d t ƒ } t  d t ƒ } |  j t t  d t ƒ t  d t ƒ } |  j t | d ƒ d ƒ d  S(   Nt#   dskjjfskdjbfKJJSJKSKJDjk123u768erbmRA   t   1234t   AGTCAGCTACGACGCGCi   t   G(   R#   R   t   protein_alphabetR   R   t   dna_alphabetR   R,   (   R
   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_std_alphabetsœ   s
    c         C   sM   t  d ƒ } t d | ƒ } |  j t | j ƒ  ƒ d d d d d d g ƒ d  S(   Nt   ABCt   ABCCBAi    i   i   (   R	   R#   R   t   listR   (   R
   R   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt	   test_ords¤   s    c         C   s]   t  d t ƒ } | j ƒ  } |  j t t ƒ t | ƒ ƒ |  j t | ƒ d d d d g ƒ d  S(   NRV   i   i   i   i   (   R#   RF   t   tallyR   t   lenR]   (   R
   R.   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt
   test_tally©   s    c         C   sZ   t  d t ƒ } | j t d ƒ ƒ } |  j d t | ƒ ƒ |  j t | ƒ d d g ƒ d  S(   NRV   t   ACi   i   i   (   R#   RY   R_   R	   R   R`   R]   (   R
   R.   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_tally_nonalphabetic¯   s    c         C   sâ   t  d t ƒ } t | j d t ƒ ƒ } |  j t | ƒ t | ƒ d ƒ |  j | d d d d d d d d	 d
 d d d
 d d d d g ƒ |  j t | j t | ƒ t ƒ ƒ g  ƒ |  j t | j t | ƒ d t ƒ ƒ d g ƒ d  S(   Nt   AGTCAGCTACGACGcgcxi   t   AGt   GTt   TCt   CAt   GCt   CTt   TARb   t   CGt   GAi   RV   (   R#   RY   R]   t   wordsRF   R   R`   (   R
   R.   t   w(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt
   test_words¶   s     @(c         C   sH   t  d t ƒ } | j d ƒ } t t | Œ  ƒ d } |  j | d ƒ d  S(   NRV   i   i   i   (
   i   i   i   i   i   i   i   i   i   i   (   R#   RF   t
   word_countR]   R<   R   (   R
   R.   t   wct   count(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_words2¿   s    c         C   s6   t  d t ƒ } | d d !} |  j | j | j ƒ d  S(   NRV   i   i   (   R#   RY   R   R   (   R
   R.   t   slice(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_getsliceÅ   s    c         C   sa   d } t  | t d d d d ƒ} |  j | j d ƒ |  j | j d ƒ |  j | t | ƒ ƒ d  S(   Nt%   ACGTURYSWKMBDHVNACGTURYSWKMBDHVNAAAAAt   namet   IDt   descriptiont   DESCRIPTION(   R#   t   nucleic_alphabetR   Rx   Rz   R,   (   R
   R.   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create_annotatedÊ   s    c         C   s˜   t  d t ƒ } t  d t ƒ } | | } |  j | j t ƒ |  j | t  d t ƒ ƒ d } | | } | | } |  j | j | j ƒ |  j | | ƒ d  S(   Nt   AAAAt   TTTTt   AAAATTTTt   AA(   R#   RY   R   R   (   R
   t   s1t   s2t   s3t   s4t   s5t   s6(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_addÓ   s    


c         C   sh   t  d t ƒ } t  d t ƒ } d } t  d t ƒ } | j | | | g ƒ } |  j | t  d t ƒ ƒ d  S(   NR~   R   t   GGGGt    t   AAAATTTTGGGG(   R#   RY   t   joinR   (   R
   R‚   Rƒ   R„   t   s0t   j(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt	   test_joinâ   s    c         C   s   t  d t ƒ } t | ƒ } d  S(   NR~   (   R#   RY   R+   (   R
   R‚   R-   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR/   ì   s    c         C   sH   t  d t ƒ } |  j t | ƒ d ƒ |  j t t  d t ƒ ƒ d ƒ d  S(   Nt   AGCTAt   AgcTA(   R#   RY   R   R,   (   R
   R‚   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR0   ð   s    c         C   s#   |  j  t d t ƒ j ƒ  d ƒ d  S(   Nt   AgcTAAAA(   R   R#   RY   t   tostring(   R
   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_tostringö   s    c         C   sN   t  d t ƒ } |  j | | j ƒ  j ƒ  ƒ |  j | j ƒ  t  d t ƒ ƒ d  S(   Nt   ACGTt   TGCA(   R#   RY   R   t   reverse(   R
   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_reverseú   s    c         C   s2   t  d ƒ } | j ƒ  } |  j t | ƒ d ƒ d  S(   Nt!   GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGAs   AIVMGR*KGAR(   t   dnat	   translateR   R,   (   R
   R.   R   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_translateÿ   s    c         C   sT   t  d ƒ } | j ƒ  } |  j | t  d ƒ ƒ |  j t  d ƒ j ƒ  t  d ƒ ƒ d  S(   Nt   GGGGaaaaaaaatttatatatt   atatataaattttttttCCCCt   ACGTRYSWKMBDHVNt   NBDHVKMWSRYACGT(   Rš   t   reverse_complementR   (   R
   R.   t   rc(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_reverse_complement  s
    c         C   sZ   t  d t ƒ j ƒ  } |  j t | ƒ d ƒ t  d t ƒ j ƒ  } |  j t | ƒ d ƒ d  S(   Ns   T-Tt   TTs   T-~---T...~~~--(   R#   RY   t   ungapR   R,   (   R
   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt
   test_ungap  s    c         C   s,   t  d ƒ j ƒ  } |  j t | ƒ d ƒ d  S(   Nt	   AAaaaaAAAt	   AAXXXXAAA(   Rš   t   maskR   R,   (   R
   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt	   test_mask  s    c         C   sL   t  d ƒ } t d ƒ } t d ƒ } t d ƒ } t d ƒ } t d ƒ } d  S(   Ns   gGGGGG-PPPPPRŸ   RM   t   actgtas   acgtrysw-kmb-dhvnt   ACUUUUU(   t   proteinRš   t   rna(   R
   t   sproteint   d1t   d2t   d3t   d4t   srna(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_shortcuts  s    c         C   s2   t  d ƒ } | j ƒ  j ƒ  } |  j | | ƒ d  S(   NRŸ   (   Rš   t   lowert   upperR   (   R
   R‚   Rƒ   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_casechange!  s    (   RO   RP   RS   RZ   R^   Ra   Rc   Rp   Rt   Rv   R}   Rˆ   R   R/   R0   R”   R˜   Rœ   R£   R¦   Rª   Rµ   R¸   (    (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyRQ      s*   													
											t   test_seqlistc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s\   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g ƒ } |  j t | ƒ d ƒ d  S(   Nt   ACGTURYBDHVNACGTURYSWKMBDHVNt    ACGTURYSWKMBDHVNACGTURYSWKMBDHVNt   ACGTURSWKMBDHVNACGTURKMBDHVNi   (   R#   R|   t   SeqListR   R`   (   R
   R   R‚   Rƒ   t   seqs(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create+  s
    c         C   s‘   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g d t d d d d ƒ} |  j | j d ƒ |  j | j d ƒ |  j | j t ƒ d  S(	   NRº   R»   R¼   R   Rx   t   alsdfRz   R   (   R#   R|   R½   R   Rx   Rz   R   (   R
   R   R‚   Rƒ   R¾   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR}   4  s    c   	      C   s¤   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g t ƒ } | j ƒ  } | j t ƒ } t | | | g ƒ } | j d t d ƒ ƒ } |  j t | j ƒ d  S(   NRº   t   ACGTURYSDHVNACGTURYSWKMBDHVNR¼   R   R[   (   R#   R|   R½   R   R	   R   R   (	   R
   R   R‚   Rƒ   R¾   R   R)   t   seqs3t   a3(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR^   @  s    
c         C   sE  t  d ƒ } t d | ƒ } t d | ƒ } t d | ƒ } t d | ƒ } t | | | | g | ƒ } | j ƒ  } |  j t | d ƒ d d d d g ƒ |  j t | d ƒ d	 d d d g ƒ |  j t | d
 ƒ d	 d d d g ƒ |  j t | d	 ƒ d d d d g ƒ |  j t | d ƒ d d d d g ƒ |  j | d d ƒ d  S(   Nt   ABCDt   ABCDDt   AAAADt   AAABDt   AAACDi    i   i   i   i   t   D(   i   RÉ   (   R	   R#   R½   t   profileR   R]   (   R
   R   R   R‚   Rƒ   R„   R¾   R_   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_profileX  s    &&&&&c         C   sš   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g t ƒ } | j ƒ  } | d d d d d d d d d d d d d d d d d g k s– t ‚ d  S(	   Nt   ACTTTt   ACCCCR‰   i   i   i   i   i    (   R#   R|   R½   R_   R=   (   R
   R   R‚   Rƒ   R¾   t   counts(    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyRa   l  s    c         C   s†   t  d t ƒ } t  d t ƒ } t  d t ƒ } t ƒ  } | j | ƒ | j | | f ƒ |  j t | ƒ d ƒ |  j t | ƒ t ƒ d  S(   NRº   R»   R¼   i   (   R#   R|   R½   t   appendt   extendR   R`   t   type(   R
   R   R‚   Rƒ   R¾   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   test_create_emptyx  s    	c         C   sR   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g ƒ } t | ƒ } d  S(   NRº   R»   R¼   (   R#   R|   R½   R+   (   R
   R   R‚   Rƒ   R¾   R-   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR/   …  s
    c         C   sR   t  d t ƒ } t  d t ƒ } t  d t ƒ } t | | | g ƒ } t | ƒ } d  S(   NRº   R»   R¼   (   R#   R|   R½   R,   (   R
   R   R‚   Rƒ   R¾   R.   (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR0     s
    (
   RO   RP   R¿   R}   R^   RË   Ra   RÒ   R/   R0   (    (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyR¹   (  s   								t   __main__(   t   unittestt   corebioR    t   corebio.seqt   corebio._py3kR   t   test_corebiot   TestCaseR   RQ   R¹   RO   t   main(    (    (    sI   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_seq.pyt   <module>   s   

i›m