6 from gaworkflow.util.makebed import make_bed_from_eland_stream, make_description
9 parser = optparse.OptionParser()
10 parser.add_option('-e', '--eland', dest='inname',
11 help='specify input eland filename')
12 parser.add_option('-b', '--bed', dest='outname',
13 help='specify output befilename')
14 parser.add_option('-n', '--name', dest='name',
15 help='specify the track (short) name.',
17 parser.add_option('-d', '--description', dest='description',
18 help='specify the track description',
20 parser.add_option('--chromosome', dest='prefix',
21 help='Set the chromosome prefix name. defaults to "chr"',
23 parser.add_option("--database", dest='database',
24 help="specify location of fctracker database",
26 parser.add_option("--flowcell", dest='flowcell',
27 help="compute name and description from database using flowcell id",
29 parser.add_option("--lane", dest='lane',
30 help='specify which lane to use when retrieving description from database',
34 def main(command_line=None):
35 if command_line is None:
36 command_line = sys.argv[1:]
38 parser = make_parser()
39 (options, args) = parser.parse_args(command_line)
41 if options.inname is None:
42 parser.error("Need eland input file name")
45 if options.outname is None:
46 options.outname = os.path.splitext(options.inname)[0]+'.bed'
47 print >>sys.stderr, "defaulting to outputname", options.outname
49 if os.path.exists(options.inname):
50 instream = open(options.inname, 'r')
52 parser.error('%s was not found' % (options.inname))
55 if os.path.exists(options.outname):
56 parser.error("not overwriting %s" % (options.outname))
59 outstream = open(options.outname, 'w')
61 if options.flowcell is not None and options.lane is not None:
62 # get our name/description out of the database
63 name, description = make_description(
64 options.database, options.flowcell, options.lane
68 description = options.description
70 make_bed_from_eland_stream(instream, outstream, name, description, options.prefix)
73 if __name__ == "__main__":
74 sys.exit(main(sys.argv[1:]))