Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
34f41a8
Update gitignore
ozlemmuslu Mar 13, 2026
78c870f
Upgrade Python and the Python packages.
ozlemmuslu Mar 13, 2026
2a69e4d
Introduce null check before rank sum test
ozlemmuslu Mar 13, 2026
055dc23
perf: major performance optimizations reducing runtime ~4-5x
ozlemmuslu Mar 13, 2026
547667b
perf: cache in power.py to avoid computing the same values repeatedly.
ozlemmuslu Mar 13, 2026
4493140
feat: chromosome-level parallelization via ProcessPoolExecutor
ozlemmuslu Mar 17, 2026
9d3259e
return nan in safe_median to repeat previous results
ozlemmuslu Mar 17, 2026
a4f2288
breaking: change cli argument include-ambiguous-bases to exclude-ambi…
ozlemmuslu Mar 18, 2026
8f62e75
Setup
ozlemmuslu Mar 18, 2026
8f8f1c3
Update unit tests
ozlemmuslu Mar 18, 2026
c2370d2
Update python version in tests
ozlemmuslu Mar 18, 2026
9e3d099
more flexible Python version
ozlemmuslu Mar 18, 2026
534ebc0
more flexible Python version
ozlemmuslu Mar 18, 2026
8ab4514
update test with new method
ozlemmuslu Mar 18, 2026
82606ed
Fix tests
ozlemmuslu Mar 18, 2026
f5ea6b2
fix insertion tests
ozlemmuslu Mar 18, 2026
abefa7b
attempt to fix test
ozlemmuslu Mar 19, 2026
541542f
remove insertion/deletion tests. will add an issue to the repository
ozlemmuslu Mar 19, 2026
cd8bb35
Refactor the code for better readability
ozlemmuslu Mar 20, 2026
e198540
Fix VCF INFO field error
ozlemmuslu Mar 20, 2026
5e3344d
Fix wrong tag
ozlemmuslu Mar 20, 2026
6db73d6
bump version
ozlemmuslu Mar 20, 2026
12f017a
Readd test that was accidentally deleted
ozlemmuslu Mar 20, 2026
4b6a272
improve code quality based on Codacy output
ozlemmuslu Apr 1, 2026
8b80837
more codacy improvements
ozlemmuslu Apr 2, 2026
cf31f1e
Re-add comments
ozlemmuslu Apr 2, 2026
8803b48
black code formatting
ozlemmuslu Apr 8, 2026
a3e5e20
fix unused variable bam
ozlemmuslu Apr 8, 2026
2bcc602
fix Codacy errors
ozlemmuslu Apr 9, 2026
c0254d0
add seed for random class. fixes #54
ozlemmuslu Apr 10, 2026
eb17614
change version to 3.0.0
ozlemmuslu Apr 10, 2026
f239072
add support for CRAM files. closes #45
ozlemmuslu Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '3.8', '3.9', '3.10' ]
python-version: ['3.11']

steps:
- name: Checkout code
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
python-version: ['3.11']

