text: #!/usr/bin/env python
  # Dan Blankenberg
  """
  Reads a list of block numbers and a maf. Produces a new maf containing the
  blocks specified by number.
  """
  from __future__ import print_function
  
  import sys
  
  import bx.align.maf
  
  from galaxy.tools.util import maf_utilities
  
  
  def __main__():
      input_block_filename = sys.argv[1].strip()
      input_maf_filename = sys.argv[2].strip()
      output_filename1 = sys.argv[3].strip()
      block_col = int(sys.argv[4].strip()) - 1
      if block_col < 0:
          print("Invalid column specified", file=sys.stderr)
          sys.exit(0)
      species = maf_utilities.parse_species_option(sys.argv[5].strip())
  
      maf_writer = bx.align.maf.Writer(open(output_filename1, 'w'))
      # we want to maintain order of block file and write blocks as many times as they are listed
      failed_lines = []
      for ctr, line in enumerate(open(input_block_filename)):
          try:
              block_wanted = int(line.split("\t")[block_col].strip())
          except Exception:
              failed_lines.append(str(ctr))
              continue
          try:
              for count, block in enumerate(bx.align.maf.Reader(open(input_maf_filename))):
                  if count == block_wanted:
                      if species:
                          block = block.limit_to_species(species)
                      maf_writer.write(block)
                      break
          except Exception:
              print("Your MAF file appears to be malformed.", file=sys.stderr)
              sys.exit()
      if len(failed_lines) > 0:
          print("Failed to extract from %i lines (%s)." % (len(failed_lines), ",".join(failed_lines)))
  
  
  if __name__ == "__main__":
      __main__()
  