B
    h}\t              +   @   s  d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZ dd	d
dgZG dd deZee	dee	deZddd	ZG dd
 d
eZedddddddedddddddedd d!d"ddded#d$d%d&ddded'd(d)d*ddded+d,d-d.ddded/d0d1d2ddded3d4d5d.ddded6d7dd8dddedd9d:d;ddded<d=d>d.ddded?d@dAd.dddedBdCdDd.dddedEdFdGd.dddedHdIdJd2dddedKdLdMd.dddedNdOdPdQdddfZee	dRee	dSedTdUee	dVee	dWedXdYee	dZee	d[ed\d]ee	d^ee	d_ed`daee	dbee	dcedddeee	dfee	dgedhdiee	djee	dkedldmee	dnee	doedpdqee	dree	dsedtduee	dvee	dwedxdyee	dzee	d{ed|d}ee	d~ee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	dSedTdee	dee	dWedXdee	dee	ded\dee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddee	dee	deddÃee	dee	dedƃdǃee	dee	dedʃd˃ee	dee	ded΃dσee	dee	ded҃dӃee	dee	dedփd׃ee	dee	dedڃdۃee	dee	dedރd߃ee	dee	deddd&ZdS )a   Transformations of Seqs (alphabetic sequences).



Classes :
- Transform   -- Simple transforms of alphabetic strings.
- GeneticCode -- The genetic mapping of DNA to protein.

Functions :
-  mask_low_complexity -- Implementation of Seg algorithm to remove low complexity
        regions from protein sequences.

Other:
-   reduced_protein_alphabets -- A dictionary of transforms that reduce the size of the protein
   alphabet, merging various amino acids into classes.

        "LiBn" where n is 2 to 19 are from Li et al (2003), table I, 2 to 19 groups.
        "LiBn" where n is 2 to 19 are from Li et al (2003), table II (no interlacing),
        2 to 19 groups.

        Ref: Li et al Reduction of protein sequence complexity by residue grouping,
            Prot. Eng. 16 323-330 (2003)

   )dna_extended_lettersdna_ambiguity    )entropy)log2)Seqprotein_alphabetdna_alphabetAlphabet)reduced_protein_alphabet	Transformmask_low_complexityGeneticCodereduced_protein_alphabetsc               @   s0   e Zd ZdZdddddgZddd	Zd
d ZdS )r   a&  A translation between alphabetic strings.
    (This class is not called 'Translation' to avoid confusion with the
    biological translation of RNA to protein.)

    Example:
    trans = Transform(
        Seq("ACGTRYSWKMBDHVN-acgtUuryswkmbdhvnXx?.~", dna_alphabet),
        Seq("ACGTRYSWKMNNNNN-acgtUuryswkmbnnnnXx?.~", reduced_nucleic_alphabet)
        )
    s0 = Seq("AAAAAV", nucleic_alphabet)
    s1 = trans(s0)
    assert(s1.alphabet == reduced_nucleic_alphabet)
    assert(s2 == Seq("AAAAAN",  reduced_nucleic_alphabet)

    Status : Beta
    tablesourcetargetnamedescriptionNc             C   s2   t | | | _|| _|| _|| _|| _d S )N)str	maketranstostringr   r   r   r   r   )selfr   r   r   r    r   [/home/fristb/BIRCH/lib-linux-x86_64/python/lib/python3.7/site-packages/weblogo/transform.py__init__T   s
    zTransform.__init__c             C   sB   | j j|stdt|| j}| jj}||| jj|j	|j
S )zTranslate sequence.zIncompatible alphabets)r   alphabetZ
alphabetic
ValueErrorr   	translater   r   	__class__r   r   )r   seqsclsr   r   r   __call__[   s
    zTransform.__call__)NN)__name__
