ó
O^Ã]c           @   sä  e  d  d ƒ Z e  d d ƒ Z i  Z i  Z i  Z i  Z i  Z d Z x« e j	 ƒ  D] Z
 e d Z e d d k r d e e ƒ GHn  e
 j d d ƒ j d	 d ƒ j d
 ƒ Z e d d !Z e d e e d <e d d k rO e d e e d <qO qO Wd Z x‹ e j	 ƒ  D]} Z
 e d Z e d d k r5d e e ƒ GHn  e
 j d d ƒ j d	 d ƒ j d
 ƒ Z e d e e d <e d e e d <qWd e d <d e d <d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   s:   /mounts/lovelace/aDNA/reference-genomes/taxonomy/names.dmpt   rs:   /mounts/lovelace/aDNA/reference-genomes/taxonomy/nodes.dmpi    i   i † s   names.dmp: processing line s   	t    s   
t   |i   i   s   scientific names   nodes.dmp: processing line i   t   9606t   110190t
   subspeciesc         C   sW   g  } t  } xD | t  k rR | j t |  ƒ |  d k rE | St } q t |  }  q Wd  S(   Nt   1(   t   Falset   appendt   rankt   Truet   parent(   t   current_taxidt   parentst   found(    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   find_rankofparents%   s    	c         C   s   t  |  } | S(   N(   t   name(   t   taxidt   textname(    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   name1/   s    
c         C   sx   g  } t  } xe | t  k rs | j t |  ƒ |  d k rE d St } q t |  d k rf t |  St } q t |  }  q Wd  S(   NR   t   NOFAMILY_FOUNDt   family(   R   R   R   R
   R	   R   (   R   R   R   (    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   find_family3   s    		c         C   s`   |  d k rV |  j  d ƒ d j d d ƒ } y t | } t | } Wq\ d } q\ Xn |  } | S(   Nt   NOMATCH_1_ID_onlyt   :i    t   _t    t   rank_not_found(   t   splitt   replacet   id_from_nameR	   (   t   lcaR   R   t   rank1(    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   get_rankB   s    
c         C   sW   g  } t  } xD | t  k rR | j t |  ƒ |  d k rE | St } q t |  }  q Wd  S(   NR   (   R   R   R   R
   R   (   R   R   R   (    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   find_parentsP   s    	c         C   sF   t  |  ƒ } t |  ƒ } g  t | | ƒ D] \ } } | d | ^ q( S(   Nt   ;(   R"   R   t   zip(   R   t   at   bt   it   j(    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   find_parents_w_rank\   s    c         C   s5   x. t  |  ƒ D]  } | t  | ƒ k r | SPq q Wd  S(   N(   R"   (   t   taxid1t   taxid2R'   (    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   find_LCAc   s    c         C   sg   d } g  } xT |  D]L } | d 7} | d k r; | } q q y t  t | | ƒ } Wq q q Xq W| S(   Ni    i   (   R   R,   (   t
   taxid_listt   countt   prev_LCA_idR   (    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   taxidlist2LCAi   s    
N(   t   opent   namest   nodesR   R   R   R	   t   gi2taxidt   lines_processedt	   readlinest   linet   strR   R   t   textR   R   R   R!   R"   R)   R,   R0   (    (    (    sd   /mounts/lovelace/aDNA/DNA-Sequence-Analysis/aDNA/software-to-sort/getLCA-master/get_LCA_functions.pyt   <module>   sD   
'
'

	
						