Skip to content

Latest commit

 

History

History
48 lines (30 loc) · 4.2 KB

File metadata and controls

48 lines (30 loc) · 4.2 KB

Changelog

All notable changes to cbioformatter will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.3.0 — 2026-06-22

Added

  • Basic usage tutorialexamples/basic_usage.ipynb walks researchers through constructing a ClinicalStudy, writing files, and validating a study end-to-end, with bundled example data in examples/data/. (#55)

Removed

  • Local upload documentation — removed draft README content describing study upload to a local cBioPortal instance; that workflow is not yet stable enough to document publicly. (#54)

0.2.0 — 2026-06-09

Added

  • Mutation data processing — when sample_data contains a VCF_PATH column, ClinicalStudy invokes a user-installed mafsmith to convert each VCF to MAF, concatenates the per-sample MAFs into data_mutations.txt, and writes the matching meta_mutations.txt and case_lists/cases_sequenced.txt. New constructor kwargs ref_fasta_path (optional override; mafsmith uses its bundled reference by default) and mafsmith_path (with CBIOFORMATTER_REF_FASTA and CBIOFORMATTER_MAFSMITH_PATH env-var fallbacks) configure the converter. Samples with null VCF_PATH values are skipped but still appear in cases_all.txt. New error classes: MutationToolNotAvailableError, MutationConversionError, MissingReferenceFastaError. Note: mafsmith does not currently populate the optional SWISSPROT column, so cBioPortal's Pfam-domain mutations view will be unavailable until nf-osi/mafsmith closes that gap. (#19, #20, #21, #22, #23, #24, #25, #26)

0.1.0 — 2026-05-14

First public release. Establishes the ClinicalStudy API for assembling cBioPortal-compatible studies from pandas DataFrames, with end-to-end support for clinical data, file generation, and offline validation.

Added

  • ClinicalStudy class — accepts sample and patient DataFrames and produces a validated, cBioPortal-compatible study directory. Auto-generates patient data and PATIENT_IDs when not provided. (#35)
  • Clinical data handling — column name cleaning (uppercase, underscores, special-character removal), data type inference (NUMBER, BOOLEAN, STRING), and validation of required columns, ID uniqueness, and patient/sample referential integrity. (#35)
  • OncoTree cancer-type validation — validates CANCER_TYPE values against a bundled snapshot of OncoTree codes; no runtime API dependency. (#35)
  • File generation via ClinicalStudy.write_files() — produces meta_study.txt, patient/sample meta and data files (with the 4-line cBioPortal header), and a case_lists/cases_all.txt case list. (#37)
  • Local study validation via ClinicalStudy.validate() — wraps the official cBioPortal validateData.py with --no_portal_checks. The validator is cloned on first use into ~/.cache/cbioformatter/validator/ and cached; CBIOFORMATTER_VALIDATOR_PATH overrides the location for air-gapped or CI use. Returns a ValidationResult; write_files(validate=True) raises ValidationError on hard failures and emits a UserWarning on warnings-only. (#46)
  • PyPI distribution — automated publishing via .github/workflows/publish.yml on GitHub release, using PyPI trusted publishing (OIDC) with no long-lived tokens. The publish action is pinned by commit SHA. (#48)
  • CONTRIBUTING.md — initial contributor doc. Several sections remain stubbed for follow-up. (#48)

Changed

  • Python floor raised to 3.10. 3.9 was dropped from CI in February 2026 (commit fe21d5a) and is past EOL; requires-python, ruff target-version, and the README now reflect that. (#48)
  • __version__ is now read dynamically from importlib.metadata, making pyproject.toml the single source of truth. (#48)