__module____qualname____doc__	__slots__r   r#   r   r   r   r   r   @   s   
z&ACGTRYSWKMBDHVN-acgtUuryswkmbdhvnXx?.~z&TGCAYRSWMKVHDBN-tgcaAayrswmkvhdbnXx?.~   ?       @Xc             C   sD  t d}|dk s||kr$td| |dk s<||ks<||k rHtd| |dk r\td| |t| krl| S |  }| j|}t| | d }dd td|D }	d	d tdt| jD }
x$|d| D ]}|
|  d7  < qW t|
d
d|	d< xXtd|D ]J}|
||d    d8  < |
||| d    d7  < t|
d
d|	|< q W d}xbtd|D ]T}|rv|	| |k s|	| |k rx td|D ]}|||| < qW d}nd}q^W d}xht|d ddD ]T}|r|	| |k s|	| |k rx td|D ]}|||| < qW d}nd}qW | j|}| j	|_	| j
|_
|S )aR   Mask low complexity regions in protein sequences.

    Uses the method of Seg [1] by Wootton & Federhen [2] to divide a sequence
    into regions of high and low complexity. The sequence is divided into
    overlapping windows. Low complexity windows either have a sequence entropy
    less than the trigger complexity, or have an entropy less than the extension
    complexity and neighbor other low-complexity windows. The sequence within
    a low complexity region is replaced with the mask character (default 'X'),
    and the masked alphabetic sequence is returned.

    The default parameters, width=12, trigger=1.8, extension=2.0, mask='X' are
    suitable for masking protein sequences before a database search. The
    standard default seg parameters are width=12, trigger=2.2, extension=2.5

    Arguments:
        Seq seq         -- An alphabetic sequence
        int width       -- Window width
        float trigger   -- Entropy in bits between 0 and 4.3.. ( =log_2(20) )
        float extension -- Entropy in bits between 0 and 4.3.. ( =log_2(20) )
        char mask       -- The mask character (default: 'X')
    Returns :
        Seq         -- A masked alphabetic sequence
    Raises :
        ValueError  -- On invalid arguments
    Refs:
        [1] seg man page:
            http://bioportal.weizmann.ac.il/education/materials/gcg/seg.html
        [2] Wootton & Federhen (Computers and Chemistry 17; 149-163, (1993))
    Authors:
        GEC 2005
    Future :
        - Optional mask character.
        - Option to lower case masked symbols.
        - Remove arbitary restriction to protein.
       r   zInvalid trigger complexity: %fz Invalid extension complexity: %fzInvalid width: %dr   c             S   s   g | ]}d qS )r   r   ).0xr   r   r   
<listcomp>   s    z'mask_low_complexity.<locals>.<listcomp>c             S   s   g | ]}d qS )r   r   )r.   r/   r   r   r   r0      s       )baseFT)r   r   lenZordsr   ordranger   Zchrsr   r   )r    widthZtrigger	extensionmaskZlg20r!   r,   ZnwindowsentcountciZprev_seggedjZseggedr   r   r   r   m   sN    %"
"
c               @   s~   e Zd ZdZdd Zedd Zedd Zedd	 Ze	d
d Z
e	dd Zdd ZdddZdd Zdd Zdd ZdS )r   ah  An encoding of amino acids by DNA triplets.

    Example :

    Genetic Code [1]: Standard
          T         C         A         G
       +---------+---------+---------+---------+
     T | TTT F   | TCT S   | TAT Y   | TGT C   | T
     T | TTC F   | TCC S   | TAC Y   | TGC C   | C
     T | TTA L   | TCA S   | TAA Stop| TGA Stop| A
     T | TTG L(s)| TCG S   | TAG Stop| TGG W   | G
       +---------+---------+---------+---------+
     C | CTT L   | CCT P   | CAT H   | CGT R   | T
     C | CTC L   | CCC P   | CAC H   | CGC R   | C
     C | CTA L   | CCA P   | CAA Q   | CGA R   | A
     C | CTG L(s)| CCG P   | CAG Q   | CGG R   | G
       +---------+---------+---------+---------+
     A | ATT I   | ACT T   | AAT N   | AGT S   | T
     A | ATC I   | ACC T   | AAC N   | AGC S   | C
     A | ATA I   | ACA T   | AAA K   | AGA R   | A
     A | ATG M(s)| ACG T   | AAG K   | AGG R   | G
       +---------+---------+---------+---------+
     G | GTT V   | GCT A   | GAT D   | GGT G   | T
     G | GTC V   | GCC A   | GAC D   | GGC G   | C
     G | GTA V   | GCA A   | GAA E   | GGA G   | A
     G | GTG V   | GCG A   | GAG E   | GGG G   | G
       +---------+---------+---------+---------+


    See Also :
    -- http://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi?mode=c
    -- http://www.ncbi.nlm.nih.gov/projects/collab/FT/index.html#7.5
    Authors:
        JXG, GEC
    c             C   s   || _ || _|| _|| _|| _|| _|| _g }g }	xTt|D ]H\}
}||
 ||
  ||
  }|dkrn|| ||
 dkr<|	| q<W t	|| _
