Open wasade opened 1 year ago
For additional context, I tried it using named pipes as well (but using the <(...)
syntax), and I had the same results (fastp runs, but the output is empty):
fastp -i <(zcat R1.trimmed.fastq.gz | head -n 400) -I <(zcat R2.trimmed.fastq.gz | head -n 400) --html /dev/null --json /dev/null --stdout
However, when I create temporary files on disk instead of using named pipes, fastp works correctly, and I get the expected (non-empty) output:
zcat R1.trimmed.fastq.gz | head -n 400 > R1_sub.fq
zcat R2.trimmed.fastq.gz | head -n 400 > R2_sub.fq
fastp -i R1_sub.fq -I R2_sub.fq --html /dev/null --json /dev/null --stdout
So I agree with @wasade that perhaps fastp is somehow breaking when used with named pipes rather than actual files on disk?
I'm attempting to use named pipes with
fastp
but have been so far unsuccessful. The specific usecase is I would like to perform some operations on R1 and R2 data, prior to execution offastp
, and avoid going to disk in between.The example below is minimal. From the
strace
output, it appears thatfastp
is successful reading at least the first read fromr1
andr2
. However, the program then halts. Onctrl-c
, thezcat
processes have terminated suggesting the pipes have been consumed.It may be that
fastp
is not detecting EOF in this case as expected