nodrogluap/tamor
Illumina Dragen cancer genome and transcriptome analysis automation using Snakemake
Overview
Latest release: None, Last update: 2025-06-27
Linting: linting: failed, Formatting: formatting: failed
Topics: cancer-genomics dragen mutation-analysis pcgr ruo sciworkflows bioinformatics-pipeline
Deployment
Step 1: Install Snakemake and Snakedeploy
Snakemake and Snakedeploy are best installed via the Mamba package manager (a drop-in replacement for conda). If you have neither Conda nor Mamba, it is recommended to install Miniforge. More details regarding Mamba can be found here.
When using Mamba, run
mamba create -c conda-forge -c bioconda --name snakemake snakemake snakedeploy
to install both Snakemake and Snakedeploy in an isolated environment. For all following commands ensure that this environment is activated via
conda activate snakemake
Step 2: Deploy workflow
With Snakemake and Snakedeploy installed, the workflow can be deployed as follows. First, create an appropriate project working directory on your system and enter it:
mkdir -p path/to/project-workdir
cd path/to/project-workdir
In all following steps, we will assume that you are inside of that directory. Then run
snakedeploy deploy-workflow https://github.com/nodrogluap/tamor . --tag None
Snakedeploy will create two folders, workflow
and config
. The former contains the deployment of the chosen workflow as a Snakemake module, the latter contains configuration files which will be modified in the next step in order to configure the workflow to your needs.
Step 3: Configure workflow
To configure the workflow, adapt config/config.yml
to your needs following the instructions below.
Step 4: Run workflow
The deployment method is controlled using the --software-deployment-method
(short --sdm
) argument.
To run the workflow with automatic deployment of all required software via conda
/mamba
, use
snakemake --cores all --sdm conda
Snakemake will automatically detect the main Snakefile
in the workflow
subfolder and execute the workflow module that has been defined by the deployment in step 2.
For further options such as cluster and cloud execution, see the docs.
Step 5: Generate report
After finalizing your data analysis, you can automatically generate an interactive visual HTML report for inspection of results together with parameters and code inside of the browser using
snakemake --report report.zip
Configuration
The following section is imported from the workflow’s config/README.md
.
NOTA BENE!!! When running snakemake for the first time with this repository, it may take many hours, as it will download both all the software environment needed to run PCGR mutation impact reports, and all the large public resource files needed for the same (by automatically running workflow/scripts/download_resources.py
). If you intererupt the downloading and unpacking of these files, you will need to rerun the download script manually.
Configuring Tamor to Analyze Your Cancer Cases
Cases are organized into logical units: Projects (a.k.a. cohorts), that have Subjects (a.k.a. patients) that have Samples (e.g. biopsy or blood).
Cases from the same cohort will be outputted into the same output folder, for organizational purposes.
A Subject must have at least one normal/germline sample. We may expand to support tumor-only analysis in the future.
A Subject can have one or more tumor samples (e.g. primary and refractory). Each tumor must have a DNA sample, and optionally an RNA sample.
Table of Contents
Test case defaults
The default config files are preconfigured for didactic purposes with a public leukaemia genome+transcriptome case from the NCBI Short Read Archive.
This case is part of the cohort PR-TEST-CLL
, with the patient labelled as PR-TEST-CLL-SAMN08512283
, and there are three sets of input FASTQ files
downloaded/generated by running workflow/scripts/download_testdata.py
. The three samples are PR-TEST-CLL-SAMN08512283-SRR6702602-T
(tumor DNA)
, PR-TEST-CLL-SAMN08512283-SRR6702602-N
(pseudonormal DNA generated by the script since no actual normal is available), and
PR-TEST-CLL-SAMN08512283-SRR6702601-T
(tumor RNA). Such long systematic names are not necessary, but in practice we have found them very useful as
you start accumulating larger cohorts.
Sequencing instrument run IDs and sample IDs are typically rather opaque and automatically assigned by the sequencing lab. These are not part of the config files, nor reported out by Tamor, but rather linked to designated Subjects and Samples via the Illumina Samplesheets.
Site-specific customizations
Site-specific file paths
config/config.yaml
is the file that you can customize for your site-specific settings.
By default the config is set up to read input files from the resources
folder, and write result files under the results
folder.
By default the genome index and annotation files, as well as the PCGR data bundle, are expected in resources
.
This is where workflow/scripts/download_resources.py
puts those files.
Tamor’s default config has the input lists of paired tumor-normal samples (with minimal metadata, described below) in files called config/dna_samples.tsv
and config/rna_samples.tsv
.
These TSVs are the main config files that you will need to edit to run your own samples through the workflow. Config files are internally validated for completeness based on workflow/schemas/dna_sample_config.schema.yaml
and workflow/schemas/rna_sample_config.schema.yaml
.
Site-specific file permissions and group ownership
On systems where multiple users will generate or use the Tamor analysis, it can useful to have the workflow automatically set shared permissions for the output files.
Uncommenting the set_output_group
and set_output_umask
lines in config/config.yaml
will make Tamor try to honour those wishes. As per UNIX convention, a umask of 007
will allow read/write by the owner and designated group, but give no permissions to others.
DNA Sample Metadata
The config/dna_samples.tsv
file has 8 columns to be specified with column names:
subjectID<tab>
tumorSampleID<tab>
trueOrFalseTumorHasPCRDuplicates<tab>
germlineSampleID<tab>
trueOrFalseGermlineHasPCRDuplicates<tab>
trueOrFalseGermlineContainsSomeTumor<tab>
oncoTreeCode<tab>
projectID
Details on how to set each column are below.
Sample IDs
The subjectID
, tumorSampleID
and germlineSampleID
must:
CONTAIN NO UNDERSCORES
The
subjectID
must be between 6 and 35 characters (due to a PCGR naming limitation)tumorSampleID
andgermlineSampleID
must be the exactSample_Name
values you used in your Illumina sequencing sample spreadsheets (see samplesheet section below for details).
Handling PCR duplicates
The third and fifth column tell Dragen whether to consider (in tumor and germline respectively) as PCR duplicates read pairs that map to the same start and end in the reference genome.
If you used a PCR-free library prep, set this to False
, otherwise set it to True
.
Project designation
The eighth column is a unique project ID to which the subject belongs. For example if you have two cohorts of lung and breast cancer, assigning individuals to two projects would be logical. All project output files go into their own output folders, even if they were sequenced together on the same Illumina sequencing runs.
Tumor-in-normal handling
The sixth column of the paired input sample TSV file is usually False
, unless your germline sample is from a leukaemia or perhaps
a poor quality histology section from a tumor, in which case use True
. This instructs Dragen to consider low frequency variants
in the germline sample to still show up as somatic variants in the tumor analysis output (see default of 0.05 under tumor_in_normal_tolerance_proportion
in config.yaml
)
Cancer type designation
For the seventh column, the type of cancer the tumor represent must be coded. This is preferably an OncoTree code. Those codes can be found here: https://oncotree.mskcc.org/ This information will be used to customize some parts of the variant, gene expression, and immune profiling reports. If no cancer type information is available at all, you can use the top-level code in OncoTree: “TISSUE”. While OncoTree codes are preferred, Tamor will also attempt to uniquely map codes from the ICD-O, NCIt, UMLS and HemeOnc systems.
RNA Sample Metadata
The config/rna_samples.tsv
file has 5 columns to be specified with column names:
subjectID<tab>
tumorRNASampleID<tab>
matchedTumorDNASampleID<tab>
projectID<tab>
cohortNameForExpressionAnalysis
If you have both normal and tumor RNA samples available, it is critical to list the tumor RNA sample first.
The first RNA sample listed in the file is the one that will be included on the PCGR report for matchedTumorDNASampleID
,
and typically you want to report out regarding the tumor RNA.
The last column cohortNameForExpressionAnalysis
is used for Djerba cohort reporting, e.g. to identify Z-score and percentile
rank outliers genes in this sample compared to others being processed at the same time and nominally of the same cancer/tissue type as defined by the user.
Illumina Samplesheets
These sample sheets are the only other metadata to which Tamor has access. Place all the
Illumina experiment sample sheets for your project
into resources/spreadsheets
by default (see the samplesheets_dir
setting in config/config.yaml
). They must be
called runID.csv
, where runID is typically the Illumina folder name in the format YYMMDD_machineID_SideFlowCellID
.
FASTQ File Location
If you are providing the FASTQs directly as input to Tamor, they must also be in the resources/analysis/primary/sequencerName/runID
directory,
with a corresponding Illumina Experiment Manager samplesheet resources/spreadsheets/runID.csv
. Why? This is required because Tamor reads the sample
sheet to find the correspondence between Sample_Name and Sample ID for each sequencing library, also analysis for DNA samples differs from that for RNA
samples, so the sample sheet must also contain a Sample_Project
column. Sample projects with names that contain “RNA” in them will be processed as such,
all others are assumed to be DNA. The Sample_Project
is not used for any other purpose than distinguishing RNA and DNA, and does not need to be the
same as the projectIDs listed in the config
folder files.
If you provide FASTQ files directly, they must be timestamped later than the corresponding Illumina Experiment Manager spreadsheet, otherwise Snakemake will assume you’ve consequentially changed the spreadsheet and try to automatically regenerated all FASTQs for that run – from potentially non-existent BCLs.
Samples Split Across Multiple Runs
Note that a sample can actually be sequenced across multiple runs, Tamor will aggregate the sequence data across the runs to generate a single report (e.g. a primary run and some top-up sequencing due to unexpected low read count on the first run). The same sample name can have the same sample ID or different sample IDs across runs, they will be aggregated regardless. This allows for a single tumor sample to be prepared using two different sequencing library preps for example.
BCL File Location (optional)
If you are starting with BCLs, the full Illumina experiment output folders (which contain the
requisite Data/Intensities/Basecalls
subfolder) are expected by in resources/bcls/runID
(see bcl_dir
setting inconfig.yaml
). Tamor will perform BCL
to FASTQ conversion, with the FASTQ output into results/analysis/primary/sequencer/runID
(see analysis_dir
setting in config.yaml
, and the
default sequencer
is HiSeq
per the test data mentioned earlier).
Unique Molecular Indices
The samplesheet is also used to determine if Unique Molecular Indices (UMIs) were used to generate the sequencing libraries, which requires
different handling in Dragen during genotyping downstream. Use of UMIs is determined by the presence of an OverrideCycles setting in the smaplesheet
that includes a “U” value. By default, random UMIs are assumed. To specify a non-random UMI scheme, uncomment the umi_whitelist
, umi_correction_table
, and
umi_slippage_support_informative_fraction
settings in config/config.yaml
as appropriate.
Variant Blacklists
Some false positive variants may be recurrent across analyzes. To reduce the reporting of likely false-positive results, default list of variants to change
from PASS to filtered in output VCFs have been included in Tamor, based on commonalities found in hundreds of tumor-normal cases analyzed at the University of Calgary’s CSM
Centre for Health Genomics and Informatics. These can be customized by editing the dragen_cnv_blacklist.bed
and dragen_snv_blacklist.txt
files for copy number and
small nucleotide variants respectively.
Linting and formatting
Linting results
1No validator found for JSON Schema version identifier 'http://json-schema.org/draft-06/schema#'
2Defaulting to validator for JSON Schema version 'https://json-schema.org/draft/2020-12/schema'
3Note that schema file may not be validated correctly.
4No validator found for JSON Schema version identifier 'http://json-schema.org/draft-06/schema#'
5Defaulting to validator for JSON Schema version 'https://json-schema.org/draft/2020-12/schema'
6Note that schema file may not be validated correctly.
7Lints for snakefile /tmp/tmp1frb5ct_/workflow/Snakefile:
8 * Absolute path "/{project}/{subject}/rna/{subject}_{rna}.rna.quant.genes.hugo.tpm.txt" in line 58:
9 Do not define absolute paths inside of the workflow, since this renders
10 your workflow irreproducible on other machines. Use path relative to the
11 working directory instead, or make the path configurable via a config
12 file.
13 Also see:
14 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
15 * Absolute path "/{project}/{subject}/rna/{subject}_{rna}.rna.quant.genes.fpkm.txt" in line 59:
16 Do not define absolute paths inside of the workflow, since this renders
17 your workflow irreproducible on other machines. Use path relative to the
18 working directory instead, or make the path configurable via a config
19 file.
20 Also see:
21 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
22 * Absolute path "/{project}/{subject}/rna/{subject}_{rna}.rna.fusion_candidates.features.csv" in line 60:
23 Do not define absolute paths inside of the workflow, since this renders
24 your workflow irreproducible on other machines. Use path relative to the
25 working directory instead, or make the path configurable via a config
26 file.
27 Also see:
28 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
29 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic.hard-filtered.vcf.gz" in line 61:
30 Do not define absolute paths inside of the workflow, since this renders
31 your workflow irreproducible on other machines. Use path relative to the
32 working directory instead, or make the path configurable via a config
33 file.
34 Also see:
35 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
36 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic.cnv.vcf.gz" in line 62:
37 Do not define absolute paths inside of the workflow, since this renders
38 your workflow irreproducible on other machines. Use path relative to the
39 working directory instead, or make the path configurable via a config
40 file.
41 Also see:
42 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
43 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic.sv.vcf.gz" in line 63:
44 Do not define absolute paths inside of the workflow, since this renders
45 your workflow irreproducible on other machines. Use path relative to the
46 working directory instead, or make the path configurable via a config
47 file.
48 Also see:
49 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
50 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic_tumor.clipped_reads.bam" in line 64:
51 Do not define absolute paths inside of the workflow, since this renders
52 your workflow irreproducible on other machines. Use path relative to the
53 working directory instead, or make the path configurable via a config
54 file.
55 Also see:
56 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
57 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic_tumor.no_proper_read_pair.bam" in line 65:
58 Do not define absolute paths inside of the workflow, since this renders
59 your workflow irreproducible on other machines. Use path relative to the
60 working directory instead, or make the path configurable via a config
61 file.
62 Also see:
63 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
64 * Absolute path "/{project_name}/{subject}/{subject}_{tumor}_{normal}.dna.somatic.qiagen-ipa.submitted.txt" in line 66:
65 Do not define absolute paths inside of the workflow, since this renders
66 your workflow irreproducible on other machines. Use path relative to the
67 working directory instead, or make the path configurable via a config
68 file.
69 Also see:
70 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
71 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.cnv_plot.jpeg" in line 67:
72 Do not define absolute paths inside of the workflow, since this renders
73 your workflow irreproducible on other machines. Use path relative to the
74 working directory instead, or make the path configurable via a config
75 file.
76 Also see:
77 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
78 * Absolute path "/{project}/{subject}/{subject}_{tumor}_{normal}.dna.somatic.sv.fusion_candidates.features.csv" in line 68:
79 Do not define absolute paths inside of the workflow, since this renders
80 your workflow irreproducible on other machines. Use path relative to the
81 working directory instead, or make the path configurable via a config
82 file.
83 Also see:
84 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
85 * Absolute path "/pcgr/{project}/{subject}_{tumor}_{normal}/{subject}.pcgr.grch38.html" in line 69:
86 Do not define absolute paths inside of the workflow, since this renders
87 your workflow irreproducible on other machines. Use path relative to the
88 working directory instead, or make the path configurable via a config
89 file.
90 Also see:
91 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
92 * Absolute path "/djerba/{project}/{subject}_{tumor}_{normal}/{subject}-v1_report.research.html" in line 70:
93 Do not define absolute paths inside of the workflow, since this renders
94 your workflow irreproducible on other machines. Use path relative to the
95 working directory instead, or make the path configurable via a config
96 file.
97 Also see:
98 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
99
100Lints for snakefile /tmp/tmp1frb5ct_/workflow/rules/resources.smk:
101 * Absolute path "/anchored_rna" in line 5:
102 Do not define absolute paths inside of the workflow, since this renders
103 your workflow irreproducible on other machines. Use path relative to the
104 working directory instead, or make the path configurable via a config
105 file.
106 Also see:
107 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
108
109Lints for snakefile /tmp/tmp1frb5ct_/workflow/rules/metadata.smk:
110 * Absolute path "/*.csv" in line 53:
111 Do not define absolute paths inside of the workflow, since this renders
112 your workflow irreproducible on other machines. Use path relative to the
113 working directory instead, or make the path configurable via a config
114 file.
115 Also see:
116 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
117 * Path composition with '+' in line 16:
118 This becomes quickly unreadable. Usually, it is better to endure some
119 redundancy against having a more readable workflow. Hence, just repeat
120 common prefixes. If path composition is unavoidable, use pathlib or
121 (python >= 3.6) string formatting with f"...".
122
123Lints for snakefile /tmp/tmp1frb5ct_/workflow/rules/fastq_list.smk:
124 * Absolute path "/'+wildcards.project+" in line 20:
125 Do not define absolute paths inside of the workflow, since this renders
126 your workflow irreproducible on other machines. Use path relative to the
127 working directory instead, or make the path configurable via a config
128 file.
129 Also see:
130 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
131 * Absolute path "/rna/'+wildcards.sample+" in line 20:
132 Do not define absolute paths inside of the workflow, since this renders
133 your workflow irreproducible on other machines. Use path relative to the
134 working directory instead, or make the path configurable via a config
135 file.
136 Also see:
137 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
138 * Absolute path "/'+wildcards.project+" in line 23:
139 Do not define absolute paths inside of the workflow, since this renders
140 your workflow irreproducible on other machines. Use path relative to the
141 working directory instead, or make the path configurable via a config
142 file.
143 Also see:
144 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
145 * Absolute path "/'+wildcards.tumor+" in line 23:
146 Do not define absolute paths inside of the workflow, since this renders
147 your workflow irreproducible on other machines. Use path relative to the
148 working directory instead, or make the path configurable via a config
149 file.
150 Also see:
151 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
152 * Absolute path "/'+wildcards.project+" in line 26:
153 Do not define absolute paths inside of the workflow, since this renders
154 your workflow irreproducible on other machines. Use path relative to the
155 working directory instead, or make the path configurable via a config
156 file.
157 Also see:
158 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
159 * Absolute path "/'+wildcards.normal+" in line 26:
160 Do not define absolute paths inside of the workflow, since this renders
161 your workflow irreproducible on other machines. Use path relative to the
162 working directory instead, or make the path configurable via a config
163 file.
164 Also see:
165 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
166 * Absolute path "/'+wildcards.project+" in line 29:
167 Do not define absolute paths inside of the workflow, since this renders
168 your workflow irreproducible on other machines. Use path relative to the
169 working directory instead, or make the path configurable via a config
170 file.
171 Also see:
172 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
173 * Absolute path "/'+wildcards.sample+" in line 29:
174 Do not define absolute paths inside of the workflow, since this renders
175 your workflow irreproducible on other machines. Use path relative to the
176 working directory instead, or make the path configurable via a config
177 file.
178 Also see:
179 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
180 * Absolute path "/primary/'+config["sequencer"]+" in line 36:
181 Do not define absolute paths inside of the workflow, since this renders
182 your workflow irreproducible on other machines. Use path relative to the
183 working directory instead, or make the path configurable via a config
184 file.
185 Also see:
186 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
187 * Absolute path "/tiered/chgi_data/analysis" in line 53:
188 Do not define absolute paths inside of the workflow, since this renders
189 your workflow irreproducible on other machines. Use path relative to the
190 working directory instead, or make the path configurable via a config
191 file.
192 Also see:
193 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
194 * Absolute path "/bulk/chgi_analysis" in line 53:
195 Do not define absolute paths inside of the workflow, since this renders
196 your workflow irreproducible on other machines. Use path relative to the
197 working directory instead, or make the path configurable via a config
198 file.
199 Also see:
200 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
201
202... (truncated)
Formatting results
1[DEBUG]
2[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/filter_variants.smk": Formatted content is different from original
3[DEBUG]
4[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/datavzrd.smk": Formatted content is different from original
5[DEBUG]
6[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/pcgr.smk": InvalidPython: Black error:
Cannot parse for target version Python 3.12: 1:146: “workflow/scripts/generate_pcgr.py {input.tumor_site_code_file} {input.cpsr} {input.cpsr_yaml} {input.somatic_snv_vcf} {input.somatic_cnv_vcf} “ +
(Note reported line number may be incorrect, as snakefmt could not determine the true line number)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/pcgr.smk":
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/captiv8.smk": TabError: inconsistent use of tabs and spaces in indentation (<string>, line 19)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/captiv8.smk":
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/metrics.smk": Formatted content is different from original
[DEBUG]
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/rna.smk": InvalidPython: Black error:
Cannot parse for target version Python 3.12: 1:215: “perl -F\t -ane ‘BEGIN{{print “Hugo_Symbol\t{wildcards.tumor}\n”; for(split /\n/s, gzip -cd {input.annotations}| grep gene_name
){{$gene2hugo{{$1}} = $2 if /gene_id “(\S+)”.*gene_name “(\S+)”/}}}}” +
(Note reported line number may be incorrect, as snakefmt could not determine the true line number)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/rna.smk":
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/data_export.smk": InvalidPython: Black error:
Cannot parse for target version Python 3.12: 14:0: shell(“gzip -cd {input.somatic_snv_vcf} | perl -F\t -ane ‘$F[0] =~ s/^chr//; print join(“\t”, $F[0], $F[1], $F[1]+length($F[3])-1, $F[3], $F[4], $2, $1, “{wildcards.tumor}”), “\n” if not /^#/ and $F[$#F] =~ /^[^:]+:[^:]+:(\d+),(\d+)/’ > {output.maf}”)
(Note reported line number may be incorrect, as snakefmt could not determine the true line number)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/data_export.smk":
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/fastq_list.smk": Formatted content is different from original
[DEBUG]
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/oncogenic_viral_integration.smk": TabError: inconsistent use of tabs and spaces in indentation (<string>, line 13)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/oncogenic_viral_integration.smk":
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/msi.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/samplesheet.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/bams.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/Snakefile": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/karyoploter.smk": Formatted content is different from original
[DEBUG]
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/djerba.smk": InvalidPython: Black error:
Cannot parse for target version Python 3.12: 1:116: “workflow/scripts/generate_djerba.py {input.somatic_snv_vcf} {input.somatic_cnv_ann_txt} {input.somatic_cnv_vcf} “ +
(Note reported line number may be incorrect, as snakefmt could not determine the true line number)
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/djerba.smk":
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/metadata.smk": Formatted content is different from original
[DEBUG]
[ERROR] In file "/tmp/tmp1frb5ct_/workflow/rules/incomplete_mapping.smk": SyntaxError: L10: Unrecognised keyword 'mem_mb' in rule definition
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/incomplete_mapping.smk":
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/resources.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/qiagen_ipa.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/dna.smk": Formatted content is different from original
[DEBUG]
[DEBUG] In file "/tmp/tmp1frb5ct_/workflow/rules/bcl_conversion.smk": Formatted content is different from original
[INFO] 7 file(s) raised parsing errors 🤕
[INFO] 14 file(s) would be changed 😬
snakefmt version: 0.11.0