t	|	| _d| _d| _dS )a:  Create a new GeneticCode.

        Args:
        -- ident - Standard identifier (or zero). An integer
        -- description
        -- amino acid - A sequence of amino acids and stop codons. e.g.
            "FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG"
        -- start - A sequence indicating start codons, e.g.,
            "---M---------------M---------------M----------------------------"
        -- base1 - The first base of each codon. e.g.,
            "TTTTTTTTTTTTTTTTCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGG"
        -- base2 - The second base of each codon. e.g.,
            "TTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGG"
        -- base3 - The last base of each codon. e.g.,
            "TCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAG"
        *MN)identr   
amino_acidstartbase1base2base3	enumerateappendtuplestop_codonsstart_codons_table_back_table)r   rA   r   rB   rC   rD   rE   rF   rJ   rK   r=   acodonr   r   r   r      s&    


zGeneticCode.__init__c               C   s   t S )z(Return a list of standard genetic codes.)_codon_tablesr   r   r   r   std_list  s    zGeneticCode.std_listc               C   s   t d S )z&The standard 'universal' genetic code.r   )rP   r   r   r   r   std$  s    zGeneticCode.stdc             C   s:   x$t D ]}|j| ks|j| kr|S qW tdt|  dS )zDFind a genetic code in the code list by name or identifier.
        zNo such translation table: %sN)rP   rA   r   r   r   )r   tr   r   r   by_name)  s    
zGeneticCode.by_namec             C   s   | j dkr|   | j S )z$A map between codons and amino acidsN)rL   _create_table)r   r   r   r   r   2  s    
zGeneticCode.tablec             C   s   | j dkr|   | j S )z$A map between amino acids and codonsN)rM   rU   )r   r   r   r   
back_table9  s    
zGeneticCode.back_tablec             C   s  | j }| j}| j}| j}i }x4t|D ](\}}|| ||  ||  }|||< q&W i }	t| }
|
  x"|
d d d D ]\}}||	|< qzW d|	d< d|	d< d|	d< d|	d< |	| _i }t	d }g }x:|D ]2}x,|D ]$}x|D ]}|
|| |  qW qW qW x
|D ] }t }|dd}x^t|d	  D ]N}xFt|d
  D ]6}x.t|d  D ]}||| |  }d||< qRW q@W q.W t| }|  t|d
