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