Mercurial > repos > galaxyp > gffcompare_to_bed
annotate gffcompare_to_bed.py @ 1:23f34d9dd8e6 draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit e5ab6444aa2f104eedfa366bee05f65edef02d82
| author | galaxyp | 
|---|---|
| date | Fri, 26 Apr 2019 14:42:07 -0400 | 
| parents | a873420ef833 | 
| children | 2e24ff66228f | 
| rev | line source | 
|---|---|
| 0 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 2 """ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 3 # | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 4 #------------------------------------------------------------------------------ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 5 # University of Minnesota | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 6 # Copyright 2017, Regents of the University of Minnesota | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 7 #------------------------------------------------------------------------------ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 8 # Author: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 9 # | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 10 # James E Johnson | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 11 # | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 12 #------------------------------------------------------------------------------ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 13 """ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 14 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 15 import argparse | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 16 import sys | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 17 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 18 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 19 class BedEntry(object): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 20 def __init__(self, chrom=None, chromStart=None, chromEnd=None, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 21 name=None, score=None, strand=None, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 22 thickStart=None, thickEnd=None, itemRgb=None, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 23 blockCount=None, blockSizes=None, blockStarts=None): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 24 self.chrom = chrom | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 25 self.chromStart = int(chromStart) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 26 self.chromEnd = int(chromEnd) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 27 self.name = name | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 28 self.score = int(score) if score is not None else 0 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 29 self.strand = '-' if str(strand).startswith('-') else '+' | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 30 self.thickStart = int(thickStart) if thickStart else self.chromStart | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 31 self.thickEnd = int(thickEnd) if thickEnd else self.chromEnd | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 32 self.itemRgb = str(itemRgb) if itemRgb is not None else r'100,100,100' | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 33 self.blockCount = int(blockCount) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 34 if isinstance(blockSizes, str) or isinstance(blockSizes, unicode): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 35 self.blockSizes = [int(x) for x in blockSizes.split(',')] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 36 elif isinstance(blockSizes, list): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 37 self.blockSizes = [int(x) for x in blockSizes] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 38 else: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 39 self.blockSizes = blockSizes | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 40 if isinstance(blockStarts, str) or isinstance(blockSizes, unicode): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 41 self.blockStarts = [int(x) for x in blockStarts.split(',')] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 42 elif isinstance(blockStarts, list): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 43 self.blockStarts = [int(x) for x in blockStarts] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 44 else: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 45 self.blockStarts = blockStarts | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 46 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 47 def __str__(self): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 48 return '%s\t%d\t%d\t%s\t%d\t%s\t%d\t%d\t%s\t%d\t%s\t%s' % ( | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 49 self.chrom, self.chromStart, self.chromEnd, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 50 self.name, self.score, self.strand, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 51 self.thickStart, self.thickEnd, str(self.itemRgb), self.blockCount, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 52 ','.join([str(x) for x in self.blockSizes]), | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 53 ','.join([str(x) for x in self.blockStarts])) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 54 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 55 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 56 def __main__(): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 57 parser = argparse.ArgumentParser( | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 58 description='Retrieve Ensembl cDNAs and three frame translate') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 59 parser.add_argument( | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 60 'input', | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 61 help='GFFCompare annotated GTF file, (-) for stdin') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 62 parser.add_argument( | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 63 'output', | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 64 help='BED file, (-) for stdout') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 65 parser.add_argument( | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 66 '-C', '--class_code', action='append', default=[], | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 67 help='Restrict output to gffcompare class codes') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 68 parser.add_argument('-d', '--debug', action='store_true', help='Debug') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 69 args = parser.parse_args() | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 70 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 71 # print >> sys.stderr, "args: %s" % args | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 72 input_rdr = open(args.input, 'r') if args.input != '-' else sys.stdin | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 73 output_wtr = open(args.output, 'w') if args.output != '-' else sys.stdout | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 74 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 75 def write_bed_entry(bed): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 76 if bed.blockCount == 0: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 77 bed.blockCount = 1 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 78 output_wtr.write("%s\n" % str(bed)) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 79 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 80 class_codes = [c.strip() for codes in args.class_code | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 81 for c in codes.split(',')] if args.class_code else None | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 82 bed = None | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 83 class_code = None | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 84 for i, line in enumerate(input_rdr): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 85 if line.startswith('#'): | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 86 continue | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 87 fields = line.rstrip('\r\n').split('\t') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 88 if len(fields) != 9: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 89 continue | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 90 (seqname, source, feature, start, end, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 91 score, strand, frame, attributes) = fields | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 92 attribute = {i[0]: i[1].strip('"') for i in [j.strip().split(' ') | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 93 for j in attributes.rstrip(';').split(';')]} | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 94 if feature == 'transcript': | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 95 if args.debug: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 96 print >> sys.stderr, "%s\t%s"\ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 97 % ('\t'.join([seqname, source, feature, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 98 start, end, score, strand, frame]), | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 99 attribute) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 100 if bed is not None: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 101 write_bed_entry(bed) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 102 bed = None | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 103 class_code = attribute['class_code'].strip('"')\ | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 104 if 'class_code' in attribute else None | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 105 if class_codes and class_code not in class_codes: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 106 continue | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 107 chromStart = int(start) - 1 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 108 chromEnd = int(end) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 109 cat = '_' + class_code if class_code and class_code != '=' else '' | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 110 bed = BedEntry(chrom=seqname, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 111 chromStart=chromStart, chromEnd=chromEnd, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 112 name=attribute['transcript_id'] + cat, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 113 strand=strand, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 114 blockCount=0, | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 115 blockSizes=[chromEnd - chromStart], | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 116 blockStarts=[0]) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 117 elif feature == 'exon' and bed is not None: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 118 chromStart = int(start) - 1 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 119 chromEnd = int(end) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 120 blockSize = chromEnd - chromStart | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 121 if bed.blockCount == 0: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 122 bed.blockSizes = [] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 123 bed.blockStarts = [] | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 124 bed.blockSizes.append(blockSize) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 125 bed.blockStarts.append(chromStart - bed.chromStart) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 126 bed.blockCount += 1 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 127 if bed is not None: | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 128 write_bed_entry(bed) | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 129 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 130 | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 131 if __name__ == "__main__": | 
| 
a873420ef833
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/gffcompare_to_bed commit 321b217382f6be33bd77c7dbb51c8caf5fa50afe
 galaxyp parents: diff
changeset | 132 __main__() | 
