Skip to content

Commit 46ced9b

Browse files
authored
Merge pull request #42 from nextstrain/remove-nextclade
Remove Nextclade and haplotype rules
2 parents e968c8d + 9d462a5 commit 46ced9b

4 files changed

Lines changed: 16 additions & 431 deletions

File tree

Snakefile

Lines changed: 16 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -39,44 +39,9 @@ rule download_metadata:
3939
aws s3 cp {params.s3_path} - | xz -c -d > {output}
4040
"""
4141

42-
rule download_nextclade:
43-
output:
44-
"data/{data_provenance}/{lineage}/nextclade.tsv",
45-
params:
46-
s3_path=lambda wildcards: config["data"][wildcards.data_provenance][wildcards.lineage]["s3_nextclade"],
47-
shell:
48-
"""
49-
aws s3 cp {params.s3_path} - | xz -c -d > {output}
50-
"""
51-
52-
rule download_haplotype_definitions:
53-
output:
54-
haplotypes="data/nextstrain/{lineage}/haplotype_definitions.tsv",
55-
shell:
56-
"""
57-
curl \
58-
-o {output.haplotypes} \
59-
-L \
60-
'https://raw.githubusercontent.com/nextstrain/seasonal-flu/refs/heads/master/config/{wildcards.lineage}/ha/emerging_haplotypes.tsv'
61-
"""
62-
63-
rule metadata_with_nextclade:
64-
input:
65-
metadata="data/{data_provenance}/{lineage}/metadata.tsv",
66-
nextclade="data/{data_provenance}/{lineage}/nextclade.tsv",
67-
output:
68-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade.tsv",
69-
shell:
70-
"""
71-
augur merge \
72-
--metadata metadata={input.metadata} nextclade={input.nextclade} \
73-
--metadata-id-columns strain seqName \
74-
--output-metadata {output.metadata}
75-
"""
76-
7742
rule filter_data:
7843
input:
79-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade.tsv",
44+
metadata="data/{data_provenance}/{lineage}/metadata.tsv",
8045
output:
8146
metadata="data/{data_provenance}/{lineage}/filtered_metadata_with_nextclade.tsv",
8247
params:
@@ -86,71 +51,41 @@ rule filter_data:
8651
"""
8752
augur filter \
8853
--metadata {input.metadata} \
89-
--query "(date != '?') & (country != '?') & (region != '?') & (subclade != '') & (\`qc.overallStatus\` == 'good')" \
54+
--query "(date != '?') & (country != '?') & (region != '?') & (subclade_nextclade_ha != '') & (\`qc.overallStatus_ha\` == 'good')" \
9055
--min-date {params.min_date:q} \
9156
--max-date {params.max_date:q} \
9257
--output-metadata {output.metadata}
9358
"""
9459

95-
rule assign_emerging_haplotypes:
96-
input:
97-
metadata="data/{data_provenance}/{lineage}/filtered_metadata_with_nextclade.tsv",
98-
haplotypes="data/nextstrain/{lineage}/haplotype_definitions.tsv",
99-
output:
100-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade_with_emerging_haplotypes.tsv",
101-
params:
102-
variant_column=config["haplotype_variant_column"],
103-
haplotype_column_name="emerging_haplotype",
104-
default_haplotype="other",
105-
shell:
106-
"""
107-
python scripts/assign_haplotypes.py \
108-
--substitutions {input.metadata} \
109-
--haplotypes {input.haplotypes} \
110-
--clade-column {params.variant_column:q} \
111-
--haplotype-column-name {params.haplotype_column_name:q} \
112-
--default-haplotype {params.default_haplotype:q} \
113-
--output-table {output.metadata}
114-
"""
115-
116-
rule assign_aa_haplotypes:
117-
input:
118-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade_with_emerging_haplotypes.tsv",
119-
output:
120-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade_with_aa_haplotypes.tsv",
121-
params:
122-
genes=["HA1"],
123-
clade_column=config["haplotype_variant_column"],
124-
mutations_column=config["mutations_column"],
125-
haplotype_column_name="aa_haplotype",
126-
shell:
127-
r"""
128-
python3 scripts/assign_aa_haplotypes.py \
129-
--nextclade {input.metadata:q} \
130-
--genes {params.genes:q} \
131-
--strip-genes \
132-
--clade-column {params.clade_column:q} \
133-
--mutations-column {params.mutations_column:q} \
134-
--attribute-name {params.haplotype_column_name:q} \
135-
--output {output.metadata:q}
136-
"""
60+
def _get_clade_column(wildcards):
61+
"""
62+
Map variant_classification to haplotype column names.
63+
The returned column names should match the columns available in the metadata,
64+
which should defined in the seasonal-flu ingest config.
65+
"""
66+
if wildcards.variant_classification == "emerging_haplotype":
67+
return "emerging_haplotype_ha"
68+
elif wildcards.variant_classification == "aa_haplotype":
69+
return "subclade_haplotype_ha"
70+
raise Exception(f"Encountered unsupported variant_classification {wildcards.variant_classification!r}")
13771

13872
rule clade_seq_counts:
13973
input:
140-
metadata="data/{data_provenance}/{lineage}/metadata_with_nextclade_with_aa_haplotypes.tsv",
74+
metadata="data/{data_provenance}/{lineage}/filtered_metadata_with_nextclade.tsv",
14175
output:
14276
sequence_counts="results/{data_provenance}/{variant_classification}/{lineage}/{geo_resolution}/seq_counts.tsv",
14377
params:
14478
id_column="strain",
14579
date_column="date",
80+
clade_column=_get_clade_column,
14681
shell:
14782
"""
14883
./scripts/summarize-clade-sequence-counts \
14984
--metadata {input.metadata} \
15085
--id-column {params.id_column:q} \
15186
--date-column {params.date_column:q} \
15287
--location-column {wildcards.geo_resolution:q} \
153-
--clade-column {wildcards.variant_classification:q} \
88+
--clade-column {params.clade_column:q} \
15489
--output {output.sequence_counts}
15590
"""
15691

config/defaults.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@ data:
22
gisaid:
33
h3n2:
44
s3_metadata: "s3://nextstrain-data-private/files/workflows/seasonal-flu/h3n2/metadata.tsv.xz"
5-
s3_nextclade: "s3://nextstrain-data-private/files/workflows/seasonal-flu/h3n2/ha/nextclade.tsv.xz"
65
h1n1pdm:
76
s3_metadata: "s3://nextstrain-data-private/files/workflows/seasonal-flu/h1n1pdm/metadata.tsv.xz"
8-
s3_nextclade: "s3://nextstrain-data-private/files/workflows/seasonal-flu/h1n1pdm/ha/nextclade.tsv.xz"
97
vic:
108
s3_metadata: "s3://nextstrain-data-private/files/workflows/seasonal-flu/vic/metadata.tsv.xz"
11-
s3_nextclade: "s3://nextstrain-data-private/files/workflows/seasonal-flu/vic/ha/nextclade.tsv.xz"
129

1310
data_provenances:
1411
- gisaid
@@ -46,5 +43,3 @@ prepare_data:
4643
location_min_seq: 100
4744
clade_min_seq: 50
4845

49-
haplotype_variant_column: "clade"
50-
mutations_column: "founderMuts['clade'].aaSubstitutions"

scripts/assign_aa_haplotypes.py

Lines changed: 0 additions & 104 deletions
This file was deleted.

0 commit comments

Comments
 (0)