/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

  1. #!/usr/bin/env python
  2. #Dan Blankenberg
  3. import sys
  4. from galaxy import eggs
  5. import pkg_resources; pkg_resources.require( "bx-python" )
  6. import bx.align.maf
  7. from galaxy.tools.util import maf_utilities
  8. assert sys.version_info[:2] >= ( 2, 4 )
  9. def __main__():
  10. output_name = sys.argv.pop(1)
  11. input_name = sys.argv.pop(1)
  12. species = sys.argv.pop(1)
  13. out = open(output_name,'w')
  14. count = 0
  15. #write interval header line
  16. out.write( "#chrom\tstart\tend\tstrand\n" )
  17. try:
  18. for block in bx.align.maf.Reader( open( input_name, 'r' ) ):
  19. for c in maf_utilities.iter_components_by_src_start( block, species ):
  20. if c is not None:
  21. 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 ) )
  22. count += 1
  23. except Exception, e:
  24. print >> sys.stderr, "There was a problem processing your input: %s" % e
  25. out.close()
  26. print "%i MAF blocks converted to Genomic Intervals for species %s." % ( count, species )
  27. if __name__ == "__main__": __main__()