2 from ConfigParser import SafeConfigParser
8 from optparse import OptionParser, OptionGroup
10 from pprint import pprint, pformat
12 from StringIO import StringIO
20 from zipfile import ZipFile
24 if not 'DJANGO_SETTINGS_MODULE' in os.environ:
25 os.environ['DJANGO_SETTINGS_MODULE'] = 'htsworkflow.settings'
28 from htsworkflow.util import api
29 from htsworkflow.util.rdfhelp import \
37 from htsworkflow.submission.daf import get_submission_uri
38 from htsworkflow.submission.results import ResultMap
39 from htsworkflow.submission.geo import GEOSubmission
40 from htsworkflow.submission.condorfastq import CondorFastqExtract
42 logger = logging.getLogger(__name__)
44 def main(cmdline=None):
45 parser = make_parser()
46 opts, args = parser.parse_args(cmdline)
50 logging.basicConfig(level = logging.DEBUG )
52 logging.basicConfig(level = logging.INFO )
54 logging.basicConfig(level = logging.WARNING )
56 apidata = api.make_auth_from_opts(opts, parser)
58 model = get_model(opts.model, opts.db_path)
61 mapper = GEOSubmission(opts.name, model)
62 if opts.library_url is not None:
63 mapper.library_url = opts.library_url
64 submission_uri = get_submission_uri(opts.name)
67 if opts.load_rdf is not None:
68 if submission_uri is None:
69 parser.error("Please specify the submission name")
70 load_into_model(model, 'turtle', opts.load_rdf, submission_uri)
74 results.add_results_from_file(a)
76 if opts.make_tree_from is not None:
77 results.make_tree_from(opts.make_tree_from)
80 flowcells = os.path.join(opts.sequence, 'flowcells')
81 extractor = CondorFastqExtract(opts.host, flowcells,
84 extractor.create_scripts(results)
86 if opts.scan_submission:
87 mapper.scan_submission_dirs(results)
90 mapper.make_soft(results)
93 sparql_query(model, opts.sparql)
96 writer = get_serializer()
97 print writer.serialize_model_to_string(model)
101 parser = OptionParser()
103 model = OptionGroup(parser, 'model')
104 model.add_option('--name', help="Set submission name")
105 model.add_option('--db-path', default=None,
106 help="set rdf database path")
107 model.add_option('--model', default=None,
108 help="Load model database")
109 model.add_option('--load-rdf', default=None,
110 help="load rdf statements into model")
111 model.add_option('--sparql', default=None, help="execute sparql query")
112 model.add_option('--print-rdf', action="store_true", default=False,
113 help="print ending model state")
114 parser.add_option_group(model)
116 commands = OptionGroup(parser, 'commands')
117 commands.add_option('--make-tree-from',
118 help="create directories & link data files",
120 commands.add_option('--fastq', default=False, action="store_true",
121 help="generate scripts for making fastq files")
122 commands.add_option('--scan-submission', default=False, action="store_true",
123 help="Import metadata for submission into our model")
124 commands.add_option('--make-soft', help='make the soft file', default=False,
127 parser.add_option_group(commands)
129 parser.add_option('--force', default=False, action="store_true",
130 help="Force regenerating fastqs")
131 parser.add_option('--daf', default=None, help='specify daf name')
132 parser.add_option('--library-url', default=None,
133 help="specify an alternate source for library information")
135 parser.add_option('--verbose', default=False, action="store_true",
136 help='verbose logging')
137 parser.add_option('--debug', default=False, action="store_true",
138 help='debug logging')
140 api.add_auth_options(parser)
145 if __name__ == "__main__":