razmia.sabahat
07/13/2026, 3:48 PMnf-test.
CIRI2 strictly requires a SAM file generated by BWA-MEM using the -T 19 flag. Since the nf-core/test-datasets repo doesn't host raw, uncompressed SAM files for Homo sapiens, I'm weighing my options according to nf-core guidelines:
1. Chain modules in `setup`: If I run BWA_MEM in the setup block, I will also need to chain BWA_INDEX before it since pre-computed BWA index directories aren't available for the human test genome. This feels quite heavy for a single module unit test.
2. Local asset: Should I just include a tiny, heavily-truncated mock SAM file directly inside the module's tests/assets/ directory?
Has anyone encountered a similar tool dependency issue during testing? What is the recommended or preferred approach by maintainers in this scenario?
Any guidance would be highly appreciated. Thanks in advance!Simon Pearce
07/13/2026, 3:49 PMSimon Pearce
07/13/2026, 3:53 PMSimon Pearce
07/13/2026, 3:53 PMrazmia.sabahat
07/13/2026, 3:53 PMtest-datasets? I couldn't find a bwa/ directory under homo_sapiens/genome/.razmia.sabahat
07/13/2026, 4:06 PMdelete_me folder in the README for temporary or niche datasets.
Since uncompressed SAM files and tool-specific BWA indexes are quite specific to CIRI2 module, would it be safest/preferred for me to upload these to the delete_me folder, or should I place them directly into the standard genomics/homo_sapiens/ directory structure? Let me know what works best!Simon Pearce
07/13/2026, 4:44 PMSimon Pearce
07/13/2026, 4:44 PMdelete_me, it is a terrible placeSimon Pearce
07/13/2026, 4:45 PMrazmia.sabahat
07/13/2026, 4:46 PMSimon Pearce
07/13/2026, 4:48 PM-T INT Don’t output alignment with score lower than INT. This option only affects output. [30]
razmia.sabahat
07/13/2026, 4:54 PMtest-datasets repo? Would that be acceptable by nf-core?Simon Pearce
07/13/2026, 4:57 PMSimon Pearce
07/13/2026, 4:57 PMSimon Pearce
07/13/2026, 5:08 PMSimon Pearce
07/13/2026, 5:10 PMSimon Pearce
07/13/2026, 5:10 PMSimon Pearce
07/13/2026, 5:10 PMrazmia.sabahat
07/13/2026, 5:41 PMrazmia.sabahat
07/13/2026, 8:17 PMtest-datasets are heavily downsampled and yield 0 circular RNAs, I was wondering if I could use the official CIRI2 sample dataset instead?
It includes a tiny, pre-aligned test.sam and a matching chr1.fa that are guaranteed to output circular RNAs, which would allow me to write solid nf-test assertions against non-empty files.
If that works, would it be okay if I submit a PR to add both the .sam and .fa files to the test-datasets repo simultaneously?Matthieu Muffato
07/13/2026, 8:22 PMSimon Pearce
07/14/2026, 5:40 AMSimon Pearce
07/14/2026, 5:41 AMSimon Pearce
07/14/2026, 5:41 AMSimon Pearce
07/14/2026, 5:52 AMrazmia.sabahat
07/14/2026, 1:31 PMSimon Pearce
07/14/2026, 1:36 PMrazmia.sabahat
07/14/2026, 1:53 PMSimon Pearce
07/14/2026, 1:59 PMrazmia.sabahat
07/14/2026, 2:16 PMrazmia.sabahat
07/15/2026, 12:35 PMSimon Pearce
07/15/2026, 12:59 PMrazmia.sabahat
07/15/2026, 1:26 PMrazmia.sabahat
07/29/2026, 2:47 PMsamtools view -h -b), CIRI2 ran without throwing a terminal error, but returned 0 circular RNAs.
CIRI2.pl is a Perl script designed to parse plain text CIGAR strings, SAM headers, and BWA-MEM alignment tags. When given a binary BAM file, the Perl script reads compressed binary stream data instead of text. It doesn't crash, but it fails to recognize any reads or alignment tags, silently yielding zero candidate circular RNAs.
If we force the module to take a BAM file directly to satisfy channel format conventions, the module will technically run without error, but anyone running this module on real-world sample data will receive zero predictions, even when circular RNAs are present.
Is the primary goal of an nf-core module just to execute cleanly without crashing, or is it to ensure the underlying tool accurately detects real biological signals for users?
Looking forward to your review. Thanks!Simon Pearce
07/29/2026, 2:51 PMSimon Pearce
07/29/2026, 2:51 PMMatthieu Muffato
07/29/2026, 3:01 PMsamtools view -h into CIRI2 if the input is BAM/CRAM ? Then module users wouldn’t have to convert their file to SAM before running the module. It’s rare for tools to require SAM. Forcing a conversion would increase disk usage quite notablyrazmia.sabahat
07/29/2026, 3:13 PMsamtools inside a single nf-core module, which is why I didn't implement that in the first place. It gives us the best of both worlds by keeping the channel inputs flexible while avoiding huge SAM files on disk. I'll update the container to include samtools and add the streaming logic into the script block. Thanks!razmia.sabahat
07/29/2026, 6:13 PM<(...)) to avoid materializing a SAM file but it fails, because CIRI2.pl does two full passes over the input (see its own log: 'First scanning' / 'Second scanning'), which requires a seekable file, not a pipe. I've kept the conversion but added a cleanup step (rm after CIRI2 runs) so the intermediate SAM doesn't persist in the final work/output directory, minimizing the disk footprint while still working with the tool's actual requirements.Matthieu Muffato
07/29/2026, 7:21 PM