steps:
- name: Checkout code
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ out
vafator/tests/resources/results
.cache
.jupyter
.local
.local
run.sh
VAFator.egg-info/*
18 changes: 11 additions & 7 deletions requirements.txt
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
pandas~=1.3.3
pysam~=0.19.1
cyvcf2~=0.30.14
logzero~=1.7.0
pybedtools~=0.9.0
numpy>=1.20,<2.0
scipy>=1.0.0,<2.0.0
pandas>=3.0.1,<4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is pandas used at all? Pandas v3 introduced some major changes that break backward compatibility. If pandas is used, we should check that is works as intended.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pandas is used in hachet2bed, ploidies, and vafator2decifer.

My test runs would not include these, I'm not sure how well they are covered in the unit/integration tests either

# pysam pinned: above 0.21.0 base qualities show up wrong in the presence of soft clipping/insertions/overlapping read pairs or a combination of these factors
pysam==0.21.0
cyvcf2>=0.32.1,<0.33
logzero>=1.7.0,<2
pybedtools>=0.12.0,<0.13
numpy>=2.4.3,<3
scipy>=1.17.1,<2
setuptools
pytest
pytest-cov
63 changes: 62 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,2 +1,63 @@
[metadata]
description-file = README.md
name = VAFator
version = 3.1.0
description = Annotate variants in a VCF file with technical annotations from one or more BAMs
description-file = README.md
long_description = file: README.md
long_description_content_type = text/markdown
license = MIT
url = https://github.com/TRON-Bioinformatics/vafator
author = Pablo Riesgo Ferreiro, Jonas Ibn-Salem, Luis Kress, Özlem Muslu
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Healthcare Industry
Intended Audience :: Science/Research
Topic :: Scientific/Engineering :: Bio-Informatics
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3 :: Only
License :: OSI Approved :: MIT License
Operating System :: Unix
author_email = priesgoferreiro@gmail.com

[options.entry_points]
console_scripts =
vafator=vafator.command_line:annotator
multiallelics-filter=vafator.command_line:multiallelics_filter
vafator2decifer=vafator.command_line:vafator2decifer
hatchet2bed=vafator.command_line:hatchet2bed

[options]
packages = find:
include_package_data = True
zip_safe = False

python_requires = >=3.11, <3.12

install_requires =
pandas>=3.0.1,<4
pysam==0.21.0 # above this version base qualities show up wrong in the presence of soft clipping/insertions/both (latest release 0.23.3)
cyvcf2>=0.32.1,<0.33
logzero>=1.7.0,<2
pybedtools>=0.12.0,<0.13
numpy>=2.4.3,<3
scipy>=1.17.1,<2
setuptools

[options.packages.find]
exclude =
tests
tests.*
legacy
legacy.*

[options.extras_require]
dev =
pytest
ruff
mypy
test =
pytest
pytest-cov
setuptools
43 changes: 1 addition & 42 deletions setup.py
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks for cleaning this up!

Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,8 @@

VERSION = vafator.VERSION


# parses requirements from file
with open("requirements.txt") as f:
required = f.read().splitlines()

with open("README.md", "r", encoding="utf-8") as f:
long_description = f.read()

# Build the Python package
setup(
name='vafator',
version=VERSION,
packages=find_packages(exclude=["legacy"]),
entry_points={
'console_scripts': [
'vafator=vafator.command_line:annotator',
'multiallelics-filter=vafator.command_line:multiallelics_filter',
'vafator2decifer=vafator.command_line:vafator2decifer',
'hatchet2bed=vafator.command_line:hatchet2bed'
],
},
author="TRON - Translational Oncology at the University Medical Center of the Johannes Gutenberg University Mainz"
"- Computational Medicine group",
author_email='pablo.riesgoferreiro@tron-mainz.de',
description='Annotate a VCF file with AF, AD and DP from tumor and normal BAMs',
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/tron-bioinformatics/vafator",
requires=[],
install_requires=required,
classifiers=[
'Development Status :: 4 - Beta', # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
'Intended Audience :: Healthcare Industry',
'Intended Audience :: Science/Research',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3 :: Only',
"License :: OSI Approved :: MIT License",
"Operating System :: Unix"
],
python_requires='>=3.7',
license='MIT'
)
setup()
6 changes: 2 additions & 4 deletions vafator/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
VERSION='2.2.2'


AMBIGUOUS_BASES = ['N', 'M', 'R', 'W', 'S', 'Y', 'K', 'V', 'H', 'D', 'B']
VERSION = '3.1.0'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does this generate v3.1.0? I see that these are breaking changes but wouldn't v3.0.0 be more appropriate?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I bumped the version to 3.0.0 before I made many of the changes, so I thought bumping again would be more appropriate

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there was no release with v3.0.0 it would be best practice to use v3.0.0 here


Loading
Loading