Spaces:
Paused
Paused
| { | |
| "qc_version": "0.1.0", | |
| "spec_id": "tenx_3p_v3", | |
| "assay": "10x Chromium Single Cell 3' Gene Expression", | |
| "platform": "illumina", | |
| "profile": { | |
| "n_pairs": 40000, | |
| "r1_len": { | |
| "min": 28, | |
| "max": 28, | |
| "modal": 28 | |
| }, | |
| "r2_len": { | |
| "min": 91, | |
| "max": 91, | |
| "modal": 91 | |
| } | |
| }, | |
| "findings": [ | |
| { | |
| "check_id": "r1_length", | |
| "title": "R1 length matches barcode + UMI", | |
| "verdict": "pass", | |
| "value": 28.0, | |
| "unit": "bp", | |
| "threshold": "== 28", | |
| "affected_fraction": null, | |
| "severity": 0.0, | |
| "evidence": [ | |
| { | |
| "spec_ref": "read_structure.R1", | |
| "note": "R1 should be exactly 28 bp (16 bp cell barcode + 12 bp UMI)" | |
| } | |
| ], | |
| "detail": "R1 lengths span 28\u201328 bp" | |
| }, | |
| { | |
| "check_id": "whitelist_hit_rate", | |
| "title": "Cell barcodes on the 10x whitelist", | |
| "verdict": "pass", | |
| "value": 0.9489, | |
| "unit": "fraction", | |
| "threshold": ">= 0.85", | |
| "affected_fraction": null, | |
| "severity": 0.0, | |
| "evidence": [ | |
| { | |
| "spec_ref": "whitelists.cell_barcode_3M_feb2018", | |
| "note": "R1[0:16] should match the 3M-february-2018 gel-bead barcode whitelist" | |
| } | |
| ], | |
| "detail": "94.9% of cell barcodes are on the whitelist" | |
| }, | |
| { | |
| "check_id": "tso_at_r2_start", | |
| "title": "R2 reads beginning with the TSO (adapter-dimer / short insert)", | |
| "verdict": "fail", | |
| "value": 0.3258, | |
| "unit": "fraction", | |
| "threshold": "< 0.05", | |
| "affected_fraction": 0.3258, | |
| "severity": 0.6516, | |
| "evidence": [ | |
| { | |
| "spec_ref": "read_structure.R2.readthrough_chain[tso_5prime]", | |
| "note": "R2 should start with cDNA; a leading TSO is the hallmark of empty/short-insert products" | |
| } | |
| ], | |
| "detail": "32.6% of R2 start with the TSO" | |
| }, | |
| { | |
| "check_id": "r2_adapter_readthrough", | |
| "title": "R2 read-through into the Illumina adapter", | |
| "verdict": "warn", | |
| "value": 0.0545, | |
| "unit": "fraction", | |
| "threshold": "< 0.02", | |
| "affected_fraction": 0.0545, | |
| "severity": 0.109, | |
| "evidence": [ | |
| { | |
| "spec_ref": "oligos.oligo_r1_readinto_adapter", | |
| "note": "the AGATCGGAAGAGC adapter stem in R2 means the insert was shorter than the read length" | |
| } | |
| ], | |
| "detail": "5.5% of R2 contain the adapter stem AGATCGGAAGAGC" | |
| }, | |
| { | |
| "check_id": "r2_polyg_tail", | |
| "title": "R2 with a poly-G no-signal tail", | |
| "verdict": "fail", | |
| "value": 0.0983, | |
| "unit": "fraction", | |
| "threshold": "< 0.01", | |
| "affected_fraction": 0.098275, | |
| "severity": 0.2948, | |
| "evidence": [ | |
| { | |
| "spec_ref": "platform_params.dark_base", | |
| "note": "a poly-G 3' tail on two-color instruments is 'no signal' \u2014 typical of empty/short fragments" | |
| } | |
| ], | |
| "detail": "9.8% of R2 have a poly-G tail" | |
| } | |
| ], | |
| "plan": { | |
| "ranked": [ | |
| { | |
| "check_id": "tso_at_r2_start", | |
| "severity": "high", | |
| "why": "32.6% of R2 reads begin with the TSO versus a <5% threshold \u2014 the direct signature of empty/short-insert products where no cDNA was captured and the sequencer read straight through the template-switch oligo. Highest severity (0.65) and the strongest single indicator of a real prep failure." | |
| }, | |
| { | |
| "check_id": "r2_polyg_tail", | |
| "severity": "medium", | |
| "why": "9.8% of R2 carry a poly-G 'no-signal' tail against a <1% threshold (~10x over) \u2014 on this two-color Illumina platform poly-G means the fragment ended before the read did, i.e. empty/short inserts, corroborating the TSO finding." | |
| }, | |
| { | |
| "check_id": "r2_adapter_readthrough", | |
| "severity": "low", | |
| "why": "5.5% of R2 contain the AGATCGGAAGAGC adapter stem versus <2% \u2014 read-through into the Illumina adapter confirms inserts shorter than the 91 bp read, consistent with the same short-fragment population but at lower prevalence." | |
| }, | |
| { | |
| "check_id": "whitelist_hit_rate", | |
| "severity": "none", | |
| "why": "94.9% of cell barcodes match the 3M-february-2018 whitelist (>=85% threshold), so barcoding and demultiplexing are healthy \u2014 the defect is not on the R1/cell-identification side." | |
| }, | |
| { | |
| "check_id": "r1_length", | |
| "severity": "none", | |
| "why": "R1 is a uniform 28 bp (16 bp barcode + 12 bp UMI), exactly as the v3/v3.1 spec requires \u2014 read structure is correct." | |
| } | |
| ], | |
| "root_cause": "Adapter-dimer / short-insert contamination: a large fraction of the library consists of empty or very-short cDNA products (TSO-dominated fragments), most likely from low cDNA input or inadequate size-selection/bead cleanup that failed to remove short fragments during library prep.", | |
| "diagnosis": "The barcode side of the library is clean \u2014 R1 is the correct 28 bp and 94.9% of cell barcodes are on the whitelist \u2014 but the insert side is failing: 32.6% of R2 reads start with the TSO, with 9.8% showing poly-G no-signal tails and 5.5% reading through into the Illumina adapter, all pointing to the same population of empty/short-insert (adapter-dimer) products. This indicates insufficient cDNA insert reached the sequencer, typically from low input or a size-selection/cleanup step that did not remove short fragments. Repeat the SPRI-bead size selection to deplete the short products (and check cDNA input on the Bioanalyzer/TapeStation before resequencing); the useful, on-target read fraction here is substantially reduced.", | |
| "method": "llm" | |
| }, | |
| "overall": "fail", | |
| "eval": { | |
| "n": 40000, | |
| "predicted_affected": 13074, | |
| "true_affected": 11940, | |
| "precision": 0.9133, | |
| "recall": 1.0, | |
| "f1": 0.9547, | |
| "confusion": { | |
| "tp": 11940, | |
| "fp": 1134, | |
| "fn": 0, | |
| "tn": 26926 | |
| } | |
| } | |
| } | |