dump_model, \
fromTypedNode, \
get_model, \
- stripNamespace, \
+ strip_namespace, \
toTypedNode
from htsworkflow.util.rdfns import *
from htsworkflow.util.hashfile import make_md5sum
ModelException, \
get_submission_uri
+from django.conf import settings
+from django.template import Context, Template, loader
+
LOGGER = logging.getLogger(__name__)
class Submission(object):
fileNode = self.make_file_node(pathname, an_analysis)
self.add_md5s(filename, fileNode, analysis_dir)
self.add_fastq_metadata(filename, fileNode)
+ self.add_label(file_type, fileNode, libNode)
self.model.add_statement(
RDF.Statement(fileNode,
rdfNS['type'],
if value is not None:
s = RDF.Statement(fileNode, model_term, toTypedNode(value))
self.model.append(s)
+
+ def add_label(self, file_type, file_node, lib_node):
+ """Add rdfs:label to a file node
+ """
+ #template_term = libraryOntology['label_template']
+ template_term = libraryOntology['label_template']
+ label_template = self.model.get_target(file_type, template_term)
+ if label_template:
+ template = loader.get_template('submission_view_rdfs_label_metadata.sparql')
+ context = Context({
+ 'library': str(lib_node.uri),
+ })
+ for r in self.execute_query(template, context):
+ context = Context(r)
+ label = Template(label_template).render(context)
+ s = RDF.Statement(file_node, rdfsNS['label'], unicode(label))
+ self.model.append(s)
def _add_library_details_to_model(self, libNode):
# attributes that can have multiple values
'Small RNA (non-multiplexed)',]
paired = ['Barcoded Illumina',
'Multiplexing',
+ 'NEBNext Multiplexed',
+ 'NEBNext Small RNA',
'Nextera',
'Paired End (non-multiplexed)',
'Dual Index Illumina',]
query = RDF.SPARQLQuery(query_body)
rdfstream = query.execute(model)
for row in rdfstream:
- s = stripNamespace(submissionLog, row['submission'])
+ s = strip_namespace(submissionLog, row['submission'])
if s[-1] in ['#', '/', '?']:
s = s[:-1]
yield s