Skip to main content

svForge logo

Generate synthetic SV VCFs to stress-test your pipelines with confidence

PyPI version License DOI


svForge produces caller-shaped VCFs (Manta, DELLY) in VCF / VCF.gz / BCF format with fine-grained control over variability (HOMLEN, SVLEN, VAF) and realistic artefact injection (SVs in ENCODE blacklist regions, gnomAD germline SVs).

Designed to be modular, it is easy to adapt to your own use case. You can tune generation parameters, plug in new callers, and customize the workflow without reworking the whole tool.

Installation

pip install svforge

Or from source:

git clone https://github.com/pieetie/svforge
cd svforge
pip install -e ".[dev,test]"

Quick start

For ready-to-run command lines (single-sample gen, paired somatic gen-pair, validation, banks, and dev checks), see docs/ready-to-use.md.

Scope & limitations

svForge ships the full header of each target caller verbatim, but for now it does not populate every INFO/FORMAT field a real run would emit. The fields below are declared in the header for parser compatibility but left empty in records — support may land in a later release.

Manta — not yet populated: CIPOS, CIEND (alignment-derived breakpoint CIs), HOMSEQ (microhomology sequence; HOMLEN is populated), BND_DEPTH, MATE_BND_DEPTH (per-breakend coverage).

DELLY — not yet populated: RDRATIO (tumor/normal read-depth ratio), INSLEN, SRMAPQ, CONSENSUS, CONSBP (split-read consensus); also, records are currently always tagged PRECISE rather than alternating with IMPRECISE.

In the meantime, if your downstream pipeline hard-requires any of these fields, you can supply your own --header-template that drops the unused declarations, or post-process the VCF to fill them with sentinel values.

Typical use cases

  • Validate downstream filters (for example, SVFORGE_SOURCE=gnomad records should disappear after your gnomAD filtering step).
  • Validate ENCODE blacklist annotation logic (for example, SVFORGE_SOURCE=blacklist records should receive your expected poor-mappability label).
  • Run reproducible CI regression tests with fixed seeds, without committing generated VCF files.
  • Smoke-test deployments and pipeline changes in seconds instead of rerunning full variant callers on BAM files.
  • Reproduce specific scenarios and edge cases (cross-chrom BNDs, contig-edge events, controlled VAF/HOMLEN ranges) for debugging and QA.
  • Demo or onboard safely with realistic SV VCFs and no patient data.

CLI

svforge gen          # one VCF for one sample
svforge gen-pair     # one 2-sample somatic VCF (NORMAL + TUMOR)
svforge validate     # self-consistency check of injected SVs
svforge bank list    # list built-in banks
svforge bank show    # dump a bank as YAML
svforge callers      # list registered writers

Run svforge <cmd> --help for the full flag list.

Credits

  • Logo and visual identity - Elisa Perrin
  • Claude (Anthropic) - assisted with tests, documentation, refactoring, and release tooling (Ruff linting/formatting, CI cleanup)

License

svForge icon Distributed under the MIT License.

Metadata

Release files for svforge 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for svforge 1.0.2
File Size Uploaded
svforge-1.0.2.tar.gz 54.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for svforge 1.0.2
File Interpreter ABI Platform
svforge-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 107.4 kB

Release files / svforge-1.0.2.tar.gz

Download URL svforge-1.0.2.tar.gz
Size 54.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0cd15aaa14a3007f9df5335ef8a3cdb945811e0c02b306cbfd118a7db265adfe
BLAKE2b-256 checksum
How to use checksums
5b5c93e6d53d7f0baa8152775a72132f26fd799cb5374051177aca27a744579f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2026.

Transparency log

Release files / svforge-1.0.2-py3-none-any.whl

Download URL svforge-1.0.2-py3-none-any.whl
Size 53.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f798ed896dc1c6d8f091a40bf5c4f834b8c29be03c0213045a157ee65102321f
BLAKE2b-256 checksum
How to use checksums
eee5202b99f9580b412dec36f3beebc7f670ddefcd81ae572e814125d291e297
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page