mckennalab / Circuitseq

Nanopore Plasmid Sequencing
Other
30 stars 1 forks source link

java error "No signature of method: java.lang.Boolean.getFileSystem() is applicable for argument types: () values: []" #18

Closed LeoPioger closed 1 year ago

LeoPioger commented 1 year ago

Hello, I installed Circuitseq following your indications and can't make it run even on your example data.

It raises a java error apparently "No signature of method: java.lang.Boolean.getFileSystem() is applicable for argument types: () values: []"), that makes it to write to stdout as last line "Manifest's pipeline version: null". It stops. A work folder is created where the script was launched from, but contains only empty subfolders.

Which java version are you using?

Nextflow is installed in its own conda environment, and uses this java version

(openjdk 17.0.3-internal 2022-04-19
OpenJDK Runtime Environment (build 17.0.3-internal+0-adhoc..src)
OpenJDK 64-Bit Server VM (build 17.0.3-internal+0-adhoc..src, mixed mode, sharing)(

Here is my installation script:

conda create -n nextflow -c bioconda nextflow -y
conda create -n singularity -c conda-forge singularity -y
conda create -n java_openjdk_v17 -c conda-forge openjdk -y

~/.conda/envs/singularity/bin/singularity pull plasmidassembly.sif docker://aaronmck/plasmidassembly:1_0_1

git clone https://github.com/mckennalab/Circuitseq/

Enclosed are my example_run.sh, nextflow.log and Circuitseq.nf (made some slight modifications at the beginning in the pathes because of conda). Circuitseq_issue.zip

Everything is running on a jupyter server hosted on S3 architecture. IPython : 8.4.0 ipykernel : 6.15.1 ipywidgets : 7.7.1 jupyter_client : 7.3.4 jupyter_core : 4.11.1 jupyter_server : 1.18.1 jupyterlab : 3.4.5 nbclient : 0.6.6 nbconvert : 6.5.2 nbformat : 5.4.0 notebook : 6.4.12 qtconsole : not installed traitlets : 5.3.0

The stdout changes from time to time, but doesn't seem to be that reproducible:

N E X T F L O W  ~  version 21.10.6
Launching /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/CircuitSeq.nf` [peaceful_goldberg] - revision: 3a1dff64b4
No signature of method: java.lang.Boolean.getFileSystem() is applicable for argument types: () values: []

Methylation calling: false
Quality control output: true
Project : /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines
Git info: null - null [null]
Cmd line: nextflow run /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/CircuitSeq.nf --GPU ON -c /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/nextflow.config -with-singularity /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/plasmidassembly.sif --samplesheet /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/example_data/example_samplesheet.tsv --use_existing_basecalls true --fast5  --basecalling_dir /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/example_data/fastq/pass/ --base_calling_summary_file /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/example_data/fastq/sequencing_summary.txt --barcodes /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/barcodes/v2/ --barcode_kit MY-CUSTOM-BARCODES --guppy_model dna_r9.4.1_450bps_sup.cfg --medaka_model r941_min_sup_g507 --gpu_slot 'cuda:0' --barcode_min_score 65 --quality_control_processes true -resume
Manifest's pipeline version: null

I hope you'll be of any help, but anyway thanks for the pipeline ! Appreciate the work done :) Have a good day, Leo

femiliani commented 1 year ago

Hey @Yghdrazill, First, i've never tried running nextflow using conda, not sure how the interactions between that, java, and singularity play out.

That being said, i did notice one thing that might be causing this. When you run did your run script have --fast5 ""? can you try changing it to --fast5 "none"? totally my fault, i updated the scripts but not the readme. Will go do that now.

Let me know if that help!

LeoPioger commented 1 year ago

Hello @femiliani,

Thanks for your quick input. Indeed the fast5 "" was the problem. I've been able to run it (with error and no results) by modifying the fast5 "". Then I installed singularity within the same conda environment as nextflow (else it was throwing me an error). It produced the following output on the example data :

N E X T F L O W  ~  version 21.10.6
Launching `/home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/CircuitSeq.nf` [small_woese] - revision: 7c7ea8d7df
Methylation calling: false
Quality control output: true
Project : /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines
Git info: null - null [null]
Cmd line: nextflow run /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/CircuitSeq.nf --GPU OFF -c /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/Circuitseq/pipelines/nextflow.config -with-singularity /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/plasmidassembly.sif --samplesheet /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/example_data/example_samplesheet.tsv --use_existing_basecalls true --fast5 none --basecalling_dir /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/example_data/fastq/pass/ --base_calling_summary_file /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/example_data/fastq/sequencing_summary.txt --barcodes /plasmidseq/barcodes/v2/ --barcode_kit MY-CUSTOM-BARCODES --guppy_model dna_r9.4.1_450bps_sup.cfg --medaka_model r941_min_sup_g507 --gpu_slot 'cuda:0' --barcode_min_score 65 --quality_control_processes true -resume
Manifest's pipeline version: null
executor >  local (1)
[-        ] process > GuppyBaseCalling            -
[-        ] process > GuppyDemultiplex            -
[9e/d02184] process > GuppyDemultiplexExisting    [  0%] 0 of 1
[-        ] process > pycoQC                      -
[-        ] process > AlignReadsPre               -
[-        ] process > Porechop                    -
[-        ] process > AlignReadsPostLengthFilter  -
[-        ] process > FilterReads                 -
[-        ] process > CanuCorrect                 -
[-        ] process > Flye                        -
[-        ] process > Miniasm                     -
[-        ] process > ConvertGraph                -
[-        ] process > AssessAssemblyApproach      -
[-        ] process > MedakaConsensus             -
[-        ] process > LCPCorrectionFlye           -
[-        ] process > Rotate                      -
[-        ] process > MedakaConsensusLCP          -
[-        ] process > MedakaPolish                -
[-        ] process > MedakaPolish2               -
[-        ] process > Fast5Subset                 -
[-        ] process > OGMethylationCalling        -
[-        ] process > ReferenceCopy               -
[-        ] process > AlignReads                  -
[-        ] process > AlignReadsNanofilter        -
[-        ] process > AssessContamination         -
[-        ] process > ContaminationAggregation    [100%] 1 of 1, cached: 1 ✔
[-        ] process > PlasmidComparison           -
[d8/798850] process > PlasmidComparisonCollection [100%] 1 of 1, cached: 1 ✔
[9e/d02184] NOTE: Process `GuppyDemultiplexExisting` terminated with an error exit status (127) -- Error is ignored
Completed at: 23-Jan-2023 13:27:30
Duration    : 2m 21s
CPU hours   : 0.2 (76.9% cached, 23.1% failed)
Succeeded   : 0
Cached      : 2
Ignored     : 1
Failed      : 1

Sadly I ran it seems into the same error as in #12 (and #17). Following your exchanges, I tried a few things but to no avail until now:

What could I provide more to help troubleshoot this issue? Sorry to bring problems and questions rather than solutions!

BTW - You might want to change not only the run.sh and example_run.sh files but also the different Readme for this "" instead of "none" ;)

Thanks, Léo

LeoPioger commented 1 year ago

Hello @femiliani , @aaronmck : I tried yesterday evening to install on my personal computer on Windows 10 with WSL2 and Ubuntu, directly without conda. I got it running and producing exactly the same behaviour as on my work-jupyter server, even if:

You do not reproduce this error when cloning your own repo, and using ~/.conda/envs/nextflow/bin/singularity pull plasmidassembly.sif docker://aaronmck/plasmidassembly:1_0_1 ?

Léo

aaronmck commented 1 year ago

Hi @LeoPioger

I just checked both scripts in the examples folder (from fastqs and from fast5s). Both run to completion and create the correct output. Here's the output for the fastq version:

executor >  local (23)
[-        ] process > GuppyBaseCalling               -
[-        ] process > GuppyDemultiplex               -
[bf/1d05f3] process > GuppyDemultiplexExisting       [100%] 1 of 1 ✔
[-        ] process > pycoQC                         -
[36/4dc94d] process > AlignReadsPre (1)              [100%] 1 of 1 ✔
[89/1afb20] process > Porechop (1)                   [100%] 1 of 1 ✔
[b8/60919d] process > AlignReadsPostLengthFilter (1) [100%] 1 of 1 ✔
[0e/61d46f] process > FilterReads (1)                [100%] 1 of 1 ✔
[70/058efe] process > CanuCorrect (1)                [100%] 1 of 1 ✔
[e4/32e767] process > Flye (1)                       [100%] 1 of 1 ✔
[f9/a0dbde] process > Miniasm (1)                    [100%] 1 of 1 ✔
[9b/02d574] process > ConvertGraph (1)               [100%] 1 of 1 ✔
[e8/37b176] process > AssessAssemblyApproach (1)     [100%] 1 of 1 ✔
[74/53c162] process > MedakaConsensus (1)            [100%] 1 of 1 ✔
[c2/977973] process > LCPCorrectionFlye (1)          [100%] 1 of 1 ✔
[20/6ae3cd] process > Rotate (1)                     [100%] 1 of 1 ✔
[1e/ff3461] process > MedakaConsensusLCP (1)         [100%] 1 of 1 ✔
[c9/58df36] process > MedakaPolish (1)               [100%] 1 of 1 ✔
[a9/522d31] process > MedakaPolish2 (1)              [100%] 1 of 1 ✔
[-        ] process > Fast5Subset                    -
[-        ] process > OGMethylationCalling           -
[de/9c01ba] process > ReferenceCopy (1)              [100%] 1 of 1 ✔
[db/30088f] process > AlignReads (1)                 [100%] 1 of 1 ✔
[6c/585dbd] process > AlignReadsNanofilter (1)       [100%] 1 of 1 ✔
[ba/027148] process > AssessContamination (1)        [100%] 1 of 1 ✔
[f0/429bbb] process > ContaminationAggregation       [100%] 1 of 1 ✔
[6b/bafca4] process > PlasmidComparison (1)          [100%] 1 of 1 ✔
[2d/80535e] process > PlasmidComparisonCollection    [100%] 1 of 1 ✔
Completed at: 27-Jan-2023 12:20:10
Duration    : 4m 20s
CPU hours   : 0.1
Succeeded   : 23

This was from a fresh pull of the singularity container (singularity pull plasmidassembly.sif docker://aaronmck/plasmidassembly:1_0_1) and a fresh download of Nextflow.

There are a bunch of clear warnings in your setup that might point to an issue. For instance:

INFO:    Could not find any nv files on this host!
WARNING: Could not find any nv libraries on this host!

and in the nextflow log:

Jan-23 13:42:46.641 [Task monitor] DEBUG n.processor.TaskPollingMonitor - Task completed > TaskHandler[id: 2; name: GuppyDemultiplexExisting; status: COMPLETED; exit: 127; error: -; workDir: /home/jupyter-l.pioger/P1334_COMT_Q4_Circuitseq/work/23/>...

Both point to you not having the GPU setup or accessible on your machine. A straightforward check is that the nvidia-smi command should dump a bunch of information about your host server's or computer's NVIDIA GPU.

LeoPioger commented 1 year ago

Hello, a brief follow-up on the problems I had: Indeed we do not have a GPU on this Jupyter server. I managed to modify your Circuitseq.nf file to have it running on our server without GPU, after downloading the ONT versions of guppy for CPU-only (amongst other things). It took me several days, but I managed to make it running on a full 96 plate.

Thank you for your work!

Have a good day, Leo