ZhenyanLuo / FindPlantNLRs

GNU General Public License v3.0
3 stars 1 forks source link

Please add more information about docker installation #5

Open ardy20 opened 6 months ago

ardy20 commented 6 months ago

Hi Could you please add more information on how to install this tool using docker? e. g. 1) In step 3; Does docker include all dependencies such as Braker, interproscan, etc.? or they should be installed one by one before installation of docker? Should we first clone the tool: git clone https://github.com/ZhenyanLuo/FindPlantNLRs 2) In step 4 docker rum: Is -v ${your interproscan} interproscan.sh or interproscan folder or dataset? 3) Could you please also give an example how to change -v ${your interproscan} and -v ${your input data file}? Could this be path to the folder (including the target file) or file itself e. g. genome.fa or interproscan.sh? 4) In step 5; there is no indication how to find environment yml because the installation instruction of docker version does not indicate how to download the FindPlantNLRs
5) Again in step 5; It says you need to add number of threads for tblasn but there is no line for that in environment.yml 6) In step 5: I am confused also about the editing ymal file because you mentioned: You don't need to change any of the path in most of the case. However, it looks that we need to provide many paths to different tools etc. Could you please add clarification which of those path should be changed?

ZhenyanLuo commented 6 months ago

Sorry for the late response.

Answers: A1. Braker is included in the image but interproscan.sh is not, a interproscan is required to put in the same folder for allowing docker file to mount to the container. The docker file already includes the step for git clone the pipeline, so no need to do it on your own.

A2. The path to the interproscan should be the whole folder where the interproscan.sh is on the host.

A3. The ${your input data file} should be the whole folder of your input.

A4. I applogized for the confused content, this file is copied from the conda install version, for docker version it is not necessary.

A5. In this file (https://github.com/ZhenyanLuo/FindPlantNLRs/blob/docker_version/FindPlantNLRs.config) it has a line which mentioned blast threads =12, you might want to change it to other number. But I applogized for the confused instruction.

A6. Sorry for the confused instruction, this part was copied from the conda version. All paths already preset for the docker version if all these folders are in the original place in the docker container.

ardy20 commented 5 months ago

Hi Thanks for the extra information.

First I build and run docker like this:

sudo docker build -t findplantsnlr:latest -f dockerfile .

sudo docker run -v /home/ardy/FindPlantNLRs/interproscan-5.67-99.0:/home/interproscan -v /home/ardy/FindPlantNLRs/input:/home/FindPlantNLRs/genome -v /home/ardy/FindPlantNLRs/result:/home/FindPlantNLRs/result -ti findplantsnlr bash

In step 6 with Docker version; I run: conda activate FindPlantNLRs cd /home/FindPlantNLRs/ snakemake -s FindPlantNLRs -c 1 --wait-for-files

Is this correct activating and using conda?

However, It runs without any error but the result folder is empty!

The log file is as below:

(Annotate_NLR) root@995b16f3346f:/home/FindPlantNLRs# snakemake -s Annotate_NLR --cores 1 --wait-for-files Building DAG of jobs... Using shell: /usr/bin/bash Provided cores: 1 (use --cores to define parallelism) Rules claiming more threads will be scaled down. Job stats: job count min threads max threads


all 1 1 1 total 1 1 1

Select jobs to execute...

[Tue Apr 30 06:53:19 2024] localrule all: jobid: 0 reason: Rules with neither input nor output files are always executed. resources: tmpdir=/tmp

[Tue Apr 30 06:53:19 2024] Finished job 0. 1 of 1 steps (100%) done Complete log: .snakemake/log/2024-04-30T065319.512074.snakemake.log

Is there any way to check or solve this problem?

Should I change my .config file? For example change "/home/NLR-Annotator" to "/home/FindPlantNLRs/NLR-Annotator"

In Step 2: Get reference database: Where the location of this file should be?

ardy20 commented 5 months ago

Hi I found the solutions as follows:

First: the dockerfile should be edited with nano or other text editors: Add word .fasta to the end line including journal.pbio.3001124.s013 then it becomes: journal.pbio.3001124.s013.fasta

This should be done before docker run.

Second: the input file name should be simple such as Arabidposis.fa.

Third: The input file suffix 9extension) should be .fa and NOT .fasta