Skip to main content

V2 SampleSheet Maker

Build and Deploy PyPI version

Generate an Illumina SampleSheet CSV from JSON.

Supported Sections

Sections currently supported:

  • Header
  • Reads
  • BCLConvert_Settings
  • BCLConvert_Data

Installation

Installation from pypi

pip install v2-samplesheet-maker

Alternatively one may use the docker container ghcr.io/umccr/v2-samplesheet-maker:latest

Usage

Usage:
v2-samplesheet-maker <input-json> <output-csv>

Use - for input-json parameter to parse json from stdin,
Use - for output-json parameter to parse output samplesheet csv to stdout.

Examples

See examples/ for more info

Input JSON

Click to expand!
{
  "header": {
    "file_format_version": 2,
    "run_name": "my-illumina-sequencing-run",
    "run_description": "A test run",
    "instrument_platform": "NovaSeq 6000",
    "instrument_type": "NovaSeq"
  },
  "reads": {
    "read_1_cycles": 151,
    "read_2_cycles": 151,
    "index_1_cycles": 10,
    "index_2_cycles": 10
  },
  "bclconvert_settings": {
    "adapter_behavior": "trim",
    "adapter_read_1": null,
    "adapter_read_2": null,
    "adapter_stringency": null,
    "barcode_mismatches_index_1": 1,
    "barcode_mismatches_index_2": 1,
    "minimum_trimmed_read_length": null,
    "minimum_adapter_overlap": 2,
    "mask_short_reads": null,
    "override_cycles": "Y151;Y10;Y8N2;Y151",
    "trim_umi": null,
    "create_fastq_for_index_reads": false,
    "no_lane_splitting": false,
    "fastq_compression_format": "gzip",
    "find_adapters_with_indels": null,
    "independent_index_collision_check": null
  },
  "bclconvert_data": [
    {
      "sample_id": "MyFirstSample",
      "lane": 1,
      "index": "AAAAAAAAAA",
      "index2": "CCCCCCCC",
      "sample_project": "SampleProject",
      "sample_name": null
    },
    {
      "sample_id": "MySecondSample",
      "lane": 1,
      "index": "GGGGGGGGGG",
      "index2": "TTTTTTTT",
      "sample_project": "SampleProject",
      "sample_name": null
    }
  ]
}

Output CSV

Click to expand!
[Header]
FileFormatVersion,2
RunName,my-illumina-sequencing-run
RunDescription,A test run
InstrumentPlatform,NovaSeq 6000
InstrumentType,NovaSeq

[Reads]
Read1Cycles,151
Read2Cycles,151
Index1Cycles,10
Index2Cycles,10

[BCLConvert_Settings]
AdapterBehavior,trim
BarcodeMismatchesIndex1,1
BarcodeMismatchesIndex2,1
MinimumAdapterOverlap,2
OverrideCycles,Y151;Y10;Y8N2;Y151
CreateFastqForIndexReads,False
NoLaneSplitting,False
FastqCompressionFormat,gzip

[BCLConvert_Data]
Lane,Sample_ID,index,index2,Sample_Project
1,MyFirstSample,AAAAAAAAAA,CCCCCCCC,SampleProject
1,MySecondSample,GGGGGGGGGG,TTTTTTTT,SampleProject

Testing your outputs

The v2-samplesheet-maker will validate that your parameters are the correct type, the correct name AND within the appropriate range. It will NOT however determine if your settings are appropriate or compatible with a BCLConvert run, i.e it will NOT ensure that your indexes have an appropriate hamming distance.

If you wish to validate your output samplesheet with BCLConvert, you can use the following script -

scripts/build-samplesheet-and-validate-with-bcl-convert.sh <input-json> [docker-image]. This will convert the input json to csv and then run the docker container bclconvert against your samplesheet.

You will need both jq and docker installed for this to work.

Contributing

Is there a missing section you'd like to see?

You can generate your own sections by

  1. Forking this repository.
  2. Adding the section pydantic model to the section models module
  3. Extending the SampleSheel pydantic model in the samplesheet models module
  4. Generating a class for your section in the section class module
  5. Extending the SampleSheet class to write out your section in the samplesheet class module
  6. Add a test for your section in the test_sections module
  7. Generating a PR back to this repository! ( Please squash your commits :) )

Release Cycles

We try and update this repository for every new Dragen Release (which coincides with a BCLConvert release) and tag accordingly.

Metadata

Release files for v2-samplesheet-maker 4.2.4.post20231208143331

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for v2-samplesheet-maker 4.2.4.post20231208143331
File Size Uploaded Provenance Actions
v2_samplesheet_maker-4.2.4.post20231208143331.tar.gz 17.4 kB Without provenance Details for v2_samplesheet_maker-4.2.4.post20231208143331.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for v2-samplesheet-maker 4.2.4.post20231208143331
File Interpreter ABI Platform Actions
v2_samplesheet_maker-4.2.4.post20231208143331-py3-none-any.whl Python 3 none any Details for v2_samplesheet_maker-4.2.4.post20231208143331-py3-none-any.whl

Total release size: 39.2 kB

Release files / v2_samplesheet_maker-4.2.4.post20231208143331.tar.gz

Download URL v2_samplesheet_maker-4.2.4.post20231208143331.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
644dbbecb6f039c62c73bb44b32ec19c0fe0642a3b6ae33b22c3a1d3356a64b7
BLAKE2b-256 checksum
How to use checksums
51a8b77348b9cfecf16894cbbf862d14f9bb5005df6308711a6a7a4d7749c3b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / v2_samplesheet_maker-4.2.4.post20231208143331-py3-none-any.whl

Download URL v2_samplesheet_maker-4.2.4.post20231208143331-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ef47db18a873802c7f6553fedd835f93967668220e80c0553c364a54471cfd6
BLAKE2b-256 checksum
How to use checksums
36c8d06a1f883d28075868b357d034730c7145579a7dbe684741399efd71747d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Security for v2-samplesheet-maker 4.2.4.post20231208143331

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page