Skip to content

Commit 7f13ac2

Browse files
authored
Merge pull request #3029 from antgonza/fix-2839
fix #2839
2 parents 773f640 + b66c398 commit 7f13ac2

File tree

5 files changed

+48
-2
lines changed

5 files changed

+48
-2
lines changed

qiita_db/metadata_template/base_metadata_template.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1158,8 +1158,8 @@ def to_file(self, fp, samples=None):
11581158
df.to_csv(fp, index_label='sample_name', na_rep="", sep='\t',
11591159
encoding='utf-8')
11601160

1161-
def to_dataframe(self):
1162-
"""Returns the metadata template as a dataframe
1161+
def _common_to_dataframe_steps(self):
1162+
"""Perform the common to_dataframe steps
11631163
11641164
Returns
11651165
-------

qiita_db/metadata_template/prep_template.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,3 +767,20 @@ def name(self, value):
767767
WHERE prep_template_id = %s"""
768768
qdb.sql_connection.TRN.add(sql, [value, self.id])
769769
qdb.sql_connection.TRN.execute()
770+
771+
def to_dataframe(self, add_ebi_accessions=False):
772+
"""Returns the metadata template as a dataframe
773+
774+
Parameters
775+
----------
776+
add_ebi_accessions : bool, optional
777+
If this should add the ebi accessions
778+
"""
779+
df = self._common_to_dataframe_steps()
780+
781+
if add_ebi_accessions:
782+
accessions = self.ebi_experiment_accessions
783+
df['qiita_ebi_experiment_accessions'] = df.index.map(
784+
lambda sid: accessions[sid])
785+
786+
return df

qiita_db/metadata_template/sample_template.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,3 +332,20 @@ def biosample_accessions(self, value):
332332
If a sample in `value` already has an accession number
333333
"""
334334
self._update_accession_numbers('biosample_accession', value)
335+
336+
def to_dataframe(self, add_ebi_accessions=False):
337+
"""Returns the metadata template as a dataframe
338+
339+
Parameters
340+
----------
341+
add_ebi_accessions : bool, optional
342+
If this should add the ebi accessions
343+
"""
344+
df = self._common_to_dataframe_steps()
345+
346+
if add_ebi_accessions:
347+
accessions = self.ebi_sample_accessions
348+
df['qiita_ebi_sample_accessions'] = df.index.map(
349+
lambda sid: accessions[sid])
350+
351+
return df

qiita_db/metadata_template/test/test_prep_template.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,12 @@ def test_to_dataframe(self):
685685
u'illumina_technology', u'sample_center', u'pcr_primers',
686686
u'study_center', 'qiita_prep_id'})
687687

688+
# test with add_ebi_accessions as True
689+
obs = self.tester.to_dataframe(True)
690+
self.assertEqual(
691+
self.tester.ebi_experiment_accessions,
692+
obs.qiita_ebi_experiment_accessions.to_dict())
693+
688694
def test_clean_validate_template_error_bad_chars(self):
689695
"""Raises an error if there are invalid characters in the sample names
690696
"""

qiita_db/metadata_template/test/test_sample_template.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,6 +1975,12 @@ def test_to_dataframe(self):
19751975
'anonymized_name', 'tot_org_carb', 'description_duplicate',
19761976
'env_feature', 'scientific_name', 'qiita_study_id'})
19771977

1978+
# test with add_ebi_accessions as True
1979+
obs = self.tester.to_dataframe(True)
1980+
self.assertEqual(
1981+
self.tester.ebi_sample_accessions,
1982+
obs.qiita_ebi_sample_accessions.to_dict())
1983+
19781984
def test_check_restrictions(self):
19791985
obs = self.tester.check_restrictions(
19801986
[STC['EBI']])

0 commit comments

Comments
 (0)