Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
agudys committed Jun 20, 2024
0 parents commit f130af0
Show file tree
Hide file tree
Showing 70 changed files with 2,167,860 additions and 0 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: GitHub Actions CI

on:
push:
branches: [ main, master, develop ]
paths-ignore:
- '**.md'
workflow_dispatch:

jobs:

########################################################################################
make:
name: Make
strategy:
fail-fast: false
matrix:
machine: [ubuntu-latest, macOS-12]
compiler: [g++-11]
runs-on: ['${{ matrix.machine }}']

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: get tags
run: |
cd ./libs/igraph
git fetch --tags origin
- name: make
run: |
make -j32 CXX=${{matrix.compiler}}
cp ./clusty ./clusty-${{matrix.compiler}}
make clean
- name: tar artifacts
run: tar -cvf clusty.tar ./clusty-${{matrix.compiler}} ./test/cmp.py ./test/vir61.*

- uses: actions/upload-artifact@v2
with:
name: executable-artifact-${{ matrix.machine }}
path: ./clusty.tar

########################################################################################
vir61-linkage:
name: Vir61
needs: make
strategy:
fail-fast: false
matrix:
machine: [ubuntu-latest, macOS-12]
compiler: [g++-11]
algo: [single, complete]
threshold: [95, 70]

runs-on: ['${{ matrix.machine }}']

steps:
- uses: actions/download-artifact@v2
with:
name: executable-artifact-${{ matrix.machine }}
path: ./

- name: untar artifacts
run: |
tar -xf clusty.tar
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, reordered columns)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}} --out-representatives
python ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
202 changes: 202 additions & 0 deletions .github/workflows/self-hosted.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
name: Self-hosted CI

on:
pull_request:
branches: [main, master, develop]
paths-ignore:
- '**.md'
workflow_dispatch:


jobs:

########################################################################################
checkout:
name: Checkout
strategy:
matrix:
machine: [xeon, mac-i7, mac-m1]
runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Get tags
run: |
cd ./libs/igraph
git fetch --tags origin

########################################################################################
make:
name: Make
needs: checkout
strategy:
fail-fast: false
matrix:
machine: [xeon, mac-i7, mac-m1]
compiler: [g++-11]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: make
run: |
make -j32 CXX=${{matrix.compiler}}
cp ./clusty ./clusty-${{matrix.compiler}}
make clean
########################################################################################
make-leiden:
name: make (Leiden)

needs: checkout
strategy:
fail-fast: false
matrix:
compiler: [g++-11]

runs-on: [self-hosted, clusty]

steps:
- name: make
run: |
make -j32 CXX=${{matrix.compiler}} LEIDEN=true
cp ./clusty ./clusty-leiden-${{matrix.compiler}}
make clean
########################################################################################
toy:
name: Toy example
needs: make
strategy:
fail-fast: false
matrix:
machine: [xeon, mac-i7, mac-m1]
compiler: [g++-11]
algo: [single]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: ${{matrix.algo}} (no representatives, numeric ids, singletons in object file)
run: |
./clusty-${{matrix.compiler}} --objects-file ./test/toy.ids.tsv --algo ${{matrix.algo}} --id-cols idx1 idx2 --distance-col tani --similarity --numeric-ids --min tani 0.95 ./test/toy.ani.tsv toy.${{matrix.algo}}.tsv
python3 ./test/cmp.py toy.${{matrix.algo}}.tsv ./test/toy.${{matrix.algo}}.tsv
########################################################################################

vir61-linkage:
name: Vir61
needs: make
strategy:
fail-fast: false
matrix:
machine: [xeon, mac-i7, mac-m1]
compiler: [g++-11]
algo: [single, complete]
threshold: [95, 70]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, reordered columns)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}} --out-representatives
python3 ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
########################################################################################
ictv-linkage:
name: ICTV (single and complete versus python clusterings)
needs: make
strategy:
fail-fast: false
matrix:
machine: [xeon, mac-i7, mac-m1]
compiler: [g++-11]
algo: [single, complete]
threshold: [95, 70]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives, numeric ids)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.num --numeric-ids
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, numeric ids)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
########################################################################################
ictv-all:
name: ICTV (all algos versus our clusterings)
needs: make
strategy:
fail-fast: false
matrix:
machine: [xeon, mac-i7, mac-m1]
compiler: [g++-11]
algo: [single, complete, uclust, set-cover, cd-hit]
threshold: [70]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
cmp ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, numeric ids)
run: |
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
########################################################################################
ictv-leiden:
name: ICTV (leiden)
needs: make-leiden
strategy:
fail-fast: false
matrix:
compiler: [g++-11]
algo: [leiden]
threshold: [70]

runs-on: [self-hosted, clusty, '${{ matrix.machine }}']

steps:
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives)
run: |
./clusty-leiden-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
cmp ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives)
run: |
./clusty-leiden-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, numeric ids)
run: |
./clusty-keiden-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/src/x64
/src/_release/
/src/_debug/
/src/.vs/rapid-cluster/v17
/src/.vs/rapid-cluster/FileContentIndex
/src/.vs/clusty/v17
/src/.vs/clusty/FileContentIndex
/libs/winflexbison
/src/clusty/x64/Debug/clusty.tlog
/src/clusty/x64/Debug
/src
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "libs/mimalloc"]
path = libs/mimalloc
url = https://github.com/refresh-bio-dependencies/mimalloc.git
[submodule "libs/igraph"]
path = libs/igraph
url = https://github.com/refresh-bio-dependencies/igraph
Loading

0 comments on commit f130af0

Please sign in to comment.