Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
577 commits
Select commit Hold shift + click to select a range
1330fce
Merge remote-tracking branch 'origin/ngs' into trimAl
Apr 12, 2019
399d205
Updated AUTHORS to reflect current maintainer and updated affiliations
Apr 12, 2019
f4e9922
Merge branch 'trimAl' of https://github.com/Vicfero/trimal into Vicfe…
scapella May 3, 2019
e718e73
Merge branch 'Vicfero-trimAl' into 2.0_RC
scapella May 3, 2019
fb0eb74
Fixed the minimum cmake version required to compile trimAl
scapella May 3, 2019
3c5b178
Internal benchmarking is now deactivated by default.
scapella May 3, 2019
0eab54b
Merge pull request #50 from scapella/trimAl
scapella May 3, 2019
dde3983
Updated Authors and Build values. Also updated the Usage section on m…
May 8, 2019
0c02094
Address feedback https://github.com/scapella/trimal/pull/51#pullreque…
May 9, 2019
3d33da6
Solved an issue where additive gap stats were added for each gap stat…
May 10, 2019
a96bded
Merge pull request #51 from Vicfero/2.0_RC
scapella May 11, 2019
0698fc1
Include the tag "RC" as version. This is still a release candidate
scapella May 11, 2019
f8bed4f
Fix print correct input type in readAl
danieledler Nov 26, 2020
b4646ee
Add function to count the number of occurences of a character in a st…
althonos Apr 21, 2023
b7ce24d
Add method to get the length of a single sequence in `Alignment`
althonos Apr 21, 2023
365b839
Avoid building new string when computing a sequence length in `Cleane…
althonos Apr 21, 2023
eb52430
Use `memchr` to improve performance of `utils::countCharacter`
althonos Apr 21, 2023
cfc6c47
Correct functions descriptions
nicodr97 May 4, 2023
04181d8
Merge pull request #73 from althonos/count-character
nicodr97 May 4, 2023
423bfef
Rewrite alignment identity into a statistic managed by `statistics::M…
althonos Apr 21, 2023
5f6df54
Move overlap computation into a dedicated statistic class
althonos Apr 21, 2023
e640ba1
Avoid recomputing overlap vector in `calculateSpuriousVector`
althonos May 6, 2023
916ef8f
Add method to calculate spurious vector directly from `Manager`
althonos May 6, 2023
821fd7e
Fix call to `calculateSpuriousVec` in `cleanSpuriousSeq`
althonos May 6, 2023
13b54f1
Fix comment for `Overlap::overlaps` attribute
althonos May 6, 2023
ad4d093
Revert back to original implementations in `Overlap` statistics
althonos May 8, 2023
6da1fa0
Merge pull request #72 from althonos/identity-statistics
nicodr97 May 9, 2023
98074c4
Add utility methods to `similarityMatrix`
althonos Apr 20, 2023
95c18e5
Declare some methods as `virtual` to support overloading from SIMD va…
althonos Apr 20, 2023
9945a48
Add generic SIMD template with concrete SSE2 implementation
althonos May 9, 2023
e3c8bd9
Update CMake configuration to auto-detect SSE2 when building
althonos May 9, 2023
eba2273
Update `Manager` to use SSE2 implementation when supported
althonos May 9, 2023
9deab9e
Add AVX2 implementation of the SIMD code
althonos May 9, 2023
4b93bd3
Add SIMD implementation for Arm NEON
althonos May 9, 2023
dcd4260
Fix compilation on Arm NEON platforms
althonos May 9, 2023
8f183f2
Fix initialization of `Similarity` in `Manager::calculateConservation…
althonos May 9, 2023
94468fc
Fix `Manager::calculateSeqIdentity` not using SIMD implementation
althonos May 9, 2023
ea7e07f
Remove virtual destructor from `Cleaner`
althonos May 12, 2023
3a90d10
Mark `Identity` and `Overlap` destructors as virtual
althonos May 19, 2023
b01dde6
Fix detection of SIMD in `CMakeLists.txt`
althonos May 19, 2023
1587b07
Remove `virtual` qualifier from `Identity::calculateRelaxedSeqIdentity`
althonos May 19, 2023
3e9814b
Change order of AVX2 and SSE2 candidate flags in CMake scripts
althonos Jun 2, 2023
f229130
Update flags to disable SIMD extensions when building to fix AVX2 fla…
althonos Jun 5, 2023
31ef871
Stop execution on error in similarity calculation
nicodr97 Jun 13, 2023
0daf90c
Fix offset bug in overlap computation template
althonos Jun 16, 2023
c7e2e74
Merge pull request #75 from althonos/impl-simd2
nicodr97 Jun 19, 2023
30e5f5e
Update README.md with SIMD compilation
nicodr97 Jun 19, 2023
d70664d
Convert identities matrix to array
nicodr97 Jun 22, 2023
b39f0a3
Fix README.md compilation parameters
nicodr97 Jun 23, 2023
2e1172a
Update README.md
nicodr97 Jun 23, 2023
07a16a7
Add config file for github actions build
nicodr97 Jun 23, 2023
e922d5e
Add cmake to installation
nicodr97 Jun 23, 2023
e7b0682
Add NEON for aarch64
nicodr97 Jun 23, 2023
2de4bb9
Remove not compatible SIMDs
nicodr97 Jun 23, 2023
305382c
Add Github Actions workflow to build on Linux x86_64 and aarch64 and …
nicodr97 Jun 23, 2023
c859fb3
Revert "Add Github Actions workflow to build on Linux x86_64 and aarc…
nicodr97 Jun 23, 2023
8eb7358
Add Github Actions build file
nicodr97 Jun 23, 2023
870b1d2
Convert identities matrix to array
nicodr97 Jun 22, 2023
71f3eab
Remove comment
nicodr97 Jun 30, 2023
d1c6a06
Add CI tests
nicodr97 Jun 30, 2023
31516d6
Fix folder path
nicodr97 Jun 30, 2023
51ce0c7
Ignore error outputs on msa checks
nicodr97 Jun 30, 2023
658e699
Do not add suffix to output by default
nicodr97 Jun 30, 2023
4bd2df8
Merge pull request #80 from inab/CI_tests
nicodr97 Jul 3, 2023
33cb0d8
Fix identities array size limit
nicodr97 Jul 7, 2023
d514669
Fix index type to allow big MSAs
nicodr97 Jul 11, 2023
63ec4d5
Fix residue type counter variables type
nicodr97 Sep 13, 2023
dd9b7f9
Change variable types to fix memory issues
nicodr97 Sep 20, 2023
e6b7dfa
Check division by zero
nicodr97 Sep 20, 2023
54e36a7
Remove old files
nicodr97 Sep 20, 2023
1d4d0bc
Add readthedocs configuration files
nicodr97 Sep 21, 2023
62a6ced
Update conf file
nicodr97 Sep 21, 2023
24a9929
Add documentation text
nicodr97 Sep 21, 2023
7fa4669
Add html template
nicodr97 Sep 21, 2023
05c7e8e
Filter paths to run workflow on push and PR
nicodr97 Sep 22, 2023
0296981
Insert doxygen documenation into readthedocs
nicodr97 Sep 22, 2023
650d347
Move doxygen documentation to index.rst
nicodr97 Sep 22, 2023
568d253
Reset basid documenation for readthedocs
nicodr97 Sep 22, 2023
70e8883
Add some text to readthedocs
nicodr97 Sep 22, 2023
3a22357
Fix documentation links
nicodr97 Sep 22, 2023
cdeafa0
Fix documentation links
nicodr97 Sep 22, 2023
cba9c88
Replace two underscores with one
nicodr97 Sep 22, 2023
af01d14
Delete old webpage
nicodr97 Sep 26, 2023
7093b26
Add html title
nicodr97 Sep 26, 2023
f164b4c
Add title and index
nicodr97 Sep 26, 2023
3b0aa91
Remove old files
nicodr97 Sep 26, 2023
bc61a20
Add GitHub repo icon
nicodr97 Sep 26, 2023
e2aed33
Remove comments
nicodr97 Sep 26, 2023
22fad69
Fix version of old documentation
nicodr97 Sep 26, 2023
196fb48
Update README.md
nicodr97 Sep 27, 2023
e6b008f
Add introduction and installation
nicodr97 Sep 27, 2023
b03b2f9
Merge branch '2.0_RC' of https://github.com/inab/trimal into 2.0_RC
nicodr97 Sep 27, 2023
7578ab4
Remove GitHub icon underscore
nicodr97 Sep 27, 2023
411b3d3
Add publications, citing and contact
nicodr97 Sep 27, 2023
eb6574b
Add requirements file
nicodr97 Sep 27, 2023
5f25d27
Add section and usage content
nicodr97 Sep 27, 2023
8be758f
Separate installation and usage
nicodr97 Sep 28, 2023
6b3299d
Improve installation page and add copy button
nicodr97 Sep 28, 2023
060aa0d
Add copy button prompt to ignore
nicodr97 Sep 28, 2023
973a25c
Put command in block
nicodr97 Sep 28, 2023
fe8e96f
Replace char constant with uint constant
nicodr97 Oct 5, 2023
3bd6e3e
Fix lanes number comment
nicodr97 Oct 5, 2023
734ffa9
Refactor alternative matrix parameter
nicodr97 Oct 25, 2023
832cd8e
Update README.md
nicodr97 Nov 15, 2023
1c1e670
Create traffic.yml
nicodr97 Nov 15, 2023
1e2595b
Update traffic.yml
nicodr97 Nov 15, 2023
b61bd6b
Update traffic.yml
nicodr97 Nov 15, 2023
bbf7c78
Update traffic.yml
nicodr97 Nov 15, 2023
7ac2a44
Update traffic.yml
nicodr97 Nov 15, 2023
076b9c2
Delete .github/workflows/traffic.yml
nicodr97 Nov 23, 2023
cb896d8
Add Google verification file
nicodr97 Dec 20, 2023
e4cff83
Add draft manual
nicodr97 Dec 20, 2023
0889da9
Remove draft hmtl and add algorithms site
nicodr97 Dec 20, 2023
720e826
Fix format issues
nicodr97 Dec 20, 2023
26b1ba1
Add gap and identity score
nicodr97 Dec 20, 2023
4c67467
Change theme and author
nicodr97 Jan 8, 2024
3cd9315
Add theme package
nicodr97 Jan 8, 2024
81ae612
Comment BLOSUM62 matrix
nicodr97 Jan 9, 2024
8ee76ca
Add ambiguous amino acids
nicodr97 Jan 9, 2024
79aef25
Update residue type detection
nicodr97 Jan 10, 2024
c8a8e23
Update and complete residue detection and add tests
nicodr97 Jan 11, 2024
aa80c09
Add development team members
nicodr97 Jan 12, 2024
bfc8486
Fix typo and remove useless indices
nicodr97 Jan 12, 2024
971d9d7
Add installation instructions for version 1.4 and 2.0 (beta)
nicodr97 Jan 12, 2024
fd48f0c
Update version 2 status naming
nicodr97 Jan 12, 2024
38c5372
Add installation instructions for version 1.2
nicodr97 Jan 12, 2024
88a3a1b
Remove old version reference
nicodr97 Jan 15, 2024
cd632ff
Update copyright title
nicodr97 Jan 15, 2024
36fdec1
Update trimAl publication pdf link
nicodr97 Jan 15, 2024
a2a2690
Fix numbering in algorithm documentation
nicodr97 Jan 15, 2024
0405190
Add documentation for consistency score calculation
nicodr97 Jan 15, 2024
900d19f
Fix typos and add overlap score calculation
nicodr97 Jan 15, 2024
49694db
Remove overlap score calculation
nicodr97 Jan 15, 2024
cc53af1
Add window size explanation
nicodr97 Jan 15, 2024
020bbaf
Update variable name in column consistency score calculation
nicodr97 Jan 15, 2024
3d1258c
Refactor variable style in formulas
nicodr97 Jan 15, 2024
dcedf10
Update algorithm documentation
nicodr97 Jan 15, 2024
494897b
Change algorithms page to scores
nicodr97 Jan 15, 2024
c566e64
Change algorithms title and increase tree depth
nicodr97 Jan 15, 2024
cf8dc2b
Remove Codacy badge from README.md
nicodr97 Jan 16, 2024
c5200d1
Add trimming algorithms and gappyout method documentation
nicodr97 Jan 16, 2024
c21c9e1
Add methods to documentation
nicodr97 Jan 17, 2024
33d95cf
Update similarity threshold explanation
nicodr97 Jan 17, 2024
6d6d8ea
Update similarity threshold calculation
nicodr97 Jan 17, 2024
47f2c31
Move overlap trimming to manual methods
nicodr97 Jan 18, 2024
30f5a8d
Refactor similarity threshold calculation formula
nicodr97 Jan 18, 2024
a410f4b
Add overlap score
nicodr97 Jan 18, 2024
9e66d7e
Update citation format and allow direct copy
nicodr97 Jan 18, 2024
3c32dc3
Add supplementary material pdf
nicodr97 Jan 18, 2024
fc2ea46
Add benchmark analysis and increase page width
nicodr97 Jan 19, 2024
c0837ed
Add trimal_doc.css with max-width style
nicodr97 Jan 19, 2024
6463f91
Add benchmarking information
nicodr97 Jan 19, 2024
a79658b
Put v1.4 first in installation page
nicodr97 Jan 19, 2024
a309098
Mark v1.4 and v2 parameters
nicodr97 Jan 26, 2024
c598ae6
Add internal link to examples
nicodr97 Jan 26, 2024
b184890
Add missing label
nicodr97 Jan 26, 2024
6a19150
Separate sequences in documentation example
nicodr97 Jan 26, 2024
8f41d49
Add `cpu_features` library as a `git` submodule
althonos Jan 26, 2024
6a5f058
Update CMake files to compile and link `cpu_features` in `trimAl`
althonos Jan 26, 2024
22f586a
Add logic to `Manager` to detect supported SIMD features at runtime
althonos Jan 26, 2024
0ae5213
Setup statistics copy based off manager platform in `Manager::Manager`
althonos Jan 26, 2024
ee3cfb9
Initialize statistics for best available platform in `Manager`
althonos Jan 26, 2024
c2e46dd
Add debug message listing CPU extensions used in `Manager`
althonos Jan 26, 2024
4b6752c
Update `build.yml` Actions workflow to checkout `git` submodules
althonos Jan 27, 2024
1d81091
Fix inclusion of `cpu_features` headers based on target CPU
althonos Jan 27, 2024
daf6443
Fix detection of NEON on Arm platforms
althonos Feb 3, 2024
ec2d58c
Merge pull request #96 from althonos/impl-dispatch
nicodr97 Feb 5, 2024
c70f4d3
Update `LoadAlignment` of `BaseFormatHandler` to accept `istream` as …
althonos Feb 14, 2024
1528f18
Record alignment filename in `BaseFormatHandler::LoadAlignment`
althonos Feb 14, 2024
fc6adc1
Update all format handler implementations with `LoadAlignment(istream&)`
althonos Feb 14, 2024
d980f86
Remove duplicated `readLine` code for `istream` and `ifstream`
althonos Feb 14, 2024
e6990ef
Update `utils::readLine` to avoid allocating memory on every line
althonos Feb 14, 2024
77d0e09
Inform when no operation is done
nicodr97 Feb 20, 2024
57b1093
Add comment about warning with ARM
nicodr97 Feb 20, 2024
7bd7fd7
Update README.md
nicodr97 Feb 20, 2024
5ad8b51
Update README.md
nicodr97 Feb 20, 2024
6e4d37f
Update compilation text
nicodr97 Feb 20, 2024
6276a36
Merge branch '2.0_RC' of https://github.com/inab/trimal into 2.0_RC
nicodr97 Feb 20, 2024
b419ffc
Update authors and build date
nicodr97 Feb 20, 2024
f15a426
Add auto-selected SIMD compilation
nicodr97 Feb 21, 2024
0d1f074
Run workflow on configuration change
nicodr97 Feb 21, 2024
c7c6ace
Test x86 architecture
nicodr97 Feb 21, 2024
630451f
Add cmake package
nicodr97 Feb 21, 2024
58fc0cb
Add volumes
nicodr97 Feb 21, 2024
5b4c888
Check directories
nicodr97 Feb 21, 2024
7bfa7c7
Remove volumes
nicodr97 Feb 21, 2024
728e5a8
Add make package
nicodr97 Feb 21, 2024
a2ca418
Add gcc package
nicodr97 Feb 21, 2024
e44184c
Add g++
nicodr97 Feb 21, 2024
7c0ab20
Replace uint data type
nicodr97 Feb 21, 2024
c9bc549
Fix typo in comment
nicodr97 Feb 21, 2024
3b54ace
Add function for x86 architecture
nicodr97 Feb 21, 2024
6cc73d3
Add file package
nicodr97 Feb 21, 2024
50d877f
Use quotes to make script more portable
nicodr97 Feb 21, 2024
98772fa
Build and test on script change
nicodr97 Feb 21, 2024
d730aed
Fix x86 AVX2 function
nicodr97 Feb 21, 2024
ae78bbe
Add missing sums to AVX2 operation
nicodr97 Feb 21, 2024
bd5b218
Fix AVX2 function
nicodr97 Feb 21, 2024
2a8a553
Fix AVX2 function for x86 arch
nicodr97 Feb 21, 2024
7f6dc4f
Add missing bytes to sum function
nicodr97 Feb 21, 2024
8eda750
Update AVX2 sum function
nicodr97 Feb 22, 2024
8837625
Update sum function AVX
nicodr97 Feb 22, 2024
979c84b
Debug AVX2 sum function
nicodr97 Feb 22, 2024
b165a77
Test only one MSA
nicodr97 Feb 22, 2024
78df751
Generate only one trimmed MSA
nicodr97 Feb 22, 2024
389ba9d
Stop on first divergence between 32 and 64 bit AVX2
nicodr97 Feb 22, 2024
a540517
Fix debugging
nicodr97 Feb 22, 2024
de98d9b
Test only x86_64 AVX2
nicodr97 Feb 22, 2024
ad413fd
Comment debugging
nicodr97 Feb 22, 2024
9d0df6e
Test correct arch detection
nicodr97 Feb 22, 2024
e50ac8f
Check arch detection error
nicodr97 Feb 22, 2024
4172335
Add prints
nicodr97 Feb 22, 2024
24d0603
Change test MSA
nicodr97 Feb 22, 2024
6e5adf0
Another test
nicodr97 Feb 22, 2024
1267c16
Change macro if
nicodr97 Feb 22, 2024
5acf961
Add missing libraries
nicodr97 Feb 22, 2024
cb516e2
Reset all archs and cpu intructions
nicodr97 Feb 22, 2024
84fcbb0
Test example MSA 14
nicodr97 Feb 22, 2024
de07839
Remove MSAs for test
nicodr97 Feb 22, 2024
b3396c7
Add all test MSAs
nicodr97 Feb 23, 2024
23c075f
Update AVX2 sum function
nicodr97 Feb 23, 2024
1698868
Test only x86_64
nicodr97 Feb 23, 2024
9469eb3
Fix gap threshold in strict method calculations
nicodr97 Feb 27, 2024
464aef6
Update README.md
nicodr97 Feb 27, 2024
3226f92
Update README.md
nicodr97 Feb 27, 2024
4ca7510
Add command to download cpu_features submodule
nicodr97 Feb 27, 2024
f6892a9
Remove outdated comment lines from parser code
althonos Feb 27, 2024
3b3018c
Merge pull request #97 from althonos/stream-load
nicodr97 Feb 28, 2024
dd51f64
Ignore known different test MSAs
nicodr97 Feb 28, 2024
11ed3c2
Add aarch64 to build workflow
nicodr97 Feb 28, 2024
fc59219
Remove debugging log
nicodr97 Feb 28, 2024
15a9817
Make script alpine shell compatible
nicodr97 Feb 28, 2024
47ebee4
Add armv7 architecture and refactor build workflow
nicodr97 Feb 28, 2024
93c83c6
Add os matrix to test best arm simulator
nicodr97 Feb 28, 2024
7b23d4c
Avoid repeated jobs
nicodr97 Feb 28, 2024
12556cc
Add missing conditions
nicodr97 Feb 28, 2024
9e65ff7
Add missing flag to arm compilations
nicodr97 Feb 28, 2024
cb69033
Use alpine for arm arch
nicodr97 Feb 28, 2024
eb09557
Fix armv7 compilation parameters
nicodr97 Feb 29, 2024
d89ffc3
Add explanation for binaries and warning message
nicodr97 Mar 12, 2024
008fb5b
Add automated2 method
nicodr97 Aug 8, 2024
c83182b
Add test_msas folder to gitignore
nicodr97 Aug 8, 2024
8d6e082
Add automated2 trimmed MSAs
nicodr97 Aug 8, 2024
6629fe2
Merge pull request #59 from danieledler/2.0_RC
scapella Apr 1, 2025
af4a50b
Fix missing `stdint.h` includes necessary for `uint32_t` typedef
althonos Aug 18, 2025
e975b27
Fix uninitialized values and division-by-zero in `Cleaner::getCutPoin…
althonos Aug 18, 2025
a867405
Fix uninitialized local min/max accumulators in `Cleaner::getCutPoint…
althonos Aug 18, 2025
87207c3
Merge pull request #117 from althonos/fix-clusters
scapella Aug 18, 2025
d65a19d
Fix `for` loop brackets and average counter initializer in `Cleaner::…
althonos Aug 18, 2025
447ea91
Merge pull request #118 from althonos/2.0_RC
nicodr97 Aug 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
131 changes: 131 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
on:
push:
paths:
- '.github/workflows/build.yml'
- 'CMakeLists.txt'
- 'dataset/**'
- 'include/**'
- 'source/**'
- 'scripts/**'
- 'tests/**'
pull_request:
paths:
- '.github/workflows/build.yml'
- 'CMakeLists.txt'
- 'dataset/**'
- 'include/**'
- 'scripts/**'
- 'source/**'
- 'tests/**'
name: Build

