The crazy adventures continue. I need to call vari...
# sarek
i
The crazy adventures continue. I need to call variants with some Illumina reads from tomatoes (Solanum lycopersicum) with the SLM-r2.1 reference from NCBI. I already noticed that I need to disable iGenomes, as there is (apparently) no tomato there, and it tries to inject too many human references. Does anyone have experience with plants in sarek, or otherwise knows which tweaks are necessary, and which steps will become impossible?
m
We talk with someone once that wanted to run on tomatoes
and yes, I would run on a custom fasta
with only a fasta it will skip recalibration and duplicates marking as you would need some known indels/sites
but you should still be able to produce some bam files
I am unsure of how big the tomato genome is, and not sure is sarek can handle big genomes
i
Alright, so if I have a genome FASTA, I only need to disable recalibration and duplicate marking, and the rest should run correctly?
The genome is around 830 Mbp so nothing should explode
I just hope SnpEff has a database for tomato, cause VEP clearly does not
m
It should not run these steps if no vcf are given
i
It's complaining, but
--skip_tools
should do the job
m
Let me know where it's complaining, I'll check it out
i
That one was fixed by explicitly skipping the offending steps, but now I'm getting a new one:
Copy code
The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : haplotypecaller
The samplesheet contains one sample, and I added a status of 0 to it just to be sure, but it's still complaining
I tried to change some things in the samplesheet, but nothing helps. Any ideas?
r
can you please post logs and samplesheets etc?
i
Command:
Copy code
nextflow run nf-core/sarek -profile conda -params-file params.yaml -stub-run
Params:
Copy code
input: samplesheet.csv
outdir: out
step: mapping

tools: freebayes,haplotypecaller,vep
skip_tools: baserecalibrator,markduplicates

igenomes_ignore: true
fasta: [...]/GCF_036512215.1_SLM_r2.1_genomic.fna.gz

snpeff_db: SLM_r2.1
Samplesheet:
Copy code
"patient","sample","lane","fastq_1","fastq_2","status"
"SolPi","SRX8569566","LANE","[...]/fastq/SRX8569566_SRR12039813_1.fastq.gz","[...]/fastq/SRX8569566_SRR12039813_2.fastq.gz","0"
Stdout:
Copy code
WARN: nf-core pipelines do not accept positional arguments. The positional argument `true` has been detected.
HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.

WARN: If GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.
For more information see FilterVariantTranches (single-sample, default): <https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches>
For more information see VariantRecalibration (--joint_germline): <https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator>
For more information on GATK Best practice germline variant calling: <https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels->
[-        ] process > NFCORE_SAREK:PREPARE_GENOME:BWAMEM1_INDEX                         -
[-        ] process > NFCORE_SAREK:PREPARE_GENOME:GATK4_CREATESEQUENCEDICTIONARY        -
[-        ] process > NFCORE_SAREK:PREPARE_GENOME:SAMTOOLS_FAIDX                        -
[-        ] process > NFCORE_SAREK:PREPARE_INTERVALS:BUILD_INTERVALS                    -
[-        ] process > NFCORE_SAREK:PREPARE_INTERVALS:CREATE_INTERVALS_BED               -
[-        ] process > NFCORE_SAREK:PREPARE_INTERVALS:TABIX_BGZIPTABIX_INTERVAL_SPLIT    -
[-        ] process > NFCORE_SAREK:PREPARE_INTERVALS:TABIX_BGZIPTABIX_INTERVAL_COMBINED -
The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : haplotypecaller
Log:
Copy code
[lots of irrelevant lines]
nextflow.exception.WorkflowScriptErrorException: The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : haplotypecaller
        at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        [more traceback]
Ignore the
vep
in the tools, it is incorrect but probably not the source of the issue
m
could be an issue with stub, could you try with test data?
i
-profile test
works normally with
-stub-run
, so it is probably not this. I will try the real data without stub anyway, although I wanted to use it to detect outstanding errors more quickly
Removing
-stub-run
does not fix the issue with the real data
I have now found the offending line. It should only trigger if there are no samples with status 0 (which I should have). I suppose something goes wrong during samplesheet parsing, but I am not sure how to check this without running with a debugger/editing the local copy of the pipeline.
👀 1
I tried to add a
view()
in the local file, but it seemingly does nothing
I'm getting somewhere. With some print statements, I managed to determine that the channel is empty (already at the
ch_from_samplesheet
stage). What remains to determine is why that happens.
I have pinned it down. Everything goes well until
samplesheetToList
, but then
channel.fromList
returns nothing. The list is
[[[patient:SolPi, sample:SRX8569566, sex:NA, status:0, lane:LANE], [...]/fastq/SRX8569566_SRR12039813_1.fastq.gz, [...]/fastq/SRX8569566_SRR12039813_2.fastq.gz, [], [], [], [], [], [], [], [], [], []]]
.
r
that looks ok though, the empty fields should be for bams or vcfs
m
yeah I have a feeling this message is a red herring
a
Why do you want to skip
markduplicates
?
m
Tomato genome, and no known sites
a
BQSR obviously doesn't work, but Markduplicates doesn't need known sites?
facepalm 1
thistbh 2
i
Maxime said I should skip it, so I do
The tumor-only message is indeed a red herring, as I have described. That part of the workflow is not prepared for a scenario where there are no samples at all (why does this not throw any error?). What I fail to understand is why the list to channel conversion creates nothing.
r
can you show the rest of the log please
s
Also you have this in the stdout:
Copy code
WARN: nf-core pipelines do not accept positional arguments. The positional argument `true` has been detected.
HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.
you should definitely markduplicates 😉
m
SORRY
i
It took a while to copy from the VM, but here's the full log
Slack doesn't enjoy it for some reason
Actually, it's very truncated, sorry for that
This should be better, Slack is still misbehaving
r
Copy code
Mar-17 13:44:38.296 [main] ERROR nextflow.cli.Launcher - @unknown
nextflow.exception.WorkflowScriptErrorException: This path is not available within annotation-cache.
Please check <https://annotation-cache.github.io/> to create a request for it.
I think you need to set
genome: null
and then for snpeff also set the cache location
m
let's try without snpeff for now
r
https://nf-co.re/sarek/3.8.1/docs/usage/#use-annotation-cache-for-snpeff-and-vep I am not sure we have the tomato cache preset in the annotation-cache bucket, so you might need to go ahead and fetch it form the remote cache location instead
i
Looks like disabling snpeff fixed the empty channel issue, it's creating Conda environments now
But eventually I will need snpeff (VEP probably not possible)
r
yep I think you'll need to set up the tomato cache locally. you can use downloadsnpeffcache pipeline for this and then point to that. I am pretty sure the pipeline tried to access the tomato cache from our s3 bucket where it is not set up
i
Alright, I will first try to get a full run without snpeff and then I will see about the cache