All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added many tests for util functions
- Changed a nopython function to use numba compatible indexing
- Used "not" instead of "~" in an if statement
- Added a test for the coverage function
- Ensured that the coverage value returns the expected value (previously returned an empty generator)
- Included
output_file
as required argument forfinaletoolkit cleavage-profile
.
- Fixed incompatible types in min function through an explicit cast of chrom_sizes to integers.
- include
chrom_sizes
file as required argument forfinaletoolkit cleavage-profile
- Numpy dependency version set to <2 to avoid breaking changes from numpy 2. This will change in the future as we migrate to use numpy 2.
- Replaced all instances of
np.NaN
withnp.nan
.
- Fixed minor issues with typing in
finaletoolkit.genome.gaps
- Fixed issue where data files are not packaged with FinaleToolkit
- Brief description of modules in documentation under structure page
- Docstring
finaletoolkit.version
module containing single-source__version__
variableremove_nocov
option infinaletoolkit.frag.delfi
to toggle dropping two bins with low coverage. These bins are dropped in delfi_scripts but may not apply to fragment files not aligned to hg19.- tests for
finaletoolkit.frag.delfi_merge_bins
finaletoolkit.frag.delfi
changed to accept files aligned to almost any reference genome.finaletoolkit.frag.delfi_merge_bins
algorithm changed to be reference genome-agnostic and consistent with delfi_scriptsfinaletoolkit delfi
options-G
,-M
, and-R
to drop gc-correction, merging, and remove nocov bins, respectively.
- unused flags for
finaletools delfi
:-W
,--window-size
- redundant flags for
finaletools delfi
:-gc
,--gc-correct
,-m
,--merge-bins
utils.agg_bw
now supportsPathLike
for input- docstrings for
frag.end_motifs.EndMotifsIntervals
changed to be compatible with Sphinx
- added missing
gzip
import forutils.agg_bw
- tests for
utils.agg_bw
interval_size
argument foradjust_wps
adjust_wps
checks ifmedian_window
is larger than interval- remove default options from some private helper functions for better error catching/predictable behavior.
wps
related functions and subcommands
- fixed writing to
bed.gz
files when usingcoverage
- adjusted handling of contig, start, stop for
frag_generator
so thatcoverage
does not throw exceptions for genomewide intervals.
- test for
single_coverage
- add
__version
attribute finaletoolkit --version
displays package version- update PyPI page to include links
- Fixed intersect policy for
cleavage_profile
. Now it callsfrag_generator
with a policy ofany
. - Clean up some comments and docstrings
- Fixed logging from coverage function
- Added numerous util functions
- Added
left
andright
options tocleavage_profile
and CLIcleavage-profile
. - Added tests for cleavage profile and WPS.
- Minimum Python version 3.9
- Changed
filter_bam
to have same filters as FinaleDB utils.frag_generator
raisesValueError
ifstart
orstop
are specified withoutcontig
- Type hints changed to use literals when possible
- Removed
utils.get_contig_lengths
- Removed
data
,conda_envs
, andfigs
directories - Removed unused dependencies
click
,pybedtools
, and `cython - Remove some unused imports from module files
interval-mds
CLI subcommand calculates correctly without large negative values.interval-mds
CLI subcommand now correctly parses tsv files.
- Most end-motif related Python functions accept Path instances as inputs for files.
- Unit and function tests, especially for end-motif related functions.
- All instances of finaletools have been renamed to finaletoolkit
- All default tabular files are now TSV
- Update contacts in TOML
interval-mds
andmds
both calculate correctly when one motif has a frequency of 0
- Added
finaletools.interval_end_motifs
function to calculate end-motifs over genomic intervals. Stores results in an IntervalEndMotifs object. - Added CLI subcommand
interval-end-motifs
to calculate end-motifs over genomic intervals. - Added CLI subcommand
interval-mds
to calculate MDS over intervals from interval end-motifs table.
- Added
gc_correct
option todelfi_merge_bins
so that merging is possible without GC correction
delfi
can now be run withgc_correct=false
andmerge_bins=true
- fixed
cleavage_profile
import infrag
- Added
CHANGELOG.md
- Fixed bug in coverage where writing to non-bedgraph files would result in an error
finaletools.frag.coverage
accepts Frag.gz format files- update CLI help messages and docstrings for coverage and DELFI to reflect current and previous changes
- update docs
- Updated emails in
pyproject.toml