jobs:
build_and_test:
runs-on: ubuntu-20.04
strategy:
matrix:
arch: [x86, x86_64, armv7, aarch64]
cpu_instr: [non-SIMD, SSE2, auto-selected]

steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup Alpine Linux for x86
if: matrix.arch == 'x86'
uses: jirutka/setup-alpine@v1
with:
arch: x86
packages: >
cmake
file
g++
make
shell-name: alpine-x86.sh

- name: Build trimal for Linux x86
if: matrix.arch == 'x86' && matrix.cpu_instr == 'non-SIMD'
run: cmake . -DDISABLE_SSE2=1 -DDISABLE_AVX2=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
shell: alpine-x86.sh {0}
- name: Build trimal for Linux x86 and SSE2
if: matrix.arch == 'x86' && matrix.cpu_instr == 'SSE2'
run: cmake . -DDISABLE_AVX2=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
shell: alpine-x86.sh {0}
- name: Build trimal for Linux x86 and auto-selected SIMD (AVX2 if available)
if: matrix.arch == 'x86' && matrix.cpu_instr == 'auto-selected'
run: cmake . && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
shell: alpine-x86.sh {0}

- name: Build trimal for Linux x86_64
if: matrix.arch == 'x86_64' && matrix.cpu_instr == 'non-SIMD'
run: cmake . -DDISABLE_SSE2=1 -DDISABLE_AVX2=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
- name: Build trimal for Linux x86_64 and SSE2
if: matrix.arch == 'x86_64' && matrix.cpu_instr == 'SSE2'
run: cmake . -DDISABLE_AVX2=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
- name: Build trimal for Linux x86_64 and auto-selected SIMD (AVX2 if available)
if: matrix.arch == 'x86_64' && matrix.cpu_instr == 'auto-selected'
run: cmake . && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh

- name: Setup Alpine Linux for armv7
if: matrix.arch == 'armv7'
uses: jirutka/setup-alpine@v1
with:
arch: armv7
packages: >
cmake
file
g++
make
shell-name: alpine-armv7.sh

- name: Build trimal for Linux armv7
if: matrix.arch == 'armv7' && matrix.cpu_instr == 'non-SIMD'
run: cmake . -DDISABLE_NEON=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
shell: alpine-armv7.sh {0}
- name: Build trimal for Linux armv7 and auto-selected SIMD (NEON)
if: matrix.arch == 'armv7' && matrix.cpu_instr == 'auto-selected'
run: cmake . && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
shell: alpine-armv7.sh {0}

- name: Build trimal for Linux aarch64
if: matrix.arch == 'aarch64' && matrix.cpu_instr == 'non-SIMD'
uses: uraimo/run-on-arch-action@v2
# Emulate ARM architecture since it's not natively supported by GitHub.
# Warning about image and host platforms not matching may be ignored (https://github.com/uraimo/run-on-arch-action/issues/127#issuecomment-1605691328)
with:
arch: ${{ matrix.arch }}
distro: ubuntu20.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}:/trimal"
install: |
apt-get update -q -y
apt-get install -q -y cmake make g++ file
run: |
cmake . -DDISABLE_NEON=1 && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
- name: Build trimal for Linux aarch64 and auto-selected SIMD (NEON)
if: matrix.arch == 'aarch64' && matrix.cpu_instr == 'auto-selected'
uses: uraimo/run-on-arch-action@v2
# Emulate ARM architecture since it's not natively supported by GitHub.
# Warning about image and host platforms not matching may be ignored (https://github.com/uraimo/run-on-arch-action/issues/127#issuecomment-1605691328)
with:
arch: ${{ matrix.arch }}
distro: ubuntu20.04
githubToken: ${{ github.token }}
dockerRunArgs: |
--volume "${PWD}:/trimal"
install: |
apt-get update -q -y
apt-get install -q -y cmake make g++ file
run: |
cmake . && make && file bin/trimal && file bin/readal &&
./scripts/generate_trimmed_msas.sh && ./scripts/compare_trimmed_msas.sh
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#.gitignore
*.svg
*.pdf
*.zip
*.save
*.user
*.cbp
*kdev*
*.json
*.css
*.tcl
.idea*

