ó
ÿfmSc           @   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 d „  Z e d „ Z d S(   iÿÿÿÿN(   t   Genome(   t   environt   CISTEMATIC_ROOTs   /proj/genomes    %s/M_domestica/mdomestica.genedbc         C   s›  g  } d } t  d d |  ƒ} t | d ƒ } | j ƒ  } xQ| d k rŒg  } d } | j ƒ  d } | j ƒ  }	 xU |	 d k rÇ |	 d d k rÇ |	 j ƒ  }
 | t |
 ƒ 7} | j |
 ƒ | j ƒ  }	 qs Wt j | d ƒ } | d k  r'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
   mdomesticat   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   lent   appendt   stringt   joint   addSequencet   strt   addChromosomeEntryt   cisRoott   writet   close(   R	   t	   chromPatht   chromOutPatht   seqArrayt   seqLent   mdGenomet   inFilet   headert   chromIDt   currentLinet   lineSeqt   seqt   outFileNamet   outFile(    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   loadChromosome+   s8    	"
	
c      	   C   sô   g  } t  d d |  ƒ} t | d ƒ } xª | D]¢ } | j d ƒ } | d } t | d ƒ } t | d ƒ }	 | d }
 | d	 } |
 d
 k r– d }
 n d }
 d | f } d	 } | j | | | |	 |
 d | f ƒ q. Wd t | ƒ GH| j | ƒ d S(   s<    FIXME - NEED TO DEAL WITH ALTERNATIVE SPLICING ENTRIES
    R   R   R   s   	i    i   i   i   i   t   +t   Ft   Rt   genes   Adding %d gene entriesN(   R    R   t   splitt   intR   R   t   addGeneEntryBatch(   R	   t   gFilet   geneEntriesR   t   geneFilet   linet   colst   gidt   startt   stopt   senset   chromt   geneIDt
   gidVersion(    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   loadGeneEntriesN   s$    


	&c   	      C   sÌ   g  } t  | d ƒ } t d d |  ƒ} x‚ | D]z } yj | j d ƒ } | d } | d } t | ƒ d k r | j d | f t j | j ƒ  d d ƒ f ƒ n  Wq. q. Xq. Wd	 t | ƒ GH| j | ƒ d  S(
   NR   R   R   s   	i    i   t   't   ps   Adding %d annotations(	   R   R    R+   R   R   R   t   replaceR   t   addAnnotationBatch(	   R	   t	   annotPatht   geneAnnotationst	   annotFileR   R1   R2   t   locIDt   geneDesc(    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   loadGeneAnnotationsh   s    

5c      
   C   s@  t  | d ƒ } i d d 6d d 6d d 6} g  } g  } xË| D]Ã} | j d ƒ } t | d ƒ } | d	 j d
 ƒ }	 | d j d
 ƒ }
 | d } | | d } t | d ƒ d } t | d ƒ d } | d } y d | f } Wn
 q= n Xd } | | k r
d } n | j | ƒ xæt | ƒ D]Ø} t |	 | ƒ d } t |
 | ƒ d } | | k r| | k r| j | | | | | | d f ƒ q$| | k rÛ| d k r°d } n d } | j | d | | | | | f ƒ q$| | k r'| d k rüd } n d } | j | d | | | | | f ƒ q$| | k r™| d k rHd } n d } | j | d | | | | d f ƒ | j | d | | d | | | f ƒ q$| d k r®d } n d } | j | d | | | | d f ƒ | j | d | | | d | | f ƒ q$Wq= W| j ƒ  t d d |  ƒ} d t | ƒ GH| j | ƒ d  S(   NR   R(   R'   R)   t   -t   .s   	i   i   t   ,i	   i   i   i   i   i    R   t   1t   2t   CDSt   5UTRt   3UTRR   s   Adding %d features(	   R   R+   R,   R   t   rangeR   R    R   t   addFeatureEntryBatch(   R	   t   gfileR0   t
   senseArrayt	   seenArrayt   insertArrayt   geneLinet
   geneFieldst   exonNumt
   exonStartst	   exonStopsR7   R6   t   gstopt   gstartt   geneidR8   R9   t   indext   estartt   estopt   fTypeR   (    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   loadGeneFeaturesz   sl    



	%	%	%	")	".
c         C   s#   t  d d |  ƒ} | j |  ƒ d  S(   NR   R   (   R    t   createGeneDB(   R	   R   (    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   createDBFileÂ   s    c         C   s    t  d d |  ƒ} | j ƒ  d  S(   NR   R   (   R    t   createIndices(   R	   R   (    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.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/mondom/genscan.txts   %s/download/mondom/softMask.fas   /M_domestica/s   Creating database %ss   Adding gene entriess   Adding gene featuress   Loading chromosomess   Creating Indicess   Finished creating database %s(   R   Ra   R:   R_   R&   Rc   (   R	   t   genePatht
   chromoPatht   chromoOutPath(    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   buildMdomesticaDBÌ   s    

	

(   R   t   cistematic.genomesR    t   osR   t   getR   t   geneDBR&   R:   RD   R_   Ra   Rc   Rg   (    (    (    sg   /woldlab/castor/data00/home/georgi/code/erange-4.0a-BAM-2014-05-09-fix/cistematic/genomes/mdomestica.pyt   <module>   s   
	#			H		