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 '''