*Makefile*
*Cache*

bin
build
CMakeFiles
Testing
dev_files
test_msas

CTestTestfile.cmake
cmake_install.cmake

source/Catch/test_generated_alignment.cpp
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "vendor/cpu_features"]
path = vendor/cpu_features
url = https://github.com/google/cpu_features
35 changes: 35 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt
32 changes: 23 additions & 9 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
** Authors **
* Authors*
Victor Fernandez Rodriguez.
INB Hub. Life Sciences Department.
Barcelona Supercomputing Center (BSC). Barcelona, Spain.
e-mail: victor.fernandez _at_ bsc.es

Salvador Capella-Gutierrez.
Comparative Genomics Group. Bioinformatics and Genomics Department.
Centre for Genomic Regulation. Barcelona, Spain.
e-mail: scapella _at_ crg.es
INB Hub. Life Sciences Department.
Barcelona Supercomputing Center (BSC). Barcelona, Spain.
e-mail: salvador.capella _at_ bsc.es

Toni Gabaldón.
Comparative Genomics Group. Bioinformatics and Genomics Department.
Centre for Genomic Regulation. Barcelona, Spain.
e-mail: tgabaldon _at_ crg.es
Comparative Genomics Group. Life Sciences Department.
Barcelona Supercomputing Center (BSC). Barcelona, Spain.
e-mail: toni.gabaldon _at_ bsc.es

