Skip to content

Commit 407f48e

Browse files
committed
Fixing sample XML file generation to actually add all the required values
1 parent 6cb049e commit 407f48e

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

qiita_ware/ebi.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from skbio.util import safe_md5
1515

1616
from qiita_core.qiita_settings import qiita_config
17-
17+
from qiita_ware.exceptions import EBISumbissionError
1818
from qiita_db.logger import LogEntry
1919
from qiita_db.ontology import Ontology
2020
from qiita_db.util import convert_to_id
@@ -288,7 +288,7 @@ def add_sample(self, sample_name, taxon_id, scientific_name,
288288
----------
289289
sample_name : str
290290
Unique identifier for the sample
291-
taxon_id : int
291+
taxon_id : str
292292
NCBI's taxon ID for the sample
293293
scientific_name : str
294294
NCBI's scientific name for the `taxon_id`
@@ -350,6 +350,10 @@ def generate_sample_xml(self):
350350
taxon_id = ET.SubElement(sample_name_element, 'TAXON_ID')
351351
taxon_id.text = escape(clean_whitespace(sample_info['taxon_id']))
352352

353+
taxon_id = ET.SubElement(sample_name_element, 'SCIENTIFIC_NAME')
354+
taxon_id.text = escape(
355+
clean_whitespace(sample_info['scientific_name']))
356+
353357
description = ET.SubElement(sample, 'DESCRIPTION')
354358
description.text = escape(clean_whitespace(
355359
sample_info['description']))
@@ -798,12 +802,20 @@ def add_samples_from_templates(self, sample_template, prep_template,
798802

799803
for sample in iter_file_via_list_of_dicts(sample_template):
800804
sample_name = sample.pop('sample_name')
801-
taxon_id = sample.pop('taxon_id')
802-
scientific_name = sample.pop('scientific_name')
805+
taxon_id = sample.pop('taxon_id', None)
806+
scientific_name = sample.pop('scientific_name', None)
803807
description = sample.pop('description', None)
804808

809+
if taxon_id is None or scientific_name is None or \
810+
description is None:
811+
raise EBISumbissionError(
812+
"Sample '%s' is missing required EBI submission "
813+
"information. taxon_id: %s; scientific_name: %s; "
814+
"description: %s" % (sample_name, taxon_id,
815+
scientific_name, description))
816+
805817
self.add_sample(sample_name, taxon_id, scientific_name,
806-
description=description, **sample)
818+
description, **sample)
807819

808820
prep_template_samples = []
809821
for prep in iter_file_via_list_of_dicts(prep_template):

qiita_ware/exceptions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,8 @@ class StudyDoesNotExistsError(QiitaWareError):
4040
class ComputeError(QiitaWareError):
4141
"""A compute error happened"""
4242
pass
43+
44+
45+
class EBISumbissionError(QiitaWareError):
46+
"""Error used when EBI cannot be submitted"""
47+
pass

0 commit comments

Comments
 (0)