Skip to content

Commit b359185

Browse files
authored
Add software version scrape (#42)
### Added Software versions file
1 parent c2bf7dd commit b359185

File tree

5 files changed

+120
-1
lines changed

5 files changed

+120
-1
lines changed

bin/get_versions.py

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env python
2+
import os
3+
import sys
4+
import re
5+
6+
version_regex = {
7+
"artic": r"artic (\S+)",
8+
"bcftools": r"bcftools (\S+)",
9+
"bwa": r"Version: (\S+)",
10+
"constellations": r"constellations v(\S+)",
11+
"fastqc": r"FastQC v(\S+)",
12+
"freebayes": r"version: v(\d\.\d\.\d+)",
13+
"gofasta": r"gofasta version (\S+)",
14+
"ivar": r"iVar version (\S+)",
15+
"mafft": r"v(\S+)",
16+
"medaka": r"medaka (\S+)",
17+
"minimap2": r"(\S+)",
18+
"multiqc": r"multiqc, version (\S+)",
19+
"muscle": r"MUSCLE (\S+)",
20+
"nanopolish": r"nanopolish version (\S+)",
21+
"nextclade": r"(\S+)",
22+
"pango_designation": r"pango-designation (\S+)",
23+
"pangoLEARN": r"pangoLEARN (\S+)",
24+
"pangolin": r"pangolin (\S+)",
25+
"picard": r"Version:(\S+)",
26+
"porechop": r"(\S+)",
27+
"python": r"Python (\S+)",
28+
"samtools": r"samtools (\S+)",
29+
"scorpio": r"scorpio (\S+)",
30+
"snakemake": r"(\S+)",
31+
"trim_galore": r"version (\S+)",
32+
"usher": r"UShER \((\S+)\)"
33+
}
34+
# Create csv file for all versions
35+
output = sys.argv[1]
36+
with open(output, "w") as out:
37+
for tool, regex in version_regex.items():
38+
# Search for version number
39+
version_file = "version_{}.txt".format(tool)
40+
if os.path.isfile(version_file):
41+
with open(version_file) as f:
42+
contents = f.read()
43+
match = re.search(regex, contents)
44+
if match:
45+
# Add version number to output
46+
out.write("{},{}\n".format(tool, match.group(1)))

modules/analysis.nf

+54
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,57 @@ process makeReport {
2626
makeReport.py ${sampleName}
2727
"""
2828
}
29+
30+
process versions {
31+
publishDir "${params.outdir}/${task.process.replaceAll(":","_")}", pattern: "*", mode: 'copy'
32+
33+
output:
34+
file "*versions.csv"
35+
36+
script:
37+
if ( params.illumina )
38+
"""
39+
bcftools -v > version_bcftools.txt
40+
bwa > version_bwa.txt 2>&1 || true
41+
scorpio -cv > version_constellations.txt
42+
fastqc -v > version_fastqc.txt
43+
gofasta -v > version_gofasta.txt
44+
freebayes --version > version_freebayes.txt
45+
ivar version > version_ivar.txt
46+
multiqc --version > version_multiqc.txt
47+
nextclade --version > version_nextclade.txt
48+
pangolin -dv > version_pango_designation.txt
49+
pangolin -pv > version_pangoLEARN.txt
50+
pangolin -v > version_pangolin.txt
51+
picard CollectWgsMetrics -version > version_picard.txt 2>&1 || true
52+
python --version > version_python.txt
53+
samtools --version > version_samtools.txt
54+
scorpio -v > version_scorpio.txt
55+
snakemake -v > version_snakemake.txt
56+
trim_galore -v > version_trim_galore.txt
57+
usher --version > version_usher.txt
58+
get_versions.py ${params.prefix}_versions.csv
59+
"""
60+
else if ( params.medaka || params.nanopolish )
61+
"""
62+
artic --version > version_artic.txt
63+
bwa > version_bwa.txt 2>&1 || true
64+
scorpio -cv > version_constellations.txt
65+
gofasta -v > version_gofasta.txt
66+
mafft --version > version_mafft.txt 2>&1
67+
medaka --version > version_medaka.txt
68+
minimap2 --version > version_minimap2.txt
69+
muscle -version > version_muscle.txt
70+
nanopolish --version > version_nanopolish.txt
71+
nextclade --version > version_nextclade.txt
72+
pangolin -dv > version_pango_designation.txt
73+
pangolin -pv > version_pangoLEARN.txt
74+
pangolin -v > version_pangolin.txt
75+
porechop --version > version_porechop.txt
76+
python --version > version_python.txt
77+
samtools --version > version_samtools.txt
78+
scorpio -v > version_scorpio.txt
79+
snakemake -v > version_snakemake.txt
80+
get_versions.py ${params.prefix}_versions.csv
81+
"""
82+
}

nextflow.config

+13
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ profiles {
4242
docker.enabled = true
4343
fixOwnership = true
4444
runOptions = "-u \$(id -u):\$(id -g)"
45+
if ( params.medaka || params.nanopolish ){
46+
process {
47+
container="genomicmedicinesweden/gms-artic-nanopore:latest"
48+
}
49+
}
50+
else {
51+
process {
52+
container="genomicmedicinesweden/gms-artic-illumina:latest"
53+
}
54+
}
4555
}
4656
singularity {
4757
singularity.enabled = true
@@ -91,6 +101,9 @@ profiles {
91101
withName:makeReport {
92102
container="docker://genomicmedicinesweden/gms-artic-nanopore:latest"
93103
}
104+
withName:versions {
105+
container="docker://genomicmedicinesweden/gms-artic-nanopore:latest"
106+
}
94107
}
95108
} else if (params.illumina) {
96109
process.container = "docker://genomicmedicinesweden/gms-artic-illumina:latest"

workflows/articNcovNanopore.nf

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ include {pangolinTyping} from '../modules/typing.nf'
1717
include {nextclade} from '../modules/typing.nf'
1818
include {getVariantDefinitions} from '../modules/analysis.nf'
1919
include {makeReport} from '../modules/analysis.nf'
20+
include {versions} from '../modules/analysis.nf'
2021

2122
include {bamToCram} from '../modules/out.nf'
2223

@@ -33,8 +34,10 @@ workflow sequenceAnalysisNanopolish {
3334
ch_seqSummary
3435

3536
main:
37+
versions()
38+
3639
articDownloadScheme()
37-
40+
3841
articGuppyPlex(ch_runFastqDirs.flatten())
3942

4043
articMinIONNanopolish(articGuppyPlex.out.fastq

workflows/illuminaNcov.nf

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ include {pangolinTyping} from '../modules/typing.nf'
1717
include {nextclade} from '../modules/typing.nf'
1818
include {getVariantDefinitions} from '../modules/analysis.nf'
1919
include {makeReport} from '../modules/analysis.nf'
20+
include {versions} from '../modules/analysis.nf'
2021
include {cramToFastq} from '../modules/illumina.nf'
2122

2223
include {makeQCCSV} from '../modules/qc.nf'
@@ -99,6 +100,8 @@ workflow sequenceAnalysis {
99100
ch_bedFile
100101

101102
main:
103+
versions()
104+
102105
fastqc(ch_filePairs)
103106

104107
readTrimming(ch_filePairs)

0 commit comments

Comments
 (0)