** Authors (until trimAl v1.1) **
** Up to trimAl v1.4 **
Salvador Capella-Gutierrez.
Comparative Genomics Group. Bioinformatics and Genomics Department.
Centre for Genomic Regulation. Barcelona, Spain.
e-mail: scapella _at_ crg.es

Toni Gabaldón.
Comparative Genomics Group. Bioinformatics and Genomics Department.
Centre for Genomic Regulation. Barcelona, Spain.
e-mail: tgabaldon _at_ crg.es

** Up to trimAl v1.1 **
Jose Ma. Silla-Martínez.
e-mail: josilma1 _at_ gmail.com
e-mail: josilma1 _at_ gmail.com
96 changes: 96 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
cmake_minimum_required(VERSION 3.13.3)
project(trimAl)

# Make project C++ 11
set(CMAKE_CXX_STANDARD 11)

# Specify bin folder to output the compiled programs
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)

# Set common files for all executables
set(TRIMAL_OBJECTS
$<TARGET_OBJECTS:CoreOBJLib>
$<TARGET_OBJECTS:FormatsOBJLib>
$<TARGET_OBJECTS:FormatHandlerOBJLib>
$<TARGET_OBJECTS:ReportSystemOBJLib>
$<TARGET_OBJECTS:StatisticOBJLib>
$<TARGET_OBJECTS:UtilsOBJLib>
$<TARGET_OBJECTS:InternalBenchmarkOBJLib>)

# Scripts to detect various SIMD support for the current compiler
if (NOT DISABLE_AVX2)
include("./scripts/CMake/FindAVX2.cmake")
endif()
if (NOT DISABLE_NEON)
include("./scripts/CMake/FindNEON.cmake")
endif()
if (NOT DISABLE_SSE2)
include("./scripts/CMake/FindSSE2.cmake")
endif()

# Add SIMD code if compiler supports it
if (HAVE_SSE2)
list(APPEND TRIMAL_OBJECTS $<TARGET_OBJECTS:SSE2OBJLib>)
endif()
if (HAVE_AVX2)
list(APPEND TRIMAL_OBJECTS $<TARGET_OBJECTS:AVX2OBJLib>)
endif()
if (HAVE_NEON)
list(APPEND TRIMAL_OBJECTS $<TARGET_OBJECTS:NEONOBJLib>)
endif()

# Add the executables to the project.
add_executable(trimal
source/trimAlMain.cpp # Main
source/trimalManager.cpp # trimAl Manager

source/VCFHandler.cpp # VCF only present on trimAl
${TRIMAL_OBJECTS})

add_executable(readal
source/FormatHandling/readAlMain.cpp # Main

${TRIMAL_OBJECTS})

# Add the executables to the project.
add_executable(test
tests/testMain.cpp
tests/catch.hpp
source/trimalManager.cpp # trimAl Manager

source/VCFHandler.cpp # VCF only present on trimAl
${TRIMAL_OBJECTS})
SET_TARGET_PROPERTIES(test PROPERTIES EXCLUDE_FROM_ALL True)

# Add `cpu_features` for detecting supported SIMD at compile time
add_subdirectory(vendor/cpu_features)
include_directories(vendor/cpu_features/include)
target_link_libraries(trimal cpu_features)
target_link_libraries(readal cpu_features)

# Link the mathematical library to the targets
target_link_libraries(trimal m)
target_link_libraries(readal m)

target_link_libraries(test stdc++fs)

# Script that sets Release type to default and prints information on configuration
include("./scripts/CMake/BuildTypeWrapper.cmake")

# Script to handle static and dynamic compilation.
# Static compilation is useful if compiling for containers without SO
include("./scripts/CMake/staticCompilationWrapper.cmake")

# Script to create intermediate OBJLib objects to include in targets
include("./scripts/CMake/OBJ-LIB-creator.cmake")

# Script to configure the overwrite policy of the format manager:
# - Overwrite and warn.
# - Dont overwrite unless needed. If needed, overwrite original.
# - Dont overwrite unless needed. If needed, overwrite last available.
include("./scripts/CMake/FormatHandlerOverwritePolicy.cmake")

# Script to create the Format Handler constructor, which incorporates
# all found stats to the internal pool of the handler
include("./scripts/CMake/FormatHandlerHeaderCreator.cmake")

8 changes: 8 additions & 0 deletions DockerFolder/Dockerfile.readAl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM scratch

#COPY bin/new_trimal /trimal
COPY bin/readalMS /readal
#COPY bin/statal /statal
#COPY bin/launcher /main

ENTRYPOINT ["/readal"]
8 changes: 8 additions & 0 deletions DockerFolder/Dockerfile.statAl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM scratch

#COPY bin/new_trimal /trimal
#COPY bin/readalMS /readal
COPY bin/statal /statal
#COPY bin/launcher /main

ENTRYPOINT ["/statal"]
8 changes: 8 additions & 0 deletions DockerFolder/Dockerfile.trimAl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM scratch

COPY bin/new_trimal /trimal
#COPY bin/readalMS /readal
#COPY bin/statal /statal
#COPY bin/launcher /main

ENTRYPOINT ["/trimal"]
Loading
Loading