# CRISPAltRations AADACL3 scientific benchmark

This folder contains a real, public Cas9 amplicon experiment and its
independently analyzed editing oracle.

## Sources

- Raw paired-end reads: NCBI/ENA run `SRR13016837`, experiment
  `SRX9467649`, BioProject `PRJNA675792`.
- Guide and amplicon: Table S1 of Kurgan et al.,
  *CRISPAltRations: A validated cloud-based approach for interrogation of
  double-strand break repair mediated by CRISPR genome editing*,
  <https://doi.org/10.1016/j.omtm.2021.03.024>.
- Expected outcomes and collapsed allele table: Data S1 from the same CC BY
  paper.

`SOURCE.json` records the direct download URLs and SHA-256 hashes. The two
archived FASTQ streams are byte-for-byte copies of the public ENA files. Only
their filenames were changed from `_1`/`_2` to `_R1_001`/`_R2_001` so the
legacy paired-read matcher can identify them.

## Expected biology

The public report contains 5,078 quality-filtered, analyzed reads:

- 97.77% edited and 2.23% unedited
- 96.93% indels
- 30.03% in-frame and 69.97% frameshift
- 22.98% insertions and 74.99% deletions

The raw archive contains 5,846 read pairs. The difference is expected because
CRISPAltRations performs read joining and quality filtering before reporting
the 5,078 analyzed reads.

`Oracle/SAMPLE_collapsedIndelInfo.csv` contains 564 observed allele rows whose
`freqCount` values sum to exactly 5,078. It is the independent source of truth
for future scientific Cutting validation.

## Library Aligner preparation

From the repository root:

```text
library-aligner fastq prepare --folder <this-folder>
library-aligner fastq join --folder <this-folder>/FastQ
```

The prepared files contain exactly 5,846 reads each. The legacy join engine
produces exactly 5,846 joined records and reports a 98% join rate.

## Cutting fixtures

The byte-for-byte public read pair remains an independent scientific benchmark.
The preserved legacy Cutting heuristic tries to infer primers only from reads
that still contain the exact guide. Because this experiment has only 140 such
joined reads (2.4% of the raw pairs), the unchanged public data reports
`Had too small of common (primer) regions`.

`DerivedCutting10Percent` is the passing functional counterpart. It retains all
5,706 joined public records that do not contain the exact guide, removes the
140 original exact-guide records, and adds 634 records by cycling through 23
intact sequence/quality variants observed in the same run. The final fixture is
exactly 90% untouched public records and 10% intact-guide records. No nucleotide
sequence was invented.

The selected intact variants share stable 30-base ends, allowing the legacy
primer heuristic to infer usable front and rear anchors. Cutting then completes
and classifies intact, in-frame, and out-of-frame records. `DERIVATION.json`
pins the transformation, hashes, anchors, and expected legacy classifications.
This derived fixture tests software behavior; it must not be cited as the
published experiment's biological result.
