بنقرة واحدة
rust-python-ffi
Reference for the gbcms Rust/Python (PyO3) boundary — maturin build commands,
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Reference for the gbcms Rust/Python (PyO3) boundary — maturin build commands,
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Reference for gbcms mFSD (fragment size distribution) — the opt-in --mfsd flag, MAF/VCF column gating, KS test + LLR statistics, and Rust-native ZSTD Parquet output. Use when touching mfsd.rs, parquet_writer.rs, the mFSD report, or column-count tests.
Procedure for adding a feature to gbcms following its Git Flow and Rust/Python architecture (branch from develop, plan the layer, implement, sync type stubs, add tests with the 4 counting invariants, update docs/CHANGELOG, QA, PR to develop). Use when starting new feature work.
Reference for gbcms RNA mode — GTF-based transcript annotation (--gtf), the COITree AnnotationIndex, exon-boundary distance, per-transcript counts, and ASJD (allele-specific junction detection). Use when touching annotation/, rna.rs, or RNA output columns. Strandedness/sense-antisense gotchas live here.
Reference for the gbcms counting core — genomic binning (10kb bins, one fetch per bin), the 4-phase variant-check pipeline, and alignment-backend dispatch. Use when modifying engine.rs or variant_checks.rs, debugging count discrepancies, or reasoning about binning and binned↔legacy parity. For fragment/consensus see fragment-counting; for filters/quality see read-filters-qc.
Procedure for diagnosing gbcms build/test/CI errors — Rust compile failures, PyO3 stub mismatches, COITree SIMD (nosimd vs NEON/AVX) issues, CI black/ruff version traps, and test failures. Use when hitting an error and you need the gbcms-specific triage path.
Reference for fragment-level counting in gbcms — R1/R2 quality-weighted consensus, FAD/FAF (fragment alt depth/fraction), QNAME/UMI deduplication, duplex vs singleton UMI families, strand consistency, and amplicon split. Use when touching shared/fragment.rs or any DPF/RDF/ADF logic, or debugging fragment-level VAF.
| name | rust-python-ffi |
| description | Reference for the gbcms Rust/Python (PyO3) boundary — maturin build commands, |
maturin develop # dev build (fast, unoptimized)
maturin develop --release # release build (use before integration tests)
legacy-parity feature (default on). The per-variant count_bam parity oracle
is gated behind the default legacy-parity Cargo feature, so dev/test builds (above)
include it and the binned↔legacy parity tests work. Shipped wheels build with
--no-default-features (Dockerfile, release.yml) to omit it — production never calls
count_bam. If you maturin build --no-default-features locally, gbcms._rs.count_bam
will be absent and the parity tests will fail (expected).
#[pyclass] expose fields via #[pyo3(get)] or #[pyo3(get, set)]_rs.pyi) must exactly match #[pyo3(get)] fieldsBaseCounts is frozen from Python — mutations use with_ad() copy-on-writesrc/gbcms/_rs.pyi is the single stub for gbcms._rs — update it when fields/signatures changeThe coitrees crate uses different node types per SIMD backend:
IntervalNode<usize, _> → node.metadata is usizeInterval<&usize> → node.metadata is &usizePattern for portable metadata access:
use std::borrow::Borrow;
#[allow(noop_method_call)]
let idx: &usize = node.metadata.borrow();
let exon = &self.exons[*idx];
GBCMS_LOG_LEVEL=DEBUG RUST_LOG=debug gbcms dna ...
OPENSSL_NO_VENDOR=1 # required for Linux CI builds