/tools/maf/maf_reverse_complement.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 42 lines · 28 code · 5 blank · 9 comment · 5 complexity · d7574b4bca01bd02d16ab28be2f3a9cf MD5 · raw file

  1. #!/usr/bin/env python
  2. """
  3. Reads a MAF file. Produces a MAF file containing
  4. the reverse complement for each block in the source file.
  5. usage: %prog input_maf_file output_maf_file
  6. """
  7. #Dan Blankenberg
  8. from galaxy import eggs
  9. import pkg_resources; pkg_resources.require( "bx-python" )
  10. import bx.align.maf
  11. from galaxy.tools.util import maf_utilities
  12. import sys
  13. assert sys.version_info[:2] >= ( 2, 4 )
  14. def __main__():
  15. #Parse Command Line
  16. input_file = sys.argv.pop( 1 )
  17. output_file = sys.argv.pop( 1 )
  18. species = maf_utilities.parse_species_option( sys.argv.pop( 1 ) )
  19. try:
  20. maf_writer = bx.align.maf.Writer( open( output_file, 'w' ) )
  21. except:
  22. print sys.stderr, "Unable to open output file"
  23. sys.exit()
  24. try:
  25. count = 0
  26. for count, maf in enumerate( bx.align.maf.Reader( open( input_file ) ) ):
  27. maf = maf.reverse_complement()
  28. if species:
  29. maf = maf.limit_to_species( species )
  30. maf_writer.write( maf )
  31. except:
  32. print >>sys.stderr, "Your MAF file appears to be malformed."
  33. sys.exit()
  34. print "%i regions were reverse complemented." % count
  35. maf_writer.close()
  36. if __name__ == "__main__": __main__()