Mercurial > repos > yating-l > jbrowse_hub
diff trackObject.py @ 0:e4f3f2ed4fa5 draft
planemo upload for repository https://github.com/Yating-L/jbrowse_hub commit f18ea51d27ec7addfa6413716391cfefebc8acbc-dirty
author | yating-l |
---|---|
date | Fri, 10 Mar 2017 13:48:19 -0500 |
parents | |
children | e7c80e9b70ae |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trackObject.py Fri Mar 10 13:48:19 2017 -0500 @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import os +import shutil +import utils +import bedToGff3 +import blastxmlToGff3 + +class trackObject: + def __init__(self, dataFile, dataType, chrom_size): + self.dataFile = dataFile + self.fileName = os.path.basename(dataFile) + self.dataType = dataType + self.chrom_size = chrom_size + try: + if not os.path.exists('raw'): + os.mkdir('raw') + except OSError as oserror: + print "Cannot create raw folder error({0}): {1}".format(oserror.errno, oserror.strerror) + else: + self.raw_folder = 'raw' + + def addToRaw(self): + des_path = os.path.join(self.raw_folder, self.fileName) + if self.dataType == 'gff3' or self.dataType == 'fasta' or self.dataType == 'bam' or self.dataType == 'bigwig' or self.dataType == 'bai': + if self.dataType == 'gff3': + self.checkGff3() + try: + shutil.copyfile(self.dataFile, des_path) + except shutil.Error as err1: + print "Cannot move file, error({0}: {1})".format(err1.errno, err1.strerror) + except IOError as err2: + print "Cannot move file, error({0}: {1})".format(err2.errno, err2.strerror) + elif self.dataType == 'bedSimpleRepeats': + bedToGff3.bedToGff3(self.dataFile, self.chrom_size, 'trfbig', des_path) + elif self.dataType == 'bedSpliceJunctions': + bedToGff3.bedToGff3(self.dataFile, self.chrom_size, 'regtools', des_path) + elif self.dataType == 'blastxml': + blastxmlToGff3.blastxml2gff3(self.dataFile, des_path) + elif self.dataType == 'gtf': + utils.gtfToGff3(self.dataFile, des_path, self.chrom_size) + + def checkGff3(self): + with open(self.dataFile, 'r') as f: + for line in f: + if not line.startswith('#'): + seq_type = line.rstrip().split('\t')[2] + if seq_type == 'transcript': + self.dataType = 'gff3-transcript' + break + if seq_type == 'mRNA': + break