Skip to content

Commit 398ecc9

Browse files
committed
Making taxon_id, scientific_name and description required on EBI code
1 parent c4e6796 commit 398ecc9

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

qiita_ware/ebi.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -280,18 +280,20 @@ def generate_study_xml(self):
280280

281281
return study_set
282282

283-
def add_sample(self, sample_name, taxon_id=None, description=None,
284-
**kwargs):
283+
def add_sample(self, sample_name, taxon_id, scientific_name,
284+
description, **kwargs):
285285
"""Adds sample information to the current submission
286286
287287
Parameters
288288
----------
289289
sample_name : str
290290
Unique identifier for the sample
291-
taxon_id : str, optional
292-
Defaults to ``None``. If not provided, the `empty_value` will be
293-
used for the taxon ID
294-
description : str, optional
291+
taxon_id : int
292+
NCBI's taxon ID for the sample
293+
scientific_name : str
294+
NCBI's scientific name for the `taxon_id`
295+
description : str
296+
295297
Defaults to ``None``. If not provided, the `empty_value` will be
296298
used for the description
297299
@@ -308,15 +310,14 @@ def add_sample(self, sample_name, taxon_id=None, description=None,
308310

309311
self.samples[sample_name] = {}
310312

311-
self.samples[sample_name]['taxon_id'] = self.empty_value if \
312-
taxon_id is None else taxon_id
313-
self.samples[sample_name]['taxon_id'] = \
314-
escape(clean_whitespace(self.samples[sample_name]['taxon_id']))
313+
self.samples[sample_name]['taxon_id'] = escape(
314+
clean_whitespace(taxon_id))
315315

316-
self.samples[sample_name]['description'] = self.empty_value if \
317-
description is None else description
318-
self.samples[sample_name]['description'] = \
319-
escape(clean_whitespace(self.samples[sample_name]['description']))
316+
self.samples[sample_name]['scientific_name'] = escape(
317+
clean_whitespace(scientific_name))
318+
319+
self.samples[sample_name]['description'] = escape(
320+
clean_whitespace(description))
320321

321322
self.samples[sample_name]['attributes'] = self._stringify_kwargs(
322323
kwargs)
@@ -797,15 +798,17 @@ def add_samples_from_templates(self, sample_template, prep_template,
797798

798799
for sample in iter_file_via_list_of_dicts(sample_template):
799800
sample_name = sample.pop('sample_name')
800-
taxon_id = sample.pop('taxon_id', None)
801+
taxon_id = sample.pop('taxon_id')
802+
scientific_name = sample.pop('scientific_name')
801803
description = sample.pop('description', None)
802804

803-
self.add_sample(sample_name, taxon_id=taxon_id,
804-
description=description,
805-
**sample)
805+
self.add_sample(sample_name, taxon_id, scientific_name,
806+
description=description, **sample)
806807

808+
prep_template_samples = []
807809
for prep in iter_file_via_list_of_dicts(prep_template):
808810
sample_name = prep.pop('sample_name')
811+
prep_template_samples.append(sample_name)
809812
platform = prep.pop('platform')
810813
experiment_design_description = prep.pop(
811814
'experiment_design_description')
@@ -818,6 +821,10 @@ def add_samples_from_templates(self, sample_template, prep_template,
818821
library_construction_protocol,
819822
**prep)
820823

824+
# to_remove = set(self.samples).difference(prep_template_samples)
825+
# for sample in to_remove:
826+
# del self.samples[sample]
827+
821828
@classmethod
822829
def from_templates_and_per_sample_fastqs(cls, preprocessed_data_id,
823830
study_title,

0 commit comments

Comments
 (0)