Mercurial > repos > yating-l > jbrowse_hub
comparison trackObject.py @ 31:d8049deb0c97 draft
planemo upload for repository https://github.com/Yating-L/jbrowse_hub commit faeedda55e23f1197bc454d3db2d52af29d786e8-dirty
| author | yating-l |
|---|---|
| date | Fri, 17 Mar 2017 12:28:32 -0400 |
| parents | 5580dbf2a31c |
| children | 046c5bfc0413 |
comparison
equal
deleted
inserted
replaced
| 30:daf6a1122200 | 31:d8049deb0c97 |
|---|---|
| 3 import os | 3 import os |
| 4 import shutil | 4 import shutil |
| 5 import utils | 5 import utils |
| 6 import bedToGff3 | 6 import bedToGff3 |
| 7 import blastxmlToGff3 | 7 import blastxmlToGff3 |
| 8 import tempfile | 8 |
| 9 import subprocess | |
| 10 | 9 |
| 11 class trackObject: | 10 class trackObject: |
| 12 def __init__(self, chrom_size, genome, extra_files_path): | 11 def __init__(self, chrom_size, genome, extra_files_path): |
| 13 self.chrom_size = chrom_size | 12 self.chrom_size = chrom_size |
| 14 outputDirect = os.path.join(extra_files_path, genome) | 13 outputDirect = os.path.join(extra_files_path, genome) |
| 15 self.raw_folder = os.path.join(outputDirect, 'raw') | 14 self.raw_folder = os.path.join(outputDirect, 'raw') |
| 16 print self.raw_folder | 15 #Store metadata of the tracks |
| 17 self.tracks = [] | 16 self.tracks = [] |
| 18 try: | 17 try: |
| 19 if os.path.exists(self.raw_folder): | 18 if os.path.exists(self.raw_folder): |
| 20 if os.path.isdir(self.raw_folder): | 19 if os.path.isdir(self.raw_folder): |
| 21 shutil.rmtree(self.raw_folder) | 20 shutil.rmtree(self.raw_folder) |
| 23 os.remove(self.raw_folder) | 22 os.remove(self.raw_folder) |
| 24 os.makedirs(self.raw_folder) | 23 os.makedirs(self.raw_folder) |
| 25 except OSError as oserror: | 24 except OSError as oserror: |
| 26 print "Cannot create raw folder error({0}): {1}".format(oserror.errno, oserror.strerror) | 25 print "Cannot create raw folder error({0}): {1}".format(oserror.errno, oserror.strerror) |
| 27 | 26 |
| 28 def addToRaw(self, dataFile, dataType): | 27 def addToRaw(self, dataFile, dataType, metaData): |
| 29 ''' | 28 """ |
| 30 Convert gff3, BED, blastxml and gtf files into gff3 files | 29 Convert gff3, BED, blastxml and gtf files into gff3 files |
| 31 and store converted files in folder 'raw' | 30 and store converted files in folder 'raw' |
| 32 ''' | 31 """ |
| 33 | 32 |
| 34 fileName = os.path.basename(dataFile) | 33 fileName = os.path.basename(dataFile) |
| 35 des_path = os.path.join(self.raw_folder, fileName) | 34 des_path = os.path.join(self.raw_folder, fileName) |
| 36 track = {} | 35 track = {} |
| 37 if dataType == 'gff3_mrna' or dataType == 'gff3_transcript' or dataType == 'fasta' or dataType == 'bam' or dataType == 'bigwig' or dataType == 'bai': | 36 if dataType == 'gff3_mrna' or dataType == 'gff3_transcript' or dataType == 'fasta' or dataType == 'bam' or dataType == 'bigwig' or dataType == 'bai': |
| 59 blastxmlToGff3.blastxml2gff3(dataFile, des_path) | 58 blastxmlToGff3.blastxml2gff3(dataFile, des_path) |
| 60 elif dataType == 'gtf': | 59 elif dataType == 'gtf': |
| 61 utils.gtfToGff3(dataFile, des_path, self.chrom_size) | 60 utils.gtfToGff3(dataFile, des_path, self.chrom_size) |
| 62 track['fileName'] = fileName | 61 track['fileName'] = fileName |
| 63 track['dataType'] = dataType | 62 track['dataType'] = dataType |
| 63 track.update(metaData) | |
| 64 if 'label' not in metaData.keys(): | |
| 65 track['label'] = fileName | |
| 64 self.tracks.append(track) | 66 self.tracks.append(track) |
| 65 | |
| 66 | |
| 67 | |
| 68 ''' | |
| 69 def checkGff3(self, dataFile, dataType): | |
| 70 with open(dataFile, 'r') as f: | |
| 71 for line in f: | |
| 72 if not line.startswith('#'): | |
| 73 seq_type = line.rstrip().split('\t')[2] | |
| 74 if seq_type == 'transcript': | |
| 75 return 'gff3-transcript' | |
| 76 if seq_type == 'mRNA': | |
| 77 return 'gff3' | |
| 78 ''' |
