원클릭으로
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 페이지를 검토하고 설치를 진행할 수 있습니다.
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.
SOC 직업 분류 기준
| 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