Skip to content

Commit

Permalink
Merge pull request #3 from BenjaminDoran/dev
Browse files Browse the repository at this point in the history
Dev (v0.2) rewrite

*Revise regNJ function:*

It now only uses the memory space of a single distance matrix, and overwrites new nodes into one of the merged nodes. This does change the ordering of merges in the algorithm (i.e. the pseudoroot may change) but the unrooted tree is confirmed to be the same (i.e. patristic distances don't change).

*Update testing framework:*

followed SciML organization with safetestsets and made each testset a regular script

*Update Docs:*

added doctests, and new docstrings for `heights` and `merges` functions

*Add benchmark suite:*

I am now testing on matrices up to size 1024, with the revision regNJ seems much faster than before, but some of that seems to be testing on yuletree matrices rather than uniformly random matrices
  • Loading branch information
BenjaminDoran authored Jan 21, 2024
2 parents 1297995 + 62f9700 commit f3b937f
Show file tree
Hide file tree
Showing 32 changed files with 2,795 additions and 289 deletions.
27 changes: 27 additions & 0 deletions .github/workflows/Benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Run benchmarks

on:
pull_request:

jobs:
Benchmark:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1
- uses: julia-actions/julia-buildpkg@latest
- name: Install dependencies
run: julia -e 'using Pkg; pkg"add PkgBenchmark [email protected]"'
- name: Run benchmarks
run: julia -e 'using BenchmarkCI; BenchmarkCI.judge(; baseline = "origin/main")'
- name: Post results
run: julia -e 'using BenchmarkCI; BenchmarkCI.postjudge()'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Push results
run: julia -e "using BenchmarkCI; BenchmarkCI.pushresult()"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SSH_KEY: ${{ secrets.DOCUMENTER_KEY }}
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
fail-fast: false
matrix:
version:
- '1.5'
- '1.8'
- '1'
- 'nightly'
os:
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
*.jl.*.cov
*.jl.cov
*.jl.mem
/Manifest.toml
**/Manifest.toml
/docs/build/
/.benchmarkci
/benchmark/*.json
# /benchmark/benchmarkdata/dist_mtx*
15 changes: 5 additions & 10 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
name = "NeighborJoining"
uuid = "3f465f53-8c2e-426b-b4f1-431dfde0fdf8"
authors = ["Benjamin Doran and collaborators"]
version = "0.1.2"
version = "0.2.0"

[deps]
ArgCheck = "dce04be8-c92d-5529-be00-80e4d2c0e197"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[compat]
julia = "^1.5"

[extras]
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
NewickTree = "b0a14db8-6308-4ebc-8917-f72cd81f5094"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test", "NewickTree", "LinearAlgebra"]
ArgCheck = "2.3"
Printf = "^1.8"
julia = "^1.8"
5 changes: 5 additions & 0 deletions benchmark/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[deps]
BenchmarkCI = "20533458-34a3-403d-a444-e18f38190b5b"
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
NeighborJoining = "3f465f53-8c2e-426b-b4f1-431dfde0fdf8"
PkgBenchmark = "32113eaa-f34f-5b0d-bd6c-c81e245fc73d"
1,025 changes: 1,025 additions & 0 deletions benchmark/benchmarkdata/dist_mtx_1024.txt

Large diffs are not rendered by default.

129 changes: 129 additions & 0 deletions benchmark/benchmarkdata/dist_mtx_128.txt

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions benchmark/benchmarkdata/dist_mtx_16.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
16
Tip0 0.000000000000 0.963081734110 0.624313848059 0.925815786052 0.572697533597 0.258379974053 0.606970292080 1.439715678301 0.912013899378 1.177409200000 0.968317514541 1.658330445478 1.473440805554 0.866029913638 1.612330561438 0.816788625130
Tip1 0.963081734110 0.000000000000 1.064738817651 0.234632262248 0.461021881522 0.861571428330 0.495294640005 0.781408160938 0.588904352163 0.519101682637 0.310009997179 1.000022928116 0.815133288192 0.754354261563 0.954023044075 0.493679077914
Tip10 0.624313848059 1.064738817651 0.000000000000 1.027472869593 0.674354617137 0.522803542279 0.708627375620 1.541372761842 1.013670982919 1.279066283540 1.069974598082 1.759987529019 1.575097889095 0.967686997179 1.713987644978 0.918445708671
Tip11 0.925815786052 0.234632262248 1.027472869593 0.000000000000 0.423755933464 0.824305480272 0.458028691947 0.744142212880 0.551638404104 0.481835734579 0.272744049120 0.962756980058 0.777867340134 0.717088313505 0.916757096017 0.456413129856
Tip12 0.572697533597 0.461021881522 0.674354617137 0.423755933464 0.000000000000 0.471187227817 0.045978027584 0.937655825712 0.409954046790 0.675349347411 0.466257661953 1.156270592890 0.971380952966 0.305037649142 1.110270708849 0.314728772542
Tip13 0.258379974053 0.861571428330 0.522803542279 0.824305480272 0.471187227817 0.000000000000 0.505459986300 1.338205372521 0.810503593599 1.075898894220 0.866807208761 1.556820139699 1.371930499774 0.764519607858 1.510820255658 0.715278319350
Tip14 0.606970292080 0.495294640005 0.708627375620 0.458028691947 0.045978027584 0.505459986300 0.000000000000 0.971928584195 0.444226805273 0.709622105894 0.500530420436 1.190543351373 1.005653711449 0.297921778232 1.144543467332 0.349001531025
Tip15 1.439715678301 0.781408160938 1.541372761842 0.744142212880 0.937655825712 1.338205372521 0.971928584195 0.000000000000 1.065538296353 0.511519674511 0.520563329442 0.424109007886 0.087011070210 1.230988205754 0.378109123846 0.970313022105
Tip2 0.912013899378 0.588904352163 1.013670982919 0.551638404104 0.409954046790 0.810503593599 0.444226805273 1.065538296353 0.000000000000 0.803231818052 0.594140132593 1.284153063531 1.099263423607 0.703286426832 1.238153179490 0.351045148765
Tip3 1.177409200000 0.519101682637 1.279066283540 0.481835734579 0.675349347411 1.075898894220 0.709622105894 0.511519674511 0.803231818052 0.000000000000 0.258256851140 0.730134441689 0.545244801765 0.968681727453 0.684134557648 0.708006543804
Tip4 0.968317514541 0.310009997179 1.069974598082 0.272744049120 0.466257661953 0.866807208761 0.500530420436 0.520563329442 0.594140132593 0.258256851140 0.000000000000 0.739178096619 0.554288456695 0.759590041994 0.693178212579 0.498914858345
Tip5 1.658330445478 1.000022928116 1.759987529019 0.962756980058 1.156270592890 1.556820139699 1.190543351373 0.424109007886 1.284153063531 0.730134441689 0.739178096619 0.000000000000 0.457834135140 1.449602972932 0.073843524556 1.188927789283
Tip6 1.473440805554 0.815133288192 1.575097889095 0.777867340134 0.971380952966 1.371930499774 1.005653711449 0.087011070210 1.099263423607 0.545244801765 0.554288456695 0.457834135140 0.000000000000 1.264713333007 0.411834251099 1.004038149358
Tip7 0.866029913638 0.754354261563 0.967686997179 0.717088313505 0.305037649142 0.764519607858 0.297921778232 1.230988205754 0.703286426832 0.968681727453 0.759590041994 1.449602972932 1.264713333007 0.000000000000 1.403603088891 0.608061152583
Tip8 1.612330561438 0.954023044075 1.713987644978 0.916757096017 1.110270708849 1.510820255658 1.144543467332 0.378109123846 1.238153179490 0.684134557648 0.693178212579 0.073843524556 0.411834251099 1.403603088891 0.000000000000 1.142927905242
Tip9 0.816788625130 0.493679077914 0.918445708671 0.456413129856 0.314728772542 0.715278319350 0.349001531025 0.970313022105 0.351045148765 0.708006543804 0.498914858345 1.188927789283 1.004038149358 0.608061152583 1.142927905242 0.000000000000
Loading

0 comments on commit f3b937f

Please sign in to comment.