nf-core / chipseq

ChIP-seq peak-calling, QC and differential analysis pipeline.

Home Page:https://nf-co.re/chipseq

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error fromIndex = -1

aubinthomas opened this issue · comments

Description of the bug

Hello,

I just ran one of my test samples that works on v1.2.2, but not on v2 of the pipeline.

The pipeline works perfectly but after MACS step it throws an error :

fromIndex = -1

 -- Check script 'workflow/./workflows/chipseq.nf' at line: 555 or see '.nextflow.log' file for more details

the .nextflow.log contains this error:

Oct-05 17:11:29.570 [Actor Thread 5] ERROR nextflow.extension.OperatorEx - @unknown
java.lang.RuntimeException: java.nio.channels.ClosedByInterruptException
        at nextflow.sort.BigSort.sort(BigSort.java:255)
        at nextflow.file.SortFileCollector.makeHash(SortFileCollector.groovy:248)
        at nextflow.file.FileCollector.saveTo(FileCollector.groovy:239)
        at nextflow.file.FileCollector$saveTo.call(Unknown Source)
        at nextflow.extension.CollectFileOp.emitItems(CollectFileOp.groovy:191)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethodClosure(MetaClassImpl.java:1048)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1142)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at groovy.lang.Closure.call(Closure.java:428)
        at groovy.lang.Closure$call.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:53)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at nextflow.extension.DataflowHelper$3.afterStop(DataflowHelper.groovy:255)
        at groovyx.gpars.dataflow.operator.DataflowProcessor.fireAfterStop(DataflowProcessor.java:324)
        at groovyx.gpars.dataflow.operator.DataflowProcessorActor.afterStop(DataflowProcessorActor.java:59)
        at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)

Thanks

Command used and terminal output

$ ./nextflow-21.10.4-all run workflow/main.nf --input design.csv --genome GRCh38 -profile singularity,mesolr --single_end --outdir 'result' --read_length 75

Relevant files

design.csv
nextflow.log

System information

nextflow-21.10.4-all
HPC
slurm
Singularity
nf-core/chipseq-2.0.0
java version "1.8.0_112", Java(TM) SE Runtime Environment (build 1.8.0_112-b15), Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

Thanks, that 's it!

Edit: It looks like sample names must include replicate numbers even if there are no replicates and they must follow a specific format: an underscore followed by at least a number or a letter and number. For example, sample1_1 or sample1_R1 or sample1_REP1 but not sample1.

Original question: I am having a similar error but I cannot access the referenced slack thread. Can you share what the issue and solution are here if possible?

Thanks in advance

Essentially, you will need to rename your samples to add the replicate using a _ followed by a number _1 or _REP1 or _R1 e.g.:

sample,fastq_1,fastq_2,antibody,control
sample_1_R1,file1,file2,H3K27ac,input-15min-12Aug_1
sample_2_R1,file1,file2,H3K27ac,input-1h-12Aug_1
sample_3_R1,file1,file2,,

I will open an issue since this is probably not the clearest way of doing it for improving this in the next iteration of the pipeline