Synthetic VCF generator for structural variants (Manta, DELLY) with controlled variability and realistic artefact injection
Project description
Generate synthetic SV VCFs to stress-test your pipelines with confidence
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.
Typical use cases
- Validate downstream filters (for example,
SVFORGE_SOURCE=gnomadrecords should disappear after your gnomAD filtering step). - Validate ENCODE blacklist annotation logic (for example,
SVFORGE_SOURCE=blacklistrecords 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file svforge-1.0.1.tar.gz.
File metadata
- Download URL: svforge-1.0.1.tar.gz
- Upload date:
- Size: 52.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b25d4579945a75698db8de68a479da799bb3124e0b5cac07c9746036245ba238
|
|
| MD5 |
aa9edd367fb182b9d20cb40bd3015c02
|
|
| BLAKE2b-256 |
bd759faa0abfbddcaf062872f4e09ce108f7f5d771c388347408a7318133af23
|
Provenance
The following attestation bundles were made for svforge-1.0.1.tar.gz:
Publisher:
publish.yml on pieetie/svforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
svforge-1.0.1.tar.gz -
Subject digest:
b25d4579945a75698db8de68a479da799bb3124e0b5cac07c9746036245ba238 - Sigstore transparency entry: 1395657273
- Sigstore integration time:
-
Permalink:
pieetie/svforge@f47ddf39e211d098dfb533fa86b089cde4eddf4f -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/pieetie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f47ddf39e211d098dfb533fa86b089cde4eddf4f -
Trigger Event:
push
-
Statement type:
File details
Details for the file svforge-1.0.1-py3-none-any.whl.
File metadata
- Download URL: svforge-1.0.1-py3-none-any.whl
- Upload date:
- Size: 51.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9fbf86c552656974383740fba1ac7dcdd8da90b28435f1a7daca3c0a880f99a
|
|
| MD5 |
40b5f58e5658d2c1f1b2c228b3b39735
|
|
| BLAKE2b-256 |
668255bde167ed718dfb9f6b3a48a58fe45a88a9619f61dbce811ccc48ec44c6
|
Provenance
The following attestation bundles were made for svforge-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on pieetie/svforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
svforge-1.0.1-py3-none-any.whl -
Subject digest:
c9fbf86c552656974383740fba1ac7dcdd8da90b28435f1a7daca3c0a880f99a - Sigstore transparency entry: 1395657892
- Sigstore integration time:
-
Permalink:
pieetie/svforge@f47ddf39e211d098dfb533fa86b089cde4eddf4f -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/pieetie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f47ddf39e211d098dfb533fa86b089cde4eddf4f -
Trigger Event:
push
-
Statement type: