Skip to content

Commit

Permalink
Update CSV results exporter
Browse files Browse the repository at this point in the history
  • Loading branch information
jlumpe committed Dec 1, 2024
1 parent 9ccddce commit 8cdc961
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 16 deletions.
18 changes: 7 additions & 11 deletions src/gambit/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from gambit.util.io import FilePath, maybe_open
import gambit.util.json as gjson
from gambit.query import QueryResults, QueryResultItem, QueryInput
from gambit.query import QueryResults, QueryResultItem
from gambit.db import ReferenceGenomeSet, Taxon, AnnotatedGenome, Genome


Expand Down Expand Up @@ -84,8 +84,9 @@ class CSVResultsExporter(AbstractResultsExporter):
"""
format_opts: dict[str, Any]

# Pairs of column name and QueryResultItem attribute
COLUMNS = [
('query', 'input.label'),
('query', 'label'),
('predicted.name', 'report_taxon.name'),
('predicted.rank', 'report_taxon.rank'),
('predicted.ncbi_id', 'report_taxon.ncbi_id'),
Expand Down Expand Up @@ -140,20 +141,15 @@ def _results_to_json(self, results: QueryResults):
@to_json.register(QueryResultItem)
def _item_to_json(self, item: QueryResultItem):
return dict(
query=item.input,
query=dict(
name=item.label,
path=item.file,
),
predicted_taxon=item.report_taxon,
next_taxon=item.classifier_result.next_taxon,
closest_genomes=item.closest_genomes,
)

@to_json.register(QueryInput)
def _input_to_json(self, input: QueryInput):
return dict(
name=input.label,
path=None if input.file is None else input.file.path,
format=None if input.file is None else input.file.format,
)

@to_json.register(ReferenceGenomeSet)
def _genomeset_to_json(self, gset: ReferenceGenomeSet):
return _todict(gset, ['id', 'key', 'version', 'name', 'description'])
Expand Down
2 changes: 1 addition & 1 deletion tests/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ def check_csv_results(file: TextIO, results: QueryResults, strict: bool = False)
assert len(rows) == len(results.items)

for item, row in zip(results.items, rows):
assert row['query'] == item.input.label
assert row['query'] == item.label

cmp_csv_taxon(row, item.report_taxon, 'predicted')
cmp_csv_taxon(row, item.classifier_result.next_taxon, 'next')
Expand Down
9 changes: 5 additions & 4 deletions tests/test_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import pytest

from gambit.query import QueryResults, QueryResultItem, QueryInput, QueryParams
from gambit.query import QueryResults, QueryResultItem, QueryParams
from gambit.classify import ClassifierResult, GenomeMatch
from gambit.db import ReferenceGenomeSet, Genome
from gambit.sigs import SignaturesMeta
Expand Down Expand Up @@ -77,14 +77,15 @@ def results(session):
for i, cr in enumerate(classifier_results):
predicted = cr.predicted_taxon
items.append(QueryResultItem(
input=QueryInput(f'query-{i}', SequenceFile(f'query-{i}.fasta', 'fasta')),
f'query-{i}',
classifier_result=cr,
file=f'query-{i}.fasta',
report_taxon=None if predicted is None else predicted.parent if i % 4 == 0 else predicted,
closest_genomes=[cr.closest_match],
))

# Set one input file to None
items[-1].input.file = None
# Set one file to None
items[-1].file = None

return QueryResults(
items=items,
Expand Down

0 comments on commit 8cdc961

Please sign in to comment.