krt|d	 }nP|ddgkrd}n<|ddgkrd}n(|ddgkrd}nd|krd}nd}|||< qW || _d S )Nr3   ZNNNr,   BZJUTr   r   r1    DNEQILr?   ?)rB   rD   rE   rF   rG   listitemssortrM   r   rH   dictreplacer   keysr4   rL   )r   aarD   rE   rF   r   r=   rN   rO   rV   re   ZltablelettersZcodonsc1c2c3CZ
translatedr<   transr   r   r   rU   @  s`    



zGeneticCode._create_tabler   c             C   sf   t |}| j}g }t|}x:t||d dD ]&}|||d   }|||  q,W td|tS )zTranslate a DNA sequence to a polypeptide using full
        IUPAC ambiguities in DNA/RNA and amino acid codes.

        Returns :
        -- Seq - A polypeptide sequence
        r1      r\   )	r   r   r4   r6   upperrH   r   joinr   )r   r    framer   rp   rb   r=   rO   r   r   r   r     s    	zGeneticCode.translatec                s0   | j  t|} fdd|D }td|tS )zConvert protein back into coding DNA.

        Args:
        -- seq - A polypeptide sequence.

        Returns :
        -- Seq - A DNA sequence
        c                s   g | ]} | qS r   r   )r.   rN   )r   r   r   r0     s    z.GeneticCode.back_translate.<locals>.<listcomp>r\   )rV   r   r   rs   r	   )r   r    rp   r   )r   r   back_translate  s    zGeneticCode.back_translatec             C   s   g }|d| j  7 }|| j7 }|d7 }|d7 }|| j7 }|d7 }|d7 }|| j7 }|d7 }|d7 }|| j7 }|d7 }|d7 }|| j7 }|d7 }|d7 }|| j7 }|d	7 }d
|S )NzGeneticCode( %d, "z", 
z    amino_acid = "z",
z    start =      "z    base1 =      "z    base2 =      "z    base3 =      "z" )r\   )rA   r   rB   rC   rD   rE   rF   rs   )r   stringr   r   r   __repr__  s(    





zGeneticCode.__repr__c       	      C   sd  d}g }| j r|d| j  7 }n|d7 }|| jp0d7 }|d7 }|ddd |D 7 }|d	7 }|d
dd |D d 7 }| j}x|D ]}x|D ]}|d7 }||7 }|d7 }xj|D ]b}|| | }|d| 7 }|| jkr|d7 }q||d}|| jkr|d| 7 }q|d| 7 }qW |d| 7 }qW |d	7 }|d
dd |D 7 }|d7 }qW |d7 }d|S )z3Returns a text representation of this genetic code.ZTCAGzGenetic Code [%d]: zGenetic Code: r\   z
     c             S   s   g | ]}d | qS )z
  %s      r   )r.   rm   r   r   r   r0     s    z'GeneticCode.__str__.<locals>.<listcomp>z
   ++c             S   s   g | ]}d qS )z	---------r   )r.   rm   r   r   r   r0     s    z+  z
 z |z Stop|rc   z %s(s)|z %s   |c             S   s   g | ]}d qS )z	---------r   )r.   rm   r   r   r   r0     s    
)rA   r   rs   r   rJ   getrK   )	r   rk   rv   r   rl   rn   rm   rO   Zaminor   r   r   __str__  s>    




zGeneticCode.__str__N)r   )r$   r%   r&   r'   r   staticmethodrQ   rR   rT   propertyr   rV   rU   r   ru   rw   r|   r   r   r   r   r      s   #,	B
ZStandardz@FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@---M---------------M---------------M----------------------------Z@TTTTTTTTTTTTTTTTCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGGZ@TTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGZ@TCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGr1   zVertebrate Mitochondrialz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSS**VVVVAAAADDEEGGGGz@--------------------------------MMMM---------------M------------rq   zYeast Mitochondrialz@FFLLSSSSYY**CCWWTTTTPPPPHHQQRRRRIIMMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@----------------------------------MM----------------------------   zDMold, Protozoan, Coelenterate Mitochondrial & Mycoplasma/Spiroplasmaz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@--MM---------------M------------MMMM---------------M------------   zInvertebrate Mitochondrialz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSSSSVVVVAAAADDEEGGGGz@---M----------------------------MMMM---------------M------------   z+Ciliate, Dasycladacean and Hexamita Nuclearz@FFLLSSSSYYQQCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@-----------------------------------M----------------------------	   z%Echinoderm and Flatworm Mitochondrialz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNNKSSSSVVVVAAAADDEEGGGGz@-----------------------------------M---------------M------------
   zEuplotid Nuclearz@FFLLSSSSYY**CCCWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG   zBacterial and Plant Plastidz@---M---------------M------------MMMM---------------M------------zAlternative Yeast Nuclearz@FFLLSSSSYY**CC*WLLLSPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@-------------------M---------------M----------------------------   zAscidian Mitochondrialz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSSGGVVVVAAAADDEEGGGG   z"Alternative Flatworm Mitochondrialz@FFLLSSSSYYY*CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNNKSSSSVVVVAAAADDEEGGGG   zBlepharisma Nuclearz@FFLLSSSSYY*QCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG   zChlorophycean Mitochondrialz@FFLLSSSSYY*LCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG   zTrematode Mitochondrialz@FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNNKSSSSVVVVAAAADDEEGGGG   z"Scenedesmus obliquus Mitochondrialz@FFLLSS*SYY*LCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG   zThraustochytrium Mitochondrialz@FF*LSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGGz@--------------------------------M--M---------------M------------zCFYWMLIV-GPATSNHQEDRKX*-zIIIIIIII-SSSSSSSSSSSSX*-zISX*-z"Li et al (2003), table II, group 2zCFYWMLIV-GPATS-NHQEDRKX*-zIIIIIIII-SSSSS-EEEEEEEX*-zISEX*-z"Li et al (2003), table II, group 3zCFYW-MLIV-GPATS-NHQEDRKX*-zYYYY-IIII-SSSSS-EEEEEEEX*-zYISEX*-z"Li et al (2003), table II, group 4zCFYW-MLIV-G-PATS-NHQEDRKX*-zYYYY-IIII-G-SSSS-EEEEEEEX*-zYIGSEX*-z"Li et al (2003), table II, group 5zCFYW-MLIV-G-P-ATS-NHQEDRKX*-zYYYY-IIII-G-P-SSS-EEEEEEEX*-z	YIGPSEX*-z"Li et al (2003), table II, group 6zCFYW-MLIV-G-P-ATS-NHQED-RKX*-zYYYY-IIII-G-P-SSS-EEEEE-KKX*-z
YIGPSEKX*-z"Li et al (2003), table II, group 7zCFYW-MLIV-G-P-ATS-NH-QED-RKX*-zYYYY-IIII-G-P-SSS-NN-EEE-KKX*-zYIGPSNEKX*-z"Li et al (2003), table II, group 8zCFYW-ML-IV-G-P-ATS-NH-QED-RKX*-zYYYY-LL-II-G-P-SSS-NN-EEE-KKX*-zYLIGPSNEKX*-z"Li et al (2003), table II, group 9z C-FYW-ML-IV-G-P-ATS-NH-QED-RKX*-z C-YYY-LL-II-G-P-SSS-NN-EEE-KKX*-zCYLIGPSNEKX*-z#Li et al (2003), table II, group 10z!C-FYW-ML-IV-G-P-A-TS-NH-QED-RKX*-z!C-YYY-LL-II-G-P-A-SS-NN-EEE-KKX*-zCYLIGPASNEKX*-z#Li et al (2003), table II, group 11z"C-FYW-ML-IV-G-P-A-TS-NH-QE-D-RKX*-z"C-YYY-LL-II-G-P-A-SS-NN-EE-D-KKX*-zCYLIGPASNEDKX*-z#Li et al (2003), table II, group 12z#C-FYW-ML-IV-G-P-A-T-S-NH-QE-D-RKX*-z#C-YYY-LL-II-G-P-A-T-S-NN-EE-D-KKX*-zCYLIGPATSNEDKX*-z#Li et al (2003), table II, group 13z$C-FYW-ML-IV-G-P-A-T-S-N-H-QE-D-RKX*-z$C-YYY-LL-II-G-P-A-T-S-N-H-EE-D-KKX*-zCYLIGPATSNHEDKX*-z#Li et al (2003), table II, group 14z%C-FYW-ML-IV-G-P-A-T-S-N-H-QE-D-R-KX*-z%C-YYY-LL-II-G-P-A-T-S-N-H-EE-D-R-KX*-zCYLIGPATSNHEDRKX*-z#Li et al (2003), table II, group 15z&C-FY-W-ML-IV-G-P-A-T-S-N-H-QE-D-R-KX*-z&C-YY-W-LL-II-G-P-A-T-S-N-H-EE-D-R-KX*-zCYWLIGPATSNHEDRKX*-z#Li et al (2003), table II, group 16z'C-FY-W-ML-IV-G-P-A-T-S-N-H-Q-E-D-R-KX*-z'C-YY-W-LL-II-G-P-A-T-S-N-H-Q-E-D-R-KX*-zCYWLIGPATSNHQEDRKX*-z#Li et al (2003), table II, group 17z(C-FY-W-M-L-IV-G-P-A-T-S-N-H-Q-E-D-R-KX*-z(C-YY-W-M-L-II-G-P-A-T-S-N-H-Q-E-D-R-KX*-zCYWMLIGPATSNHQEDRKX*-z#Li et al (2003), table II, group 18z)C-F-Y-W-M-L-IV-G-P-A-T-S-N-H-Q-E-D-R-KX*-z)C-F-Y-W-M-L-II-G-P-A-T-S-N-H-Q-E-D-R-KX*-zCFYWMLIGPATSNHQEDRKX*-z#Li et al (2003), table II, group 19z*C-F-Y-W-M-L-I-V-G-P-A-T-S-N-H-Q-E-D-R-KX*-zCFYWMLIVGPATSNHQEDRKX*-z#Li et al (2003), table II, group 20zCMFILVWY-AGTSNQDEHRKPX*-z!Li et al (2003), table I, group 2zCMFILVWY-AGTSP-NQDEHRKX*-z!Li et al (2003), table I, group 3zCMFWY-ILV-AGTS-NQDEHRKPX*-zYYYYY-III-SSSS-EEEEEEEEX*-z!Li et al (2003), table I, group 4zFWYH-MILV-CATSP-G-NQDERKX*-zYYYY-IIII-SSSSS-G-EEEEEEX*-zYISGEX*-z!Li et al (2003), table I, group 5zFWYH-MILV-CATS-P-G-NQDERKX*-zYYYY-IIII-SSSS-P-G-EEEEEEX*-z	YISPGEX*-z!Li et al (2003), table I, group 6zFWYH-MILV-CATS-P-G-NQDE-RKX*-zYYYY-IIII-SSSS-P-G-EEEE-KKX*-z
YISPGEKX*-z!Li et al (2003), table I, group 7zFWYH-MILV-CA-NTS-P-G-DE-QRKX*-zYYYY-IIII-AA-SSS-P-G-NN-KKKX*-zYIASPGNKX*-z!Li et al (2003), table I, group 8zFWYH-ML-IV-CA-NTS-P-G-DE-QRKX*-zYYYY-LL-VV-AA-SSS-P-G-NN-KKKX*-zYLVASPGNKX*-z!Li et al (2003), table I, group 9z FWY-ML-IV-CA-TS-NH-P-G-DE-QRKX*-z YYY-LL-VV-AA-TT-NN-P-G-DD-KKKX*-zYLVATNPGDKX*-z"Li et al (2003), table I, group 10z!FWY-ML-IV-CA-TS-NH-P-G-D-QE-RKX*-z!YYY-LL-VV-AA-TT-NN-P-G-D-EE-KKX*-zYLVATNPGDEKX*-z"Li et al (2003), table I, group 11z"FWY-ML-IV-C-A-TS-NH-P-G-D-QE-RKX*-z"YYY-LL-VV-C-A-TT-NN-P-G-D-EE-KKX*-zYLVCATNPGDEKX*-z"Li et al (2003), table I, group 12z#FWY-ML-IV-C-A-T-S-NH-P-G-D-QE-RKX*-z#YYY-LL-VV-C-A-T-S-NN-P-G-D-EE-KKX*-zYLVCATSNPGDEKX*-z"Li et al (2003), table I, group 13z$FWY-ML-IV-C-A-T-S-NH-P-G-D-QE-R-KX*-z$YYY-LL-VV-C-A-T-S-NN-P-G-D-EE-R-KX*-zYLVCATSNPGDERKX*-z"Li et al (2003), table I, group 14z%FWY-ML-IV-C-A-T-S-N-H-P-G-D-QE-R-KX*-z%YYY-LL-VV-C-A-T-S-N-H-P-G-D-EE-R-KX*-zYLVCATSNHPGDERKX*-z"Li et al (2003), table I, group 15z&W-FY-ML-IV-C-A-T-S-N-H-P-G-D-QE-R-KX*-z&W-YY-LL-VV-C-A-T-S-N-H-P-G-D-EE-R-KX*-zWYLVCATSNHPGDERKX*-z"Li et al (2003), table I, group 16z'W-FY-ML-IV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-z'W-YY-LL-VV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-zWYLVCATSNHPGDQERKX*-z"Li et al (2003), table I, group 17z(W-FY-M-L-IV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-z(W-YY-M-L-VV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-zWYMLVCATSNHPGDQERKX*-z"Li et al (2003), table I, group 18z)W-F-Y-M-L-IV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-z)W-F-Y-M-L-VV-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-zWFYMLVCATSNHPGDQERKX*-z"Li et al (2003), table I, group 19z*W-F-Y-M-L-I-V-C-A-T-S-N-H-P-G-D-Q-E-R-KX*-zWFYMLIVCATSNHPGDQERKX*-z"Li et al (2003), table I, group 20)&ZLiB2ZLiB3ZLiB4ZLiB5ZLiB6ZLiB7ZLiB8ZLiB9ZLiB10ZLiB11ZLiB12ZLiB13ZLiB14ZLiB15ZLiB16ZLiB17ZLiB18ZLiB19ZLiB20ZLiA2ZLiA3ZLiA4ZLiA5ZLiA6ZLiA7ZLiA8ZLiA9ZLiA10ZLiA11ZLiA12ZLiA13ZLiA14ZLiA15ZLiA16ZLiA17ZLiA18ZLiA19ZLiA20N)r)   r*   r+   r,   )r'   datar   r   Zscipy.statsr   numpyr   r    r   r   r	   r
   r   Zstd_protein_alphabet__all__objectr   Zdna_complementr   r   rP   r   r   r   r   r   <module>/   s  '
]  /