
    Ri~                         d Z ddlZd Zd Zy)zLocal Composition Complexity.    Nc                    t        j                  d      }| j                         } t        |       }dg}g }t	        |      D ]8  }|j                  |dz   |z  t        j                  |dz   |z        z  |z         : | d| }|j                  d      }|j                  d      }	|j                  d      }
|j                  d      }||   }||	   }||
   }||   }|j                  ||z   |z   |z           | d   }t	        ||z
        D ]4  }| |dz   ||z   dz    }||d   k(  r|j                  |d          n |dk(  r|dz  }|j                  d      r,|	dz  }	||   }||	   }|j                  ||z   |z   |z           n|j                  d      r,|
dz  }
||   }||
   }|j                  ||z   |z   |z           n||j                  d      rj|dz  }||   }||   }|j                  ||z   |z   |z           n>|dk(  r|	dz  }	|j                  d      r,|dz  }||   }||	   }|j                  ||z   |z   |z           n|j                  d      r,|
dz  }
||	   }||
   }|j                  ||z   |z   |z           n|j                  d      r|dz  }||	   }||   }|j                  ||z   |z   |z           n||dk(  r|
dz  }
|j                  d      r,|dz  }||   }||
   }|j                  ||z   |z   |z           n5|j                  d      r+|	dz  }	||	   }||
   }|j                  ||z   |z   |z           n|j                  d      r|dz  }||
   }||   }|j                  ||z   |z   |z           n|dk(  r|dz  }|j                  d      r+|dz  }||   }||   }|j                  ||z   |z   |z           nw|j                  d      r+|	dz  }	||	   }||   }|j                  ||z   |z   |z           n;|j                  d      r*|
dz  }
||
   }||   }|j                  ||z   |z   |z           |d   }7 |S )	a  Calculate Local Composition Complexity (LCC) values over sliding window.

    Returns a list of floats, the LCC values for a sliding window over
    the sequence.

    seq - an unambiguous DNA sequence (a string or Seq object)
    wsize - window size, integer

    The result is the same as applying lcc_simp multiple times, but this
    version is optimized for speed. The optimization works by using the
    value of previous window as a base to compute the next one.
       r      ACTG)mathlogupperlenrangeappendcountendswith)seqwsizel4tamseqcomponelccsaliwindowcant_acant_ccant_tcant_gterm_aterm_cterm_tterm_gtailxs                     H/home/agent/.friday_env/lib/python3.12/site-packages/Bio/SeqUtils/lcc.pylcc_multr&      s    
!B
))+CXFcGF5\ KQ%488QUeO+DDrIJK5\F\\#F\\#F\\#F\\#FV_FV_FV_FV_F
MMFVOf,v567q6D6E>" HQUUQY]+6":MM&*%S[aKFs#!  & 86 ABC%!  & 86 ABC%!  & 86 ABCS[aKFs#!  & 86 ABC%!  & 86 ABC%!  & 86 ABCS[aKFs#!  & 86 ABC%!  & 86 ABC%!  & 86 ABCS[aKFs#!  & 86 ABC%!  & 86 ABC%!  & 86 ABCayQHR M    c                    t        |       }| j                         } t        j                  d      }d| vrd}n?| j	                  d      |z  t        j                  | j	                  d      |z        z  |z  }d| vrd}n?| j	                  d      |z  t        j                  | j	                  d      |z        z  |z  }d| vrd}n?| j	                  d      |z  t        j                  | j	                  d      |z        z  |z  }d| vrd}n?| j	                  d      |z  t        j                  | j	                  d      |z        z  |z  }||z   |z   |z    S )ab  Calculate Local Composition Complexity (LCC) for a sequence.

    seq - an unambiguous DNA sequence (a string or Seq object)

    Returns the Local Composition Complexity (LCC) value for the entire
    sequence (as a float).

    Reference:
    Andrzej K Konopka (2005) Sequence Complexity and Composition
    https://doi.org/10.1038/npg.els.0005260
    r   r   r   r   r   r	   )r   r   r   r   r   )r   r   r   r   r    r!   r"   s          r%   lcc_simpr)   x   s4    HE
))+C	!B
#~))C.5(DHHSYYs^e5K,LLrQ
#~))C.5(DHHSYYs^e5K,LLrQ
#~))C.5(DHHSYYs^e5K,LLrQ
#~))C.5(DHHSYYs^e5K,LLrQf_v%.//r'   )__doc__r   r&   r)    r'   r%   <module>r,      s    $ hV 0r'   