from htsworkflow.util.rdfhelp import \
fromTypedNode, \
geoSoftNS, \
- simplifyUri, \
+ strip_namespace, \
submissionOntology
from django.conf import settings
LOGGER = logging.getLogger(__name__)
class GEOSubmission(Submission):
- def __init__(self, name, model):
- super(GEOSubmission, self).__init__(name, model)
+ def __init__(self, name, model, host):
+ super(GEOSubmission, self).__init__(name, model, host)
def make_soft(self, result_map):
samples = []
for lib_id, result_dir in result_map.items():
an_analysis = self.get_submission_node(result_dir)
metadata = self.get_sample_metadata(an_analysis)
- if len(metadata) > 1:
- errmsg = 'Confused there are more than one samples for %s'
- LOGGER.debug(errmsg % (str(an_analysis,)))
+ if len(metadata) == 0:
+ errmsg = 'No metadata found for {0}'
+ LOGGER.error(errmsg.format(str(an_analysis),))
+ continue
+ elif len(metadata) > 1:
+ errmsg = 'Confused there are more than one sample for %s'
+ LOGGER.debug(errmsg % (str(an_analysis),))
metadata = metadata[0]
metadata['raw'] = self.get_raw_files(an_analysis)
metadata['supplimental'] = self.get_sample_files(an_analysis)
context = Context({
'submission': str(analysis_node.uri),
- 'file_class': str(geoSoftNS['supplemental'])
+ 'file_class': str(geoSoftNS['supplemental'].uri)
})
return self.execute_query(query_template, context)
context = Context({
'submission': str(analysis_node.uri),
- 'file_class': str(geoSoftNS['raw']),
+ 'file_class': str(geoSoftNS['raw'].uri),
})
lanes = {}
data = {}
for k, v in row.items():
data[k] = v
- lane = str(data['lane'])
- lanes.setdefault(lane, []).append(data)
+ library = str(data['library'])
+ lanes.setdefault(library, []).append(data)
result = []
- for lane, files in lanes.items():
+ for library, files in lanes.items():
if len(files) > 2:
errmsg = "Don't know what to do with more than 2 raw files"
raise ValueError(errmsg)
elif len(files) == 1:
is_paired = False
elif len(files) == 0:
- raise RuntimeError("Empty lane list discovered")
+ raise RuntimeError("Empty library list discovered")
files = self._format_filename(files, is_paired)
files = self._format_flowcell_type(files, is_paired)
files = self._format_read_length(files, is_paired)
def query_to_soft_dictionary(self, results, heading):
attributes = []
for r in results:
- name = simplifyUri(geoSoftNS, r['name'])
+ name = strip_namespace(geoSoftNS, r['name'])
if name is not None:
if name.lower() == heading.lower():
name = '^' + name