Conversation
* feat: Add sample() functions * fix: update sample ranges * fix: update max vector capacity * feat: Use default params for sample() Co-authored-by: Don Setiawan <landungs@uw.edu> * fix: remove extra function from API Co-authored-by: Don Setiawan <landungs@uw.edu> * feat: add sample() tests, check_v(), and docs * test: use rtest for sample() * test: rstest check_v() --------- Co-authored-by: Don Setiawan <landungs@uw.edu>
* feat: add WIP AVL tree implementation * fix: Fix issues with avl rotations * chore: Clean up to_newick * chore: Clean up some commented out code --------- Co-authored-by: Landung 'Don' Setiawan <landungs@uw.edu>
* ci: Add CD for python builds with maturin * ci: Tweak some triggers * ci: Update default run working directory
* fix: Attempt to fix the CD for working-directory * ci: Fix to use maturin manifest path * fix: Add full path to Cargo.toml * fix: Remove leftover defaults * chore: Update package metadata files * chore: Add updated root cargo metadata * chore(deps): Add openssl to root cargo deps * chore: Add LICENSE symlink and update manifest * chore(deps): Remove openssl and git2 rust dependency
* chore: Add benchmarking for rust get_pairs * chore: Add benchmark task to pixi
* ci: Add CI for Rust * style: Perform linting * style: Fix missed linting * ci: Comment out the beta and nightly builds for now
* feat: Add is_unordered function and modify max validator * style: Lint code
* fix: Fix python version to sync with Rust version * chore: Remove notes about dynamic version
* feat: add get_common_ancestor between two nodes Co-authored-by: molkjar <molkjara@gmail.com> * bump numpy version; add integer conversion in get_common_ancestor for numba * chore: Update dependencies to reflect main --------- Co-authored-by: Neclow <neilclow24@gmail.com> Co-authored-by: molkjar <molkjara@gmail.com>
…of arrays * chore: setup ancestry_dtype comparison * refactor: change Ancestry type to nested Vec * style: format benchmarks
* initial implementation * refactor: update ancestry dtype and add_leaf experiment * fix: Fix bugs within add_leaf functions * refactor: Update order cherries no parents to not clone * fix: Fix remove_leaf implementation * style: Run formatting * docs: add initial docs * style: Fix formatting --------- Co-authored-by: Landung 'Don' Setiawan <landungs@uw.edu>
* docs: Add a small readme for rust directory * Update phylo2vec/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update phylo2vec/README.md --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: Add pre-commit configuration file * chore: Add codespell words whitelists * chore: Add pre-commit deps and bump down jupyterlab * refactor: Skip prettier for yaml * style: Perform style fixes with pre-commit * chore: Remove R-CMD-check action for now * ci: Change cargo-fmt to have language of rust
* feat: Add from_newick function to parse newick string * refactor: Revert back order_cherries to use simple vector, not hashmap * refactor: Renamed v_res to v * refactor: Revert back build_vector to use idxs temp array
* feat: Add newick string operation functions * docs: Add docstrings for functions
* preliminary tests added * merge * tests * clarified insert function names * more tests * style: pre-commit fixes * revert renaming insert * merge * style: pre-commit fixes * accidental comment * corrected tests --------- Co-authored-by: Madeline <madgord@Madelines-MacBook-Pro.local> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore: Update docs for R and fix binding * chore: Run build * test: Add R tests with testthat * chore: Add easy R install * ci: Add R ci test * ci: Update to have args input for r tasks * docs: Update phylo2vec misspelling * Apply suggestions from code review Co-authored-by: Maddie Gordon <50681653+madelinegordon@users.noreply.github.com> --------- Co-authored-by: Maddie Gordon <50681653+madelinegordon@users.noreply.github.com>
* test: add initial benchmarking suite for rust bindings * test: add python benchmark workflow * test: update benchmark name
* refactor addleaf and removeleaf * rust format * decoupling * style: pre-commit fixes * python bindings * remove using * added pyo3 apis * format nits --------- Co-authored-by: Madeline <madgord@Madelines-MacBook-Pro.local> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat: io modules draft * fix: update python API with correct function names * docs: add docstrings and update API reference * style: make io names clearer * docs: update API reference * fix: added file suffix validation on reading files * style: rename supported file extension constants
* added matrix & parse newick with bls * binding * updates * get cherries tests pass * added sample_matrix * added sample_matrix changes to the python side * updates * test cases * rust analyzer fixes * account for sample_vector name change in benchmarks * rust formatting * duplicate line * python benchmarks sample_vector rename * docstring and unused variable --------- Co-authored-by: Madeline <madgord@Madelines-MacBook-Pro.local>
Co-authored-by: Madeline <madgord@Madelines-MacBook-Pro.local>
* ci: Add python version update script and update CD config * feat: Enhance versioning logic in CI workflow for releases and test releases
* feat: Update version determination action and integrate into CI workflow * feat: Use commit hash for version and fix semver * feat: Modify the version to be distance from latest tag * feat: Add fetch-depth 0 to get tags * chore: Uncomment publish action * fix: Fix return type hint * feat: Remove unused import * chore: Skip git cli call error
* refactor: added iterative get_cherries * refactor: clean up newick API * fix: use private stoi_substr
* ci: Add R CD workflow * chore: Remove set version for now * fix: Try to get r dependencies ahead of time * fix: Fix argument variable for devtools build * fix: Add dist mkdir step * fix: Remove r deps to phylo2vec dir for build * fix: Remove r-deps step * fix: Make binary build instead of source code * fix: Change macOS path to be .tgz * feat: Add R version determination and update functionality * fix: Set up Python environment with specified version in CI workflows * fix: Update Python setup action to v5 and refine version regex patterns in update_r_version.py * fix: Update R version determination to read from DESCRIPTION file in action.yml * fix: Update Python version to 3.11 in CI workflows * fix: Ensure pip is installed before installing dependencies in action.yml * fix: Ensure bash shell is explicitly set for the 'Ensure pip is installed' step in action.yml * fix: Update Python version to '3.x' in CI workflows and remove container image for build-linux * fix: Set R version to 'release' in setup-r action for consistency * fix: Remove macos-13 runner * fix: Remove 'test-r-build' branch from workflow triggers * refactor: Consolidate version update logic into a single script and remove obsolete files
* added to_newick_from_matrix and check_m * style: pre-commit fixes * comments * style: pre-commit fixes * rust linter * rust test correction * remove unnecessary doctest * renamed existing to_newick for clarity * style: pre-commit fixes * name update * missed naming updates * r data structure * input type * typo * fixed R datatype conversion * deepsource ignore * style: pre-commit fixes * Update lib.rs * style: pre-commit fixes * deepsource comment * chore: Ignore some anti-pattern and fix some * chore: Remove comment, ignored in deepsource as intentional --------- Co-authored-by: Madeline <madgord@Madelines-MacBook-Pro.local> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Landung 'Don' Setiawan <landungs@uw.edu>
* docs: add demo notebooks * style: pre-commit fixes * docs: add development guide * docs: add profiling and benchmark sections * style: pre-commit fixes * docs: remove demo_matrix.ipynb for refactoring * style: pre-commit fixes * docs: remove demo_matrix from TOC --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* test: add code profiling * chore: add rust profiling to workflow * fix: update rust ci steps order * fix: add checkout step to rust ci * fix: add samply install to pixi workflow * fix: add elevated perf_event permissions * fix: no server start on samply record * refactor: add rust benchmarks and profiling pixi task * style: pre-commit fixes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore: update profiling imports for CI * refactor: switch to to_newick_from_vector
* Create CODE_OF_CONDUCT.md * Create CONTRIBUTING.md * style: pre-commit fixes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* refactor: Update README and remove setup.py * chore: Add badges and update couple of things
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phylo2vec Project Development Summary
Over the past development cycle, our team has made significant strides in evolving the phylo2vec library, focusing on performance optimization, cross-language support, and improved developer experience.
Key Achievements
We've successfully implemented a high-performance O(n log n) algorithm for ordering cherries, replacing the previous less efficient implementation. The core library now benefits from AVL tree and Fenwick tree data structures that have substantially improved algorithmic performance.
The codebase has been extensively restructured to support a Rust core with Python bindings, allowing us to leverage Rust's performance benefits while maintaining Python's accessibility. We've also expanded our language support by creating a dedicated R package, opening our tools to the broader bioinformatics community.
Documentation and Quality Assurance
We've prioritized user experience by creating demo notebooks and comprehensive documentation through JupyterBook. For contributors, we've implemented a robust CI/CD pipeline that supports multiple Python versions, integrated benchmarking suites, and added community health files to encourage open-source participation.