pinellolab/CRISPRme

Test run failed - docker

Closed this issue · 6 comments

Hello,
I tired to launch the test command:
docker run -v ${PWD}:/DATA -w /DATA -i scancellieri/crisprme crisprme.py complete-search --genome Genomes/hg38/ --vcf list_vcf.txt/ --guide sg1617.txt --pam PAMs/20bp-NGG-SpCas9.txt --annotation Annotations/encode+gencode.hg38.bed --samplesID list_samplesID.txt --gene_annotation Annotations/gencode.protein_coding.bed --bMax 2 --mm 6 --bDNA 2 --bRNA 2 --merge 3 --output sg1617.6.2.2 --thread 4

But received error:

The folder specified for --vcf does not exist

This is what the test directory looks like (command tree -L 2)

├── Annotations
│   ├── encode+gencode.hg38.bed
│   └── gencode.protein_coding.bed
├── clean_all.sh
├── crisprme_auto_test_conda.sh
├── crisprme_auto_test_docker.sh
├── crisprme_auto_test_download_essentials.sh
├── crisprme_auto_test_no_download.sh
├── Dictionaries
├── Genomes
│   ├── hg38
│   └── hg38.chromFa.tar.gz
├── list_samplesID.txt
├── list_vcf.txt
├── PAMs
│   └── 20bp-NGG-SpCas9.txt
├── Results
├── samplesIDs
│   ├── hg38_1000G.samplesID.txt
│   ├── hg38_gnomAD.samplesID.txt
│   └── hg38_HGDP.samplesID.txt
├── sg1617.txt
└── VCFs
    ├── hg38_1000G
    └── hg38_HGDP

I then modified the command to --vcf VCFs/hg38_1000G, but then have a new errorThe folder specified for --pam does not exist

What am I doing wrong?
Thank you!
Paola

Hello @PaolaBenaglio

The problem I see, is that you are input the list_vcf.txt as directory, --vcf list_vcf.txt/
but the file should be a text file with names of the directories in the VCF folder, so if you are using the default directories, you will have a txt file like this.
list_vcf.txt:
hg38_1000G
hg38_HGDP

so the correct call would be,
docker run -v ${PWD}:/DATA -w /DATA -i scancellieri/crisprme crisprme.py complete-search --genome Genomes/hg38/ --vcf list_vcf.txt --guide sg1617.txt --pam PAMs/20bp-NGG-SpCas9.txt --annotation Annotations/encode+gencode.hg38.bed --samplesID list_samplesID.txt --gene_annotation Annotations/gencode.protein_coding.bed --bMax 2 --mm 6 --bDNA 2 --bRNA 2 --merge 3 --output sg1617.6.2.2 --thread 4

let me know if this solve the problem.

Hi @samuelecancellieri ,
thank you for your feedback,
I run it as you suggested but I still have the same error:
The folder specified for --vcf does not exist

the file itself was a text with
hg38_1000G/

and then i modified to
hg38_1000G
hg38_HGDP

but it did not work in both cases.

Any idea?
Thank you

Hi @PaolaBenaglio
I tried to replicate the error, and it seems related to the version of the software installed by docker.
This is a common docker+conda problem.
I'm creating a new Dockerfile trying to fix the problem.
I will keep you updated.

Thanks again for the support to the software.
Best,

hi @PaolaBenaglio
i've a temporary solution, you can use the quay biocontainer created by conda,
docker pull quay.io/biocontainers/crisprme:2.1.1--hdfd78af_0

just call the docker command like this,

docker run -d -v ${PWD}:/DATA -w /DATA -i quay.io/biocontainers/crisprme:2.1.1--hdfd78af_0 crisprme.py complete-search --genome Genomes/hg38/ --vcf list_vcf.txt --guide sg1617.txt --pam PAMs/20bp-NGG-SpCas9.txt --annotation Annotations/encode+gencode.hg38.bed --samplesID list_samplesID.txt --gene_annotation Annotations/gencode.protein_coding.bed --bMax 2 --mm 6 --bDNA 2 --bRNA 2 --merge 3 --output sg1617.6.2.2 --thread 4

i've also added the -d flag to the call to automatically detach the docker from the terminal.
let me know if this solve the problem.

thanks again.
best,

Thank you very much for helping,
The command now run without errors (but I had to use sudo). I just have a question about the output, I am not sure what to expect and if I obtained the correct output from this test command. The Results folder contain these:

└── sg1617.6.2.2
    ├── crispritz_targets
    ├── guides.txt
    ├── log_error.txt
    ├── log.txt
    ├── log_verbose.txt
    └── Params.txt

However the crispritz_targets folder is empty. Is this expected?

Thanks again!!!
Paola

Hello @PaolaBenaglio, there are no other data in the result folder? You should have all the targets results in a file called something.intergrated.tsv.
Did you check the log error file?
For the sudo, you need to add the user you use to call the docker in the docker group. You can find the instructions in the Crisprme Readme on this repo.

Let me know if you encounter any problem.

Best,