Skip to content
zhou-labPublic

About

Infinium DNA-methylation analysis

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

SeSAMe2

build conda license coverage docs language arrays betas vs R

Infinium DNA-methylation analysis as a single C binary
IDAT → betas → QC, differential methylation, copy number, SNP genotyping. No R, no Bioconductor, no network.

📖 Documentation · 🔬 Fidelity & numerics · 🔍 Where we differ from R

SeSAMe2 is the second implementation of sesame / openSesame, validated against the R package as a permanent oracle.

SeSAMe2 (2.x, this command line) and sesame (1.x, the R/Bioconductor package) are parallel, not sequential — one method, two implementations. R: BiocManager::install("sesame"); shell: conda install -c zhou-lab sesame.

Install

conda install -c zhou-lab -c conda-forge sesame yame

Or from source — a C compiler, make, zlib, libcurl, and the bundled YAME submodule:

git clone --recurse-submodules https://github.com/zhou-lab/sesame
cd sesame && make

The binary is sesame. Keep yame on PATH too: sesame has no network code, so yame fetch is how the annotation it reads gets there, into a store the whole tool suite shares. sesame version names the yame release this build expects and the store it reads.

Use

yame fetch -y EPICv2                        # once, per platform
sesame preprocess --out out/ idats/         # -> beta.cg intensity.cg pval.cg qc.tsv

sesame help lists every command, and sesame <command> -h is the authority on its flags. Worked examples for each — preprocessing, DML, CNV, SNP genotyping, region views, custom arrays, and reading the outputs back — are on the documentation site.

Fidelity

R is the permanent oracle. Raw betas are bit-identical; every prep step is gated against R to a tolerance recorded in NUMERICS.md, and the handful of places where the two genuinely answer different questions — all of them annotation-lineage differences, none a tolerance — are written up in DIVERGENCES.md.

Development

make                 # build ./sesame
make test            # the golden ladder vs the R oracle
make test-docs       # run every documented example against this binary
make test-docs-check # versions/subcommands/flags vs the binary (no oracle needed)
scripts/coverage.sh  # gcov line coverage
make asan            # rebuild under ASan + UBSan

make test needs Rscript with the sesame R package and test IDATs at $SESAME_TEST_IDATS; CI runs neither, so the numeric gates are the release manager's job. Layout: cli/ the command, src/ the library, include/sesame.h the public API, tests/ shell drivers with R oracles, docs/ the Pages site, YAME/ the submodule. Read NUMERICS.md before changing a prep step. Releases follow 20210109_sesame_cli_RELEASE_SOP.md in the lab journal.

License

2-Clause BSD for academic and non-profit research use; for commercial use or transfer, inquire with Dr. Wanding Zhou at zhouw3@chop.edu. © 2026-present The Children's Hospital of Philadelphia — see LICENSE. The bundled YAME carries the same terms. The R package sesame is a separate program distributed through Bioconductor under AGPL-3.

About

Infinium DNA-methylation analysis

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages