Skip to content

Commit f9725b7

Browse files
committed
Github workflows added
1 parent b9a8802 commit f9725b7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+38398
-0
lines changed

.github/workflows/deploy.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Deploy
2+
3+
on:
4+
release:
5+
types:
6+
- created
7+
8+
jobs:
9+
10+
11+
########################################################################################
12+
checkout:
13+
name: Checkout
14+
strategy:
15+
matrix:
16+
machine: [x64_linux, x64_mac, arm64_linux, arm64_mac]
17+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
submodules: recursive
23+
24+
########################################################################################
25+
make:
26+
name: Make
27+
needs: checkout
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
machine: [x64_linux, arm64_linux, x64_mac, arm64_mac]
32+
33+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
34+
35+
steps:
36+
- name: make
37+
run: |
38+
make clean
39+
make -j32 CXX=g++-12
40+
- name: tar artifacts
41+
run: tar -cvzf lz-ani.tar.gz lz-ani LICENSE
42+
43+
44+
########################################################################################
45+
help:
46+
name: Print usage
47+
needs: make
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
machine: [x64_linux, x64_mac, arm64_linux, arm64_mac]
52+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
53+
54+
steps:
55+
- name: help
56+
run: ./lz-ani
57+
58+
########################################################################################
59+
upload:
60+
name: Upload
61+
needs: help
62+
strategy:
63+
fail-fast: false
64+
matrix:
65+
machine: [x64_linux, x64_mac, arm64_linux, arm64_mac]
66+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
67+
68+
steps:
69+
- name: deploy
70+
uses: actions/[email protected]
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73+
with:
74+
upload_url: ${{ github.event.release.upload_url }}
75+
asset_path: ./lz-ani.tar.gz
76+
asset_name: lz-ani-${{ github.event.release.tag_name }}-${{matrix.machine}}.tar.gz
77+
asset_content_type: application/gzip

.github/workflows/main.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: GitHub Actions CI
2+
3+
on:
4+
push:
5+
branches: [ master, develop, main]
6+
paths-ignore:
7+
- '**.md'
8+
workflow_dispatch:
9+
10+
jobs:
11+
12+
########################################################################################
13+
make:
14+
name: Make
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
machine: [ubuntu-latest, macOS-12]
19+
runs-on: ['${{ matrix.machine }}']
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
submodules: recursive
25+
- name: make
26+
run: |
27+
g++ --version
28+
make -j CXX=g++-12
29+
30+
- name: tar artifacts
31+
run: tar -cvf lz-ani.tar ./lz-ani ./test
32+
33+
- uses: actions/upload-artifact@v4
34+
with:
35+
name: executable-artifact-${{ matrix.machine }}
36+
path: ./lz-ani.tar
37+
38+
########################################################################################
39+
vir61:
40+
needs: make
41+
name: Virus data
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
machine: [ubuntu-latest, macOS-12]
46+
runs-on: ['${{ matrix.machine }}']
47+
48+
steps:
49+
- uses: actions/download-artifact@v4
50+
with:
51+
name: executable-artifact-${{ matrix.machine }}
52+
path: ./
53+
54+
- name: untar artifacts
55+
run: |
56+
tar -xf lz-ani.tar
57+
58+
- name: build
59+
run: |
60+
./lz-ani all2all --in-dir ./test/vir61 --out ani.tsv
61+
cmp ani.tsv ./test/vir61.ani.tsv
62+

