Skip to main content

Official SDK for building ClinVCF marketplace modules — types, contracts, helpers and tooling for clinical pharmacogenomics, prediction and annotation modules.

Project description

ClinVCF SDK

PyPI version Python versions License: MIT CI

Official SDK for building ClinVCF-OS marketplace modules.

The ClinVCF SDK provides Python types, contracts, and helpers to build clinical genomic modules that integrate seamlessly with the ClinVCF-OS desktop application — pharmacogenomics callers, variant classification engines, prediction tools, and annotation pipelines.

⚠️ Research Use Only (RUO) — Modules built with this SDK are intended for research and educational purposes only. They are not validated for clinical diagnosis or patient care.


Installation

pip install clinvcf-sdk

Requires Python 3.10 or later.


Quick start

from clinvcf_sdk import (
    ClinVCFModule,
    ModuleManifest,
    ModuleResult,
    ReportFormat,
    PatientMetadata,
    to_qml_payload,
)


class MyModule(ClinVCFModule):
    """Minimal example of a ClinVCF marketplace module."""

    def run(
        self,
        vcf_path: str,
        patient: PatientMetadata,
        config: dict,
    ) -> ModuleResult:
        # Your analysis logic here
        return ModuleResult(
            module_id="my-module",
            module_version="1.0.0",
            executed_at=datetime.now(timezone.utc),
            findings=[...],
        )

    def render_report(
        self,
        result: ModuleResult,
        fmt: ReportFormat,
        language: str = "fr",
    ) -> bytes:
        if fmt == ReportFormat.QML_PAYLOAD:
            payload = self.to_qml_payload(result, language=language)
            return json.dumps(payload).encode("utf-8")
        # ...

See the full documentation for module manifest schema, packaging into .cvf files, and submission to the ClinStore marketplace.


What's in the SDK

The SDK exposes the contracts and helpers that the ClinVCF-OS host uses to load and run your module:

  • ClinVCFModule — abstract base class your module subclasses
  • ModuleManifest — pydantic model for manifest.json (validation & deserialization)
  • ModuleResult — typed structure returned by run()
  • ReportFormat — enum of supported output formats (HTML, PDF, JSON, QML_PAYLOAD)
  • to_qml_payload() — convert a result into the JSON payload consumed by the ClinVCF-OS UI
  • PatientMetadata — typed patient context passed to run()

The SDK is intentionally minimal. It defines the contract between the host and modules, and provides the glue to render results in the host UI. Domain-specific logic (variant calling, classification, etc.) is the responsibility of each module.


Marketplace certification

Modules submitted to the ClinStore marketplace go through automated validation:

  • pytest test suite must pass
  • ✅ Manifest schema validation
  • ✅ Dependency audit (no known CVEs)
  • ✅ Module load + sample-data smoke test
  • ✅ Score ≥ 80% to be auto-published
  • ✅ Author accepts the Research Use Only disclaimer

Modules signed by Fdevelopment LTD are tagged 🛡 Certified Fdevelopment©, which means they have been manually audited in addition to passing automated checks.


Repository


License

MIT © 2026 Fdevelopment LTD — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clinvcf_sdk-1.0.1.tar.gz (45.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clinvcf_sdk-1.0.1-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

File details

Details for the file clinvcf_sdk-1.0.1.tar.gz.

File metadata

  • Download URL: clinvcf_sdk-1.0.1.tar.gz
  • Upload date:
  • Size: 45.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for clinvcf_sdk-1.0.1.tar.gz
Algorithm Hash digest
SHA256 efae09da6de3d734f6bc6cff0ced15f629d420ff1c5608b7e17d377562aa348e
MD5 447eeaac21ccf566c2d317f86d86211a
BLAKE2b-256 c75fdc4a3b8cfaa8d416c5ba41de69f7be95db91a898e4b302ae855d275bec84

See more details on using hashes here.

Provenance

The following attestation bundles were made for clinvcf_sdk-1.0.1.tar.gz:

Publisher: publish-pypi.yml on ClinVCF/clinvcf-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clinvcf_sdk-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: clinvcf_sdk-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 49.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for clinvcf_sdk-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 38b7dfa33ea1c4d529740f095ad0ba0214a14ca70f8d8fa55b49375088ee8ff5
MD5 88bfc37dd918ade58f09f51ab6a2dbcc
BLAKE2b-256 b6f8031de731aa1e9a3324e04a708741b736e6f7c96d27d7f11a2742ac5a2a7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for clinvcf_sdk-1.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on ClinVCF/clinvcf-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page