Hey, nf-core folks :wave: !! I have been working ...
# shameless-promo
c
Hey, nf-core folks πŸ‘‹ !! I have been working on samplesheet-parser β€” a format-agnostic CLI/Python library for Illumina SampleSheet.csv files. Handles both IEM V1 (bcl2fastq) and BCLConvert V2 with auto-detection, plus bidirectional conversion, validation, diffing, and index Hamming-distance checks. Just landed the first two
nf-core
modules from it:
samplesheetparser/info
and
samplesheetparser/validate
(#11604), with
diff
up for review (#11711) and
convert
,
filter
,
split
and
merge
queued behind it. β€’ πŸ“¦ `bioconda`: samplesheet-parser=1.2.0 β€’ G https://github.com/chaitanyakasaraneni/samplesheet-parser β€’ πŸ“š https://illumina-samplesheet.readthedocs.io β€’ πŸ“œ DOI: https://doi.org/10.5281/zenodo.18989694 Feedback/bug reports/"we use this in pipeline X" stories all welcome πŸ™
🀩 1
🌟 1
f
Hi, does the conversion from bcl2fastq to bclconvert samplesheets handle also the different treatment of index orientation of index 2? We realized when we started to look into switching, that bclconvert detects in which direction an index is read on the sequencer and adjusts the index sequence accordingly. For example in NovaSeqXPlus, index 2 is read in reverse. In essence, for bcl2fastq we need to give the indexes for NovaSeqXPlus in index1 fw - index 2 rev orientation, while for bclconvert we need to give the indexes for the same machine in index1 fw, index 2 fw. On the other hand, for MiSeq machines it is index1 fw - index 2 fw independent of the demultiplexer.
c
Hey @Franziska Bonath! Honest answer:
samplesheet-parser 1.2.0
does not handle this yet. The converter currently only performs column renames:
index ↔ Index
, `index2 ↔ Index2`with the sequences passed verbatim. So if you converted a NovaSeq X Plus V1 sheet right now, you'd get a V2 sheet that BCLConvert would silently demultiplex incorrectly. That's a real bug, not a missing nice-to-have. I'll open a tracking issue today and aim for it in next release. The likely shape: β€’ An
--instrument
flag on samplesheet convert (or auto-detect from V1
[Header]
Instrument Type when present) β€’ Workflow A/B table for the common instruments (and a --workflow {a,b} override for anything novel) β€’ A validation warning from the samplesheet validate if a V1 sheet declares a workflow-B instrument, and index 2 looks suspiciously like its own RC palindrome territory If you have real workflow-B sheets you'd be willing to share (anonymized indexes are fine), I'd love to use them as test fixtures. DM me, and I'll add you to the issue.
f
I wish it was this simple πŸ˜… In our rework of the demux, we also decided to use some of the new features that bclconvert offers. Specifically that the basemask can be provided for each sample individually instead of for the entire Samplesheet. So the run command for bclconvert will be simpler, but the Samplesheets more complex. I don’t want to introduce this kind of complexity into your sample sheet parser
πŸ‘ 1
c
Honestly, that'd be even more useful for the tool β€” those are exactly the edge cases I want it tested against. No pressure, but if you can share an anonymized snippet (a few rows with your per-sample basemask layout), it'd be a great real-world fixture to validate against. Either way, really appreciate you flagging the i5 issue πŸ™