Recent Releases of vembrane
vembrane - v2.2.0
2.2.0 (2025-07-17)
Features
Bug Fixes
- handle SV record for vembrane fhir (21c543b)
- improve error handling (6eec426)
- improve error handling (9725e06)
Documentation
- add missing help text to commands (#203) (bac54e9)
- complete vep options for vembrane fhir (8148a43)
- separate documentation into smaller parts (#206) (5808c36)
- Python
Published by github-actions[bot] 7 months ago
vembrane - v2.0.0
2.0.0 (2025-05-31)
⚠ BREAKING CHANGES
ANN["Annotation"] and sequence ontology terms (#173)
The annotation field in ANN now always is a list of terms/strings instead of a singular string.
That means that code similar to
python
ANN["Annotation"] == "inframe_deletion"
will stop working.
To get the same behaviour as before, replace the equality check with a contains check:
python
"inframe_deletion" in ANN["Annotation"]
To make use of the sequence ontology graph's relationships between terms, use:
python
ANN["Annotation"].any_is_a("inframe_deletion")
This expression will also cover the term's child terms, such as disruptive_inframe_deletion or conservative_inframe_deletion.
vembrane table default format (#189)
vembrane table now defaults to --long format, and --long has been replaced by --wide (#189)
Features
table 'ALL'pseudo-expression for converting all VCF information to long table formats; table now defaults to --long format, and --long has been replaced by --wide (#189) (d93b817)- new subcommand for generating structured output from vcf using a yte template (#184) (a07bb85)
- Sequence ontology support (#173) (a307316)
- flexible VCF reader/writer backend: users can now choose between pysam and cyvcf2 #160. Defaults to cyvcf2 (changed from pysam). Allows for easy integration of new backends (e.g., if someone wants to contribute python bindings for noodles-vcf/noodles-bcf).
Bug Fixes
- for long table output, deal with VCF files without SAMPLES by including an empty SAMPLE column (#191) (7cf1e2d)
- Python
Published by github-actions[bot] 9 months ago
vembrane - v1.0.7
What's Changed
- chore: update project deps for 1.x branch by @tedil in https://github.com/vembrane/vembrane/pull/180
- fix: properly handle MATEID presented as single-item by @johanneskoester, @tedil in https://github.com/vembrane/vembrane/pull/179
Full Changelog: https://github.com/vembrane/vembrane/compare/v1.0.6...v1.0.7
- Python
Published by tedil over 1 year ago
vembrane - v1.0.0
Breaking changes
- Command line arguments and options now use
key=valuesyntax consistently (where applicable):- auxiliary set option
--aux / -apreviously used whitespace to separatekeyandvaluebut now uses=instead:sh vembrane filter --aux known_genes=known_genes.txt "ID in AUX['known_genes']" input.vcf - The same holds for
--overwrite-number-infoand--overwrite-number-formatoptions:sh vembrane filter --overwrite-number-format DP=1 "FORMAT['DP']['Sample'] == 0" input.vcf - This also holds for the new
tagsubcommand (see below)
- auxiliary set option
The deprecated
--overwrite-numberoption was removed (#140)Features
Add
tagsubcommand (#126): The tag subcommand allows specifying multiple--tag name=expressionarguments. If a record passes an expression, the corresponding tag is added to itsFILTERfield. To instead tag records which fail an expression, either invert the expressions or use the--tag-mode failoption. Example:sh vembrane tag --tag quality_at_least_30="QUAL >= 30" input.vcfIntroduce
get(item, default=NA)methods forINFO,ANNandFORMAT[field](#139) This is a convenience function for handling missing values (in existing fields), which will be replaced by the provided default value (which itself defaults toNA) Example:sh vembrane filter "ANN.get('Impact', 'HIGH')"Note that this will stillKeyErrorwhen no such field has been defined in the header (e.g."ANN.get('nonexistent_key')")Add '.raw' getter property to custom types to get original annotation string (#137) Because
vembranehas custom types for certain annotations, their string representation may be different from the string they were parsed from. These types now have a.rawproperty to access the original string, e.g.ANN["EXON"].rawAttribute access on
NAvalues results inNA(#136) Example:sh vembrane table "ANN['EXON'].range.start" input.vcfwill no longer cause anAttributeErrorwhen theANN['EXON']field is empty. This is becauseNA.arbitrary_attributeis now equivalent toNA.Support
--auxfor vembrane table. (#142) Previously, thetablesubcommand did not support auxiliary files -- now it does!Add support for new-ish gnomADe* and gnomADg* entries from VEP (#134) There have been some upstream changes with respect to gnomAD naming conventions, which are now split into exome (e) and genome (g) populations. This simply adds support for the new names.
Fixes
- Fix regex for checking tag names, add more help to tag option (#141)
- Add testcase for
table --aux(#144) PosRangespecific fixes (#138)
Housekeeping
- Update dependencies (#145)
- Address some mypy errors and hints (#143)
- Python
Published by github-actions[bot] almost 3 years ago
vembrane - v0.14.0
Changes
- No more custom ANN names: always use names from VEP / snpEff as is @tedil (#135).
If you have expressions making use of
cDNA,CDSorProtein, change tocDNA_position,CDS_positionandProtein_position(VEP) orcDNA.pos / cDNA.length,CDS.pos / CDS.lengthandAA.pos / AA.length(SnpEff).
Housekeeping
- Update pre commit hook and poetry tool versions @tedil (#133)
- Add "Citation" section with information on how / what to cite @tedil (#132)
- Python
Published by github-actions[bot] almost 3 years ago
vembrane - v0.13.2
Changes
- Add examples for working with sample specific values and genotypes @tedil, @dlaehnemann (#130)
- Slightly better handling of the
##vembraneCmd=…VCF meta line @tedil (#131) (should no longer truncate multi-line expressions)
- Python
Published by github-actions[bot] over 3 years ago
vembrane - v0.12.0
Changes
- filter: better support for BNDs without "EVENTS" tag but with "MATEID" @tedil (#120)
- table: add
--longoption for long format tsv output (e.g.vembrane table --long "CHROM, POS, FORMAT['DP'][SAMPLE]" in.vcf) @tedil (#114)
Maintenance
- Simplify error types @EQt (#124)
- Mention possibility of
NAin annotation. @EQt (#123) - TypeVar instead of Any @EQt (#122)
- Some documentation improvements @EQt (#121)
- Python
Published by github-actions[bot] over 3 years ago
vembrane - v0.11.2
Changes
- return
NAin case of MISSING (".") ALT @tedil (#119) - print the record itself in addition to the record index when encountering exceptions @tedil (#118)
Maintenance
- Minor formatting/Sort imports @EQt (#116)
- Make black and isort work together nicely @tedil (#117)
- Python
Published by github-actions[bot] over 3 years ago
vembrane - v0.11.0
Changes
- Replace float constants in expressions with IEEE-754-1985 32bit float constants. @tedil (#111)
--overwrite-numberdeprecated and replaced with--overwrite-number-infoand--overwrite-number-formatrespectively @tedil (#112)- Do not output records unconditionally when
--preserve-orderis activated @tedil (#113) - docs: add
IDto list of available fields in README.md @dlaehnemann (#109)
- Python
Published by github-actions[bot] over 3 years ago
vembrane - v0.10.0
Changes
- Update numpy version (to address dependabot warning) @tedil (#107). This requires
python >= 3.8. - Also update versions of other dependencies.
Chores
- update github actions to automatically consider all current python versions starting from 3.8 for testing
- Python
Published by github-actions[bot] over 3 years ago
vembrane - v0.8.0
Changes
- In vep's "EXON" annotation field, range/totals like
4-6/27are allowed, where we previously always assumed number/totals like4/27only. With this change, both range/total and number/total format are treated as range/total, and the field names on the type are nowrangeandtotal, changed fromnumberandtotal, possibly breaking existing filter/table expressions (e.g.5 in ANN["EXON"].range and ANN["EXON"].total == 27). @dlaehnemann (#103)
- Python
Published by github-actions[bot] almost 4 years ago
vembrane - v0.7.0
Changes
Features
- Annotate @christopher-schroeder (#98)
Bug Fixes
- Fix subsequent ALT accesses yielding list not str @mbargull (#101)
- fix and test table args handling @dlaehnemann (#95)
Maintenance
- Fix tests to check all expected entries/headers @mbargull (#100)
- Python
Published by github-actions[bot] over 4 years ago
vembrane - v0.5.1
Changes
- More custom VEP annotation types @tedil (#84)
- Small performance improvement for
keep_unmatched@tedil (#83) - make FILTER a list @tedil @christopher-schroeder (#82)
We also added function families for working with genotypes (FORMAT["GT"]): count_hom, count_het, count_any_ref, count_any_var, count_hom_ref, count_hom_var and is_hom, is_het, is_hom_ref, is_hom_var, has_ref, has_var. These are similar in semantics to the countHom etc functions found in SnpSift with the exception that unknown genotype information (i.e. . in VCF notation) is not considered to be REF (i.e. 0 in VCF notation) but... unknown. Consider the following VCF snippet with 27 triploid samples in all possible combinations of 0 (ref) allele, 1 (first alternative) allele and . (missing information):
```
CHROM POS ID REF ALT QUAL FILTER INFO FORMAT S1 S2 S3 S4 S5 S6 S7 S8 S9 T1 T2 T3 T4 T5 T6 T7 T8 T9 U1 U2 U3 U4 U5 U6 U7 U8 U9
chr18 27963423 . G A 276 PASS GT ././. 1/1/. 0/0/. 0/1/. 1/0/. ./0/. ./1/. 1/./. 0/./. ././0 1/1/0 0/0/0 0/1/0 1/0/0 ./0/0 ./1/0 1/./0 0/./0 ././1 1/1/1 0/0/1 0/1/1 1/0/1 ./0/1 ./1/1 1/./1 0/./1
``
vembrane reports the following counts:
-counthom() == 2(only0/0/0and1/1/1are considered homozygous)
-counthet() == 12
-countanyref() == 19
-countanyvar() == 19
-counthomref() == 1
-counthomvar() == 1`
SnpSift reports the following counts:
- countHom() == 3 (././. is considered homozygous in addition to 0/0/0 and 1/1/1)
- countHet() == 24
- countRef() == 8 (since . is considered 0)
- countVariant() == 19
- Python
Published by github-actions[bot] over 5 years ago
vembrane - v0.5.0
Changes
vembrane "expression" inputis nowvembrane filter "expression" input
Features
- vembrane now supports filtering VCF files with breakends (BNDs). This requires two passes if you wish to keep the order of the input, which can be enabled with the
--preserve-orderoption. @christopher-schroeder (#80) - since we already evaluate expressions, we might as well use this to write tabular output:
vembrane table "expression" inputevaluates the given expression and writes tabular data as tsv, checkvembrane table --helpfor more information @christopher-schroeder (#79)
- Python
Published by github-actions[bot] over 5 years ago
vembrane - v0.4.0
Changes
- Only allow one ALT allele per record, error if more than one is encountered @tedil (#73)
This change affects expression syntax and VCF input requirements:
- VCF files need to be split such that each record has only one ALT allele, this can be achieved with e.g. the following tools:
- This makes filter expressions way less verbose and easier to use; instead of
ALT[0] == "C" and INFO["gnomad_AF"][0] > 0.01(where0is the index of the first ALT allele), useALT == "C" and INFO["gnomad_AF"] > 0.01. (This does reduce expressiveness a bit since you cannot reason about, say, the sum of alternate allele frequencies anymore) - (Also consider splitting your VCF files before annotating with snpeff/vep/etc.)
- Export NA to enable checks such as
INFO["DP"] is NA@tedil (#74) - bool(NA) = False @christopher-schroeder (#72)
- Python
Published by github-actions[bot] over 5 years ago
vembrane - v0.3.2
Changes
- Remove header.info from globals @mbargull (#70)
- Use
NAas default for INFO fields which appear in the header but not in the record @mbargull (#70) - Allow more builtins @christopher-schroeder (#67) (#68) @mbargull (#69)
Features
- move globals_whitelist to own module @mbargull (#69)
- Python
Published by github-actions[bot] over 5 years ago
vembrane - v0.3.1
Changes
- Swap order of access for FORMAT from
sample → fieldtofield → sample@tedil (#65) - Try evaluating the filter expression for the first record before writing the VCF header @tedil (#66)
- Swap expression and VCF input positional arguments, make input default to stdin @tedil (#62)
Features
Parse info/annotation entries only on dict lookup @mbargull (#63).
Bug Fixes
Replace hardcoded "ANN" in
statisticswithann_key@tedil (#60)
- Python
Published by github-actions[bot] over 5 years ago
vembrane - v0.2.1
Changes
- Check for annotation_key in the filter expression via walking the ast @tedil (#54)
Bug Fixes
- Replace usages of "ANN" with annotation-key specified on the CLI @tedil (#53)
Maintenance
- Fix github workflow for publishing to PyPI @tedil (#59)
- Use the maintenance label for github and packaging related work @tedil (#55)
- Add missing template for release draft GitHub workflow @tedil (#52)
- Manage version via pyproject.toml only @tedil (#51)
- Add release drafter GitHub workflow @tedil (#50)
- Github workflow for building the vembrane dists and publishing them to PyPI @tedil (#49)
- Python
Published by github-actions[bot] over 5 years ago