From: Diane Trout Date: Wed, 20 Jul 2011 00:39:51 +0000 (-0700) Subject: Add an option to print out an example view to extension RDF map X-Git-Tag: 0.5.3~19 X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=commitdiff_plain;h=81eba7e0891a800ffcfa4a0071742b16ac6c8bee Add an option to print out an example view to extension RDF map (Which is the start of the extra override rules file I've been using for submissions) --- diff --git a/extra/ucsc_encode_submission/scan_extension.py b/extra/ucsc_encode_submission/scan_extension.py index f3e45a6..39f19c6 100644 --- a/extra/ucsc_encode_submission/scan_extension.py +++ b/extra/ucsc_encode_submission/scan_extension.py @@ -8,11 +8,17 @@ def main(cmdline=None): opts, args = parser.parse_args(cmdline) extensions = scan(args) - #pprint(extensions) - print find_common_suffix(extensions) + common_extensions = find_common_suffix(extensions) + if opts.rdf: + print_rdf(common_extensions) + else: + print common_extensions + def make_parser(): parser = OptionParser("%prog: directory [directory...]") + parser.add_option('--rdf', action="store_true", default=False, + help="Produce rdf configuration file for ucsc_gather") return parser def scan(toscan): @@ -20,6 +26,9 @@ def scan(toscan): for cur_scan_dir in toscan: for path, dirnames, filenames in os.walk(cur_scan_dir): for filename in filenames: + base, ext = os.path.splitext(filename) + if ext in ('.daf', 'ddf'): + continue next_index = index for c in filename[::-1]: next_index = next_index.setdefault(c, {}) @@ -42,5 +51,26 @@ def find_common_suffix(index, tail=[]): else: return results +def print_rdf(common_extensions): + import RDF + from htsworkflow.util import rdfhelp + model = rdfhelp.get_model() + + viewName = 'http://jumpgate.caltech.edu/wiki/SubmissionsLog/NAME/view/' + subView = RDF.NS(viewName) + fileReTerm = rdfhelp.dafTermOntology['filename_re'] + + count = 1 + for ext in common_extensions: + s = RDF.Statement(subView['VIEW{0}'.format(count)], + fileReTerm, + '.*{0}$'.format(ext.replace('.', '\\.'))) + model.add_statement(s) + count += 1 + + writer = rdfhelp.get_serializer() + writer.set_namespace('thisSubmissionView', subView._prefix) + print writer.serialize_model_to_string(model) + if __name__ == "__main__": main()