.github/workflows/self-hosted.yml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Self-hosted CI
2+
3+
on:
4+
pull_request:
5+
branches: [ master, develop, main ]
6+
paths-ignore:
7+
- '**.md'
8+
workflow_dispatch:
9+
10+
jobs:
11+
12+
########################################################################################
13+
checkout:
14+
name: Checkout
15+
strategy:
16+
matrix:
17+
machine: [tripper, arm64_linux, mac-i7, mac-m1]
18+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
19+
20+
steps:
21+
- uses: actions/checkout@v4
22+
with:
23+
submodules: recursive
24+
25+
26+
########################################################################################
27+
make:
28+
name: Make
29+
needs: checkout
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
machine: [tripper, arm64_linux, mac-i7, mac-m1]
34+
compiler: [12]
35+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
36+
37+
steps:
38+
- name: make (g++-${{matrix.compiler}})
39+
run: |
40+
make -j32 CXX=g++-${{matrix.compiler}}
41+
cp ./lz-ani ./lz-ani-${{matrix.compiler}}
42+
make clean
43+
44+
########################################################################################
45+
help:
46+
name: Print usage
47+
needs: make
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
machine: [tripper, arm64_linux, mac-i7, mac-m1]
52+
compiler: [12]
53+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
54+
55+
env:
56+
EXEC: ./lz-ani-${{matrix.compiler}}
57+
58+
steps:
59+
- name: help (g++-${{matrix.compiler}})
60+
run: |
61+
${EXEC}
62+
63+
64+
########################################################################################
65+
vir61:
66+
name: Vir61
67+
needs: help
68+
strategy:
69+
fail-fast: false
70+
matrix:
71+
machine: [tripper, arm64_linux, mac-i7, mac-m1]
72+
compiler: [12]
73+
runs-on: [self-hosted, lz-ani, '${{ matrix.machine }}']
74+
75+
env:
76+
EXEC: ./lz-ani-${{matrix.compiler}}
77+
78+
steps:
79+
80+
- name: all2all
81+
run: |
82+
${EXEC} all2all --in-dir ./test/vir61 --out ani.tsv
83+
cmp ani.tsv ./test/vir61.ani.tsv

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# LZ-ANI
2+
3+
![version](https://img.shields.io/badge/version-1.1.0-blue.svg)
4+
[![GitHub Actions CI](../../workflows/GitHub%20Actions%20CI/badge.svg)](../../actions/workflows/main.yml)
5+
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
6+
27
LZ-ANI is a fast and memory-efficient tool for determining average nucleotide identity (ANI) in large sets of genomic sequences. The tool uses Lempel-Ziv parsing, achieving high sensitivity in discerning matched and mismatched nucleotides, thereby enabling accurate determination of ANI. Its efficiency stems from a simplified indel handling model, making LZ-ANI magnitudes faster than alignment-based tools (e.g., BLASTn, MegaBLAST) while maintaining accuracy comparable to the most sensitive BLASTn searches.
38

49
LZ-ANI is a key component of [Vclust](https://github.com/refresh-bio/vclust), a tool for comparing and clustering virus genomes. Although optimized for virus genomes, LZ-ANI's parameters can be customized for longer genomes, such as those of bacteria and archaea.

test/vir61.ani.ids.tsv

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
id seq_len no_parts
2+
NC_020483.1 42084 1
3+
NC_028800.1 41698 1
4+
NC_023005.1 41386 1
5+
NC_011043.1 41181 1
6+
NC_028661.1 41149 1
7+
NC_013647.1 41119 1
8+
NC_028977.1 41054 1
9+
NC_015264.1 40973 1
10+
NC_015719.1 40940 1
11+
NC_028822.1 40829 1
12+
NC_028863.1 40477 1
13+
NC_024362.1 40472 1
14+
NC_031943.1 40470 1
15+
NC_023736.1 40411 1
16+
NC_021062.1 40192 1
17+
NC_028688.1 40114 1
18+
NC_001604.1 39937 1
19+
NC_022744.1 39860 1
20+
NC_011040.1 39816 1
21+
NC_007456.1 39704 1
22+
NC_031258.1 39696 1
23+
NC_023548.1 39651 1
24+
NC_031115.1 39616 1
25+
NC_001271.1 39600 1
26+
NC_015208.1 39562 1
27+
NC_007149.1 39503 1
28+
NC_011534.1 39472 1
29+
NC_031123.1 39444 1
30+
NC_031066.1 39434 1
31+
NC_019510.1 39282 1
32+
NC_031018.1 39274 1
33+
NC_015249.1 39270 1
34+
NC_011042.1 39252 1
35+
NC_028655.1 39235 1
36+
NC_031114.1 39235 1
37+
NC_023576.1 39207 1
38+
NC_027292.1 39167 1
39+
NC_015159.1 39162 1
40+
NC_031092.1 39158 1
41+
NC_028772.1 39133 1
42+
NC_024379.1 39093 1
43+
NC_031937.1 38979 1
44+
NC_023558.1 38966 1
45+
NC_011045.1 38841 1
46+
NC_010807.1 38815 1
47+
NC_027387.1 38810 1
48+
NC_011038.1 38677 1
49+
NC_025451.1 38646 1
50+
NC_028880.1 38625 1
51+
NC_023715.1 38616 1
52+
NC_008694.1 38564 1
53+
NC_019416.1 38513 1
54+
NC_013651.1 38497 1
55+
NC_011085.3 38457 1
56+
NC_015271.1 38368 1
57+
NC_003298.1 38208 1
58+
NC_028702.1 38084 1
59+
NC_004777.1 37555 1
60+
NC_004665.1 37359 1
61+
NC_029102.1 36051 1
62+
NC_028795.1 31522 1

0 commit comments

Comments
 (0)