Reimplement handling of sequencing applications (platform/library combinations) - #1112
Merged
Merged
Conversation
Creates new module "bcl2fastq.apps" and moves (and refactors) the Bcl to Fastq conversion command generators from "applications". Also updates "bcl2fastq.pipeline" to use the relocated versions of the functions.
Renames the 'applications' module to 'apps', and updates imports elsewhere to accommodate the new name.
Adds a new module 'applications', which collects information about sequencing applications (combinations of platform and library types) and associated Fastq generation and QC protocols. The module also includes functions for looking up the informaton about a specific platform.
…plications' module. Updates the 'determine_qc_protocol_from_metadata' function to remove hard-coded QC protocol determination, and look-up protocol from the matching application data instead.
Updates the 'setup_analysis_dirs' command to remove hard-coded logic for determining whether to create template files or subdirectories, and instead look up this information from the matching application data.
Adds a new function 'fetch_application_data' which returns subsets of application definitions matching specified tags.
…n protocols. Updates the description text for some of the Fastq generation protocols for 10x Genomics data, to make automatically generated documentation more concise.
…ata. Adds a placeholder Fastq generation protocol for 10x single cell multiome data where ATAC and GEX have been pooled in the same run; the placeholder enables the unpooled Fastq generation protocol to be added to automatically generated documentation.
Updates the Sphinx 'conf.py' file and associated RST files to put the subdir for automatically generated tables (e.g. Fastq generation and QC protocols) under the top-level documentation dir.
…ables. Updates Sphinx 'conf.py' to auto-generate tables of allowed platform/library combinations that are included in the single cell and spatial documentation; also auto-generate the tables of Fastq generation protocols for 10x single cell and spatial.
… 10x index sequences.
pjbriggs
force-pushed
the
reimplement-platforms-and-libraries
branch
from
November 19, 2025 11:55
269dc29 to
e1d9a0a
Compare
Drops the (unimplemented) '10x_Visium_GEX_75bp_insert' QC protocol from the application definition for 10x Visium (CytAssist) HD 3' GEX, and specifies '10x_Visium_GEX' instead. This should be sufficient if the reads are trimmed to the correct lengths at the Fastq generation stage.
…ocols. Update the read lengths reported for each protocol in the 'make_fastqs' documentation, to include the I1 and I2 read lengths (if defined).
…s' doc. Update the title of the 'Reads' column in the table of Fastq generation protocols.
This was referenced Dec 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Major update of how sequencing applications (combinations of platforms and library types, e.g.
10x Chromium 3'andscRNA-seq) are handled.Specifically, remove the hard-coded logic used in different places to determine appropriate setup actions, QC protocols etc for a given sequencing application, and instead put all the information into a single place from where those things can be looked up wherever needed.
This aims to generalise things like QC protocol determination and analysis project directory setup, to make them more robust and easier to maintain, since adding new sequencing applications should not require modifying the relevant functions. Instead information about new applications should only need to be added in one place in the code (the new
applicationsmodule).The changes include:
applicationsmodule, with information about sequencing applications held in a list of dictionaries plus supporting functions to enable look up of information for specific platform/library combinations (nb this replaces the oldapplicationsmodule, which has been refactored into a newappsmodule);determine_qc_protocol_from_metadatafunction in theqc/protocolsmodule) to look up QC protocols from the application data (nb this has resulted in some slight changes to which protocols are returned for legacy single cell data);setup_analysis_dirscommand (implemented in thecommands\setup_analysis_dirs_cmdmodule) to look up which template file (e.g.10x_multi_config.csv.templatefiles) and subdirectory creation actions are required, from the application data.As part of this PR updated nomenclature for various 10x single cell applications has also been implemented (closes #1041), whilst maintaining backwards compatibility with the existing nomenclature.
The PR also obsoletes the proposed changes in #1062.