/lib/galaxy/datatypes/converters/maf_to_interval_converter.py
https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 32 lines · 24 code · 5 blank · 3 comment · 6 complexity · b821d7a9d47e7cc1994fe83309e101ee MD5 · raw file
- #!/usr/bin/env python
- #Dan Blankenberg
- import sys
- from galaxy import eggs
- import pkg_resources; pkg_resources.require( "bx-python" )
- import bx.align.maf
- from galaxy.tools.util import maf_utilities
- assert sys.version_info[:2] >= ( 2, 4 )
- def __main__():
- output_name = sys.argv.pop(1)
- input_name = sys.argv.pop(1)
- species = sys.argv.pop(1)
- out = open(output_name,'w')
- count = 0
- #write interval header line
- out.write( "#chrom\tstart\tend\tstrand\n" )
- try:
- for block in bx.align.maf.Reader( open( input_name, 'r' ) ):
- for c in maf_utilities.iter_components_by_src_start( block, species ):
- if c is not None:
- out.write( "%s\t%i\t%i\t%s\n" % ( maf_utilities.src_split( c.src )[-1], c.get_forward_strand_start(), c.get_forward_strand_end(), c.strand ) )
- count += 1
- except Exception, e:
- print >> sys.stderr, "There was a problem processing your input: %s" % e
- out.close()
- print "%i MAF blocks converted to Genomic Intervals for species %s." % ( count, species )
- if __name__ == "__main__": __main__()