ó
÷VêNc           @   sš   d  d l  Z  d  d l m Z d  d l m Z e j d ƒ rM e j d ƒ Z n d Z d e Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z e d „ Z d S(   iÿÿÿÿN(   t   Genome(   t   environt   CISTEMATIC_ROOTs   /proj/genomes   %s/C_brenneri/cbrenneri.genedbc         C   s«  g  } d } t  d d |  ƒ} t | d ƒ } | j ƒ  } xa| d k rœg  } d } | j ƒ  d j ƒ  } | d }	 | j ƒ  }
 xU |
 d k r× |
 d d k r× |
 j ƒ  } | t | ƒ 7} | j | ƒ | j ƒ  }
 qƒ Wt j | d ƒ } | d k  r7d	 |	 GH| j	 d |	 f | d
 t
 | ƒ ƒ | j |	 |	 d ƒ n\ d | |	 f } t d t | f d ƒ } | j | ƒ | j ƒ  d | GH| j |	 | d ƒ |
 } q< W| j ƒ  d  S(   Ni    t	   cbrennerit   dbFilet   rt    i   t   >i † s   Added contig %s to databaset
   chromosomet   dbs   %s%s.bins   %s%st   ws    Added contig file %s to databaset   file(   R    t   opent   readlinet   stript   splitt   lent   appendt   stringt   joint   addSequencet   strt   addChromosomeEntryt   cisRoott   writet   close(   R	   t	   chromPatht   chromOutPatht   seqArrayt   seqLent   cbGenomet   inFilet   headert   chromHeadert   chromIDt   currentLinet   lineSeqt   seqt   outFileNamet   outFile(    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   loadChromosome+   s:    
	"
	
c      	   C   s$  t  d d |  ƒ} t | d ƒ } i  } i  } i  } i  } g  } x^| D]V}	 |	 d d k rb qF n  |	 d d k rx qF n  |	 d  j d ƒ }
 |
 d	 d
 k r± |
 d	 d k r± qF n  |
 d j d ƒ } | d } d | f } |
 d } |
 d j ƒ  | | <| d k rd | | <n
 d | | <|
 d	 d k re| d k rNt |
 d ƒ | | <qœt |
 d ƒ | | <qF | d k rˆt |
 d ƒ | | <qF t |
 d ƒ | | <qF Wxa | D]Y } | | k rÎd t | ƒ GHq§n  | j | | | | | | | | | d d f ƒ q§Wd t | ƒ GH| j | ƒ d  S(   NR   R   R   i    t   #s   
iÿÿÿÿs   	i   t
   stop_codont   start_codoni   t   "i   i   t   +t   Ft   Ri   i   s$   geneID %s not in geneStop - skippingt   CDSs   Adding %d gene entries(	   R    R   R   R   t   intR   R   R   t   addGeneEntryBatch(   R	   t   gffFileR   t   geneFilet	   geneStartt   geneStopt	   geneChromt	   geneSenset   geneEntriest   linet   fieldt   idfieldt   gidt   geneIDt   sense(    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   loadGeneEntriesP   sJ     


6c      	   C   sU  t  d d |  ƒ} t | d ƒ } g  } x| D]} | d d k rJ q. n  | d d k r` q. n  | j d ƒ } | d j ƒ  d	 k r‹ q. n  | d
 j d ƒ } | d } d | f }	 d }
 t | d ƒ } t | d ƒ } | d } | d j ƒ  } | d k r	d } n d } | j |	 |
 | | | | d	 f ƒ q. Wd t | ƒ GH| j | ƒ d  S(   NR   R   R   i    R)   s   
s   	i   R0   i   R,   i   i   i   i   R-   R.   R/   s   Adding %d feature entries(   R    R   R   R   R1   R   R   t   addFeatureEntryBatch(   R	   R3   R   t   featureFilet   featureEntriesR:   R;   t   gidrevR=   R>   t
   gidVersiont   startt   stopR?   t   chrom(    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   loadFeatureEntriesƒ   s2    

	&c         C   s)   t  d d d d |  ƒ} | j |  ƒ d  S(   NR   t   versiont
   PB2801_001R   (   R    t   createGeneDB(   R	   R   (    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   createDBFile§   s    c         C   s&   t  d d d d |  ƒ} | j ƒ  d  S(   NR   RJ   RK   R   (   R    t   createIndices(   R	   R   (    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   createDBindices¬   s    c         C   s‚   d t  } d t  } d } d |  GHt |  ƒ d GHt |  | ƒ d GHt |  | ƒ d GHt |  | | ƒ d GHt |  ƒ d	 |  GHd  S(
   Ns    %s/download/PB2801_2007feb09.gffs"   %s/download/PB2801_supercontigs.fas   /C_brenneri/s   Creating database %ss   Adding gene entriess   Adding feature entriess   Loading genomic sequences   Creating Indicess   Finished creating database %s(   R   RM   R@   RI   R(   RO   (   R	   t   gffPatht
   chromoPatht   chromoOutPath(    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   buildCbrenneriDB±   s    

	

(   R   t   cistematic.genomesR    t   osR   t   getR   t   geneDBR(   R@   RI   RM   RO   RS   (    (    (    sW   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM/cistematic/genomes/cbrenneri.pyt   <module>   s   
	%	3	$		