Skip to content

Commit 44fd080

Browse files
Merge pull request #158 from Clinical-Genomics/rename-files (minor)
New gms-artic version and change name of files for nanopore analyses
2 parents 75fb84f + 5c91cee commit 44fd080

File tree

6 files changed

+238
-124
lines changed

6 files changed

+238
-124
lines changed

mutant/cli.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
from mutant.modules.artic_illumina.start import RunSC2
1313
from mutant.modules.artic_nanopore.reformat import reformat_fastq_folder
1414
from mutant.modules.artic_nanopore.report import ReportPrinterNanopore
15+
from mutant.modules.delivery import DeliverySC2
1516
from mutant.modules.generic_parser import get_json
1617
from mutant.modules.artic_illumina.report import ReportSC2
17-
from mutant.modules.artic_illumina.delivery import DeliverySC2
1818

1919

2020
@click.group()
@@ -90,6 +90,7 @@ def sarscov2(
9090
WD=WD,
9191
)
9292

93+
barcode_to_sampleid = {}
9394
resdir = run.get_results_dir(config_mutant, outdir)
9495
if nanopore:
9596
barcode_to_sampleid: dict = reformat_fastq_folder(
@@ -119,14 +120,17 @@ def sarscov2(
119120
)
120121
report.create_all_files()
121122

122-
# Deliverables
123-
if config_case != "":
124-
delivery = DeliverySC2(
125-
caseinfo=config_case,
126-
indir=os.path.abspath(resdir),
127-
)
123+
# Deliverables
124+
if config_case != "":
125+
delivery = DeliverySC2(
126+
caseinfo=config_case,
127+
indir=os.path.abspath(resdir),
128+
nanopore=nanopore,
129+
timestamp=TIMESTAMP,
130+
barcode_to_sampleid=barcode_to_sampleid,
131+
)
128132

129-
delivery.rename_deliverables()
133+
delivery.rename_deliverables()
130134

131135

132136
@analyse.command()

mutant/modules/artic_illumina/delivery.py

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

mutant/modules/artic_nanopore/parser.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,11 @@ def get_pangolin_type(raw_pangolin_result: str) -> str:
139139
return lineage
140140

141141

142-
def get_pangoLEARN_version(raw_pangolin_result: str) -> str:
143-
"""Return the pangoLEARN_version of a sample"""
142+
def get_pango_version(raw_pangolin_result: str) -> str:
143+
"""Return version of the lineage predictor used in pangolin"""
144144
split_on_comma = raw_pangolin_result.split(",")
145-
pango_learn_version = split_on_comma[9]
146-
return pango_learn_version
145+
pango_version = split_on_comma[8]
146+
return pango_version
147147

148148

149149
def identify_classifications() -> dict:
@@ -166,10 +166,10 @@ def parse_pangolin(results: dict, barcode_to_sampleid: dict, resdir: str) -> dic
166166
)
167167
pangolin_type: str = get_pangolin_type(raw_pangolin_result=second_line)
168168
results[cust_sample_id]["pangolin_type"] = pangolin_type
169-
pangoLEARN_version: str = get_pangoLEARN_version(
169+
pango_version: str = get_pango_version(
170170
raw_pangolin_result=second_line
171171
)
172-
results[cust_sample_id]["pangolearn_version"] = pangoLEARN_version
172+
results[cust_sample_id]["pangolin_data_version"] = pango_version
173173
voc_strains: dict = identify_classifications()
174174
if pangolin_type in voc_strains["lineage"]:
175175
index = voc_strains["lineage"].index(pangolin_type)

mutant/modules/artic_nanopore/report.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
""" Using a dict as input, this class will print a report covering the
22
information requested by the sarscov2-customers at Clinical Genomics
33
"""
4+
import csv
45
import glob
6+
import os
57
from datetime import date
68

79
from mutant.modules.artic_nanopore.parser import collect_results, collect_variants
@@ -55,8 +57,32 @@ def create_all_nanopore_files(self):
5557
target_files=self.consensus_target_files
5658
)
5759
generic_reporter.create_deliveryfile(fastq_dir=self.fastq_dir)
58-
# TODO rename_vcfs
59-
# TODO handle consensus files
60+
self.create_fohm_csv(result=result)
61+
self.create_instrument_properties()
62+
63+
def create_instrument_properties(self) -> None:
64+
"""Creates a properties file with instrument information"""
65+
propfile = os.path.join(self.indir, "instrument.properties")
66+
with open(propfile, "w") as prop:
67+
prop.write("instrument=GridION\n")
68+
prop.write("plattform=Oxford Nanopore Technologies\n")
69+
prop.write("biblioteksmetod=NA:NA - None\n")
70+
prop.write("lanes=1\n")
71+
72+
def create_fohm_csv(self, result: dict) -> None:
73+
"""Creates a summary file for FoHMs additional info"""
74+
sumfile = os.path.join(
75+
self.indir,
76+
"{}_komplettering.csv".format(self.ticket),
77+
)
78+
with open(sumfile, "w") as out:
79+
summary = csv.writer(out)
80+
summary.writerow(["provnummer", "urvalskriterium", "GISAID_accession"])
81+
samples = result.keys()
82+
for sample in samples:
83+
if result[sample]["qc_pass"] != "TRUE":
84+
continue
85+
summary.writerow([sample, result[sample]["selection_criteria"]])
6086

6187
def print_variants(self, variants: list) -> None:
6288
"""Append data to the variant report"""
@@ -91,7 +117,7 @@ def print_report(self, result: dict) -> None:
91117
"%10X_coverage",
92118
"QC_pass",
93119
"Lineage",
94-
"PangoLEARN_version",
120+
"Pangolin_data_version",
95121
"VOC",
96122
"Mutations\n",
97123
]
@@ -109,7 +135,7 @@ def print_report(self, result: dict) -> None:
109135
result[sample]["pct_10x_coverage"],
110136
result[sample]["qc_pass"],
111137
result[sample]["pangolin_type"],
112-
result[sample]["pangolearn_version"],
138+
result[sample]["pangolin_data_version"],
113139
result[sample]["voc"],
114140
result[sample]["mutations"],
115141
"\n",

0 commit comments

Comments
 (0)