Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to version 3.0 #291

Merged
merged 246 commits into from
Jan 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
7c540cd
Modify to use pyjar
nickjcroucher Nov 6, 2020
a6064f1
Integrate pyjar into reconstruction
nickjcroucher Nov 23, 2020
d318008
Enable mar
nickjcroucher Nov 23, 2020
653892d
Remove unnecessary pyjar code
nickjcroucher Nov 24, 2020
b84c3a6
Improve efficiency of alignment processing
nickjcroucher Nov 24, 2020
55a39de
Extract function for reconstructing individual columns
nickjcroucher Nov 24, 2020
0bc2839
Tidy up column reconstruction
nickjcroucher Nov 24, 2020
0ea6235
Convert base reconstruction to pool
nickjcroucher Nov 24, 2020
4ffb71d
Prepare for sharedmem implementation
nickjcroucher Nov 24, 2020
9833e0a
Pass through number of threads to use to pyjar
nickjcroucher Nov 24, 2020
37097ad
Parallelisation used shared memory
nickjcroucher Nov 24, 2020
912c765
Improve parallelisation job definition
nickjcroucher Nov 24, 2020
b015280
Improve phylogeny SNP detection
nickjcroucher Nov 24, 2020
07e5f53
Changed access to shared memory object
nickjcroucher Nov 25, 2020
91e25d6
Improve efficiency of new alignment creation
nickjcroucher Nov 25, 2020
0ae23cd
Heuristic for faster reconstruction
nickjcroucher Nov 25, 2020
5f6fd3e
Tidy up parallelisation code
nickjcroucher Nov 25, 2020
b1e2286
Enable use of iqtree
nickjcroucher Nov 25, 2020
7456ad8
Enable ASR with fasttree
nickjcroucher Nov 25, 2020
e22c4f8
Add validation for parameter value extraction
nickjcroucher Nov 25, 2020
39efe88
Controlled parameterisation of Fasttree
nickjcroucher Nov 25, 2020
31a94a8
Enable use of rapidnj
nickjcroucher Nov 26, 2020
45bd236
Enable use of raxml to fit models
nickjcroucher Nov 26, 2020
5ee84db
Enable model fitting with fasttree
nickjcroucher Nov 26, 2020
d00dc13
Reorganise help message
nickjcroucher Nov 26, 2020
b0cd491
More flexible algorithm selection
nickjcroucher Nov 27, 2020
049d1ec
Added flexibility to Fasttree
nickjcroucher Nov 28, 2020
3f1fc82
Allow for use of different substitution models with fasttree
nickjcroucher Nov 28, 2020
84664ea
Altered model options for raxml
nickjcroucher Nov 28, 2020
51d1c7e
Fix RAxML naming clash
nickjcroucher Nov 28, 2020
3461b36
Update rapidnj object
nickjcroucher Nov 28, 2020
487c563
Allow for selection of initial tree builder
nickjcroucher Nov 28, 2020
f4e81a5
Added option to use a starting star phylogeny
nickjcroucher Nov 29, 2020
b0449ef
Enable pairwise comparisons
nickjcroucher Nov 29, 2020
61a668c
Add nucleotide substitution models
nickjcroucher Nov 29, 2020
eecdc17
Allow more flexible use of substitution models
nickjcroucher Nov 29, 2020
6c1b1fc
Process input arguments sensibly
nickjcroucher Nov 30, 2020
66507ab
Update tree building command line options
nickjcroucher Dec 2, 2020
020ecb0
Reconstruct sequences on optimised tree
nickjcroucher Dec 2, 2020
47ce42a
Use unrooted tree for IQtree ASR
nickjcroucher Dec 2, 2020
8e99b08
Tidy up unrooting function
nickjcroucher Dec 3, 2020
e9bf2ca
Fix for pyjar
nickjcroucher Dec 3, 2020
48da88e
Minor code tidying
nickjcroucher Dec 4, 2020
23ad59a
Shared memory for base positions
nickjcroucher Dec 5, 2020
d341ad7
Improved use of numpy data structures
nickjcroucher Dec 6, 2020
f78d43d
Merge pull request #2 from nickjcroucher/numpy_base_patterns
nickjcroucher Dec 6, 2020
c95e6a5
Merge pull request #4 from nickjcroucher/numpy_base_patterns
nickjcroucher Dec 6, 2020
975685d
Simplify numpy data processing
nickjcroucher Dec 6, 2020
75e30e5
Merge pull request #5 from nickjcroucher/numpy_base_patterns
nickjcroucher Dec 6, 2020
a4b0f5d
Tidy up parallelisation
nickjcroucher Dec 6, 2020
d8f2828
Enable greater flexibility in model selection
nickjcroucher Dec 6, 2020
e376f09
Allow input of custom models
nickjcroucher Dec 6, 2020
acabc1a
Allow extra arguments to be passed to algorithms
nickjcroucher Dec 7, 2020
ed3b6ea
Added bootstrapping for rapidnj
nickjcroucher Dec 7, 2020
7641e29
Add raxml bootstrapping
nickjcroucher Dec 7, 2020
6b76dde
Add iqtree bootstrap
nickjcroucher Dec 8, 2020
f191407
Tidy up raxml bootstraps
nickjcroucher Dec 8, 2020
c58c111
Rapidnj bootstrap tidied up
nickjcroucher Dec 8, 2020
fb37b4b
Add Fasttree bootstrapping
nickjcroucher Dec 8, 2020
2930ff2
Add SH tests for ML methods
nickjcroucher Dec 8, 2020
1bd685c
Tidy up iqtree SH tests
nickjcroucher Dec 8, 2020
ab51d82
Add input argument processing
nickjcroucher Dec 8, 2020
8e909e7
Tidy up shared memory objects
nickjcroucher Dec 8, 2020
82e984c
Tidy up input options
nickjcroucher Dec 8, 2020
90f460f
Add installation requirements needed for shared memory objects
nickjcroucher Dec 8, 2020
32266ae
Increase python version
nickjcroucher Dec 9, 2020
f34c4fe
Further checking of input arguments
nickjcroucher Dec 9, 2020
0c135a2
Added in raxmlng as a tree builder
nickjcroucher Dec 11, 2020
72e6cf0
Enable sequence reconstruction with RAxML-NG
nickjcroucher Dec 11, 2020
26ea7af
Enable sequence reconstruction with RAxML-NG
nickjcroucher Dec 11, 2020
183e1ad
Enable bootstraps with RAxML-NG
nickjcroucher Dec 11, 2020
92bea14
Bootstrap annotation using RAxML-NG as a utility
nickjcroucher Dec 11, 2020
611ff45
Add transfer bootstrap expectation
nickjcroucher Dec 11, 2020
97c7d0a
Simplify alignment naming
nickjcroucher Dec 11, 2020
0919caa
Simplify reconstruction filename code
nickjcroucher Dec 11, 2020
669a042
Simplify bootstrap command
nickjcroucher Dec 13, 2020
62d0ee7
Tidy up pyjar code
nickjcroucher Dec 13, 2020
c646c53
Add methods logging
nickjcroucher Dec 17, 2020
1204660
Minor fixes to file names
nickjcroucher Dec 17, 2020
26104eb
Allow for a different model fitter
nickjcroucher Dec 17, 2020
58e8565
Simplify algorithm selection code
nickjcroucher Dec 18, 2020
d994063
Merge branch 'master' into pyjar
nickjcroucher Dec 18, 2020
e817f2d
Merge pull request #6 from nickjcroucher/pyjar
nickjcroucher Dec 18, 2020
b0261b0
Merge branch 'master' of https://github.com/sanger-pathogens/gubbins …
nickjcroucher Dec 18, 2020
8399ebd
Resolve conflicts before merging with original repository
nickjcroucher Dec 18, 2020
5829f1c
Update dependency installation script
nickjcroucher Dec 18, 2020
4a9835f
Apply patch gubbins_exe_in_usr_lib.patch
nickjcroucher Dec 18, 2020
9cef4bd
Merge pull request #8 from nickjcroucher/patching
nickjcroucher Dec 18, 2020
890aa8f
Update dockerfile
nickjcroucher Dec 19, 2020
1d578f1
Merge pull request #9 from nickjcroucher/docker
nickjcroucher Dec 19, 2020
ccc7a52
Apply patch spelling-error-in-binary.patch
nickjcroucher Dec 20, 2020
f608316
Merge pull request #10 from nickjcroucher/patching
nickjcroucher Dec 20, 2020
c456cc7
Update tree builder versions in Dockerfile
nickjcroucher Dec 20, 2020
57b6887
Merge pull request #11 from nickjcroucher/docker
nickjcroucher Dec 20, 2020
e510adb
Github actions for CI
nickjcroucher Dec 20, 2020
9f0ed1f
Temporary testing change
nickjcroucher Dec 20, 2020
5e6bfdd
Remove travis CI
nickjcroucher Dec 20, 2020
c37781a
Add Github actions yml
nickjcroucher Dec 21, 2020
169f6bf
Reformat python test
nickjcroucher Dec 21, 2020
4735edc
Define linux test
nickjcroucher Dec 21, 2020
54dd44f
Remove missing packages from environment.yml
nickjcroucher Dec 21, 2020
116bdb3
Change check installation
nickjcroucher Dec 21, 2020
b1f8ea4
Change check installation
nickjcroucher Dec 22, 2020
04f64c4
Remove old test command file
nickjcroucher Dec 22, 2020
2085131
Use sudo for installation of check
nickjcroucher Dec 22, 2020
31d3201
Use autoreconf for check installation
nickjcroucher Dec 22, 2020
de77725
Install subunit as part of checks
nickjcroucher Dec 22, 2020
1b9c005
Fix to subunit installation
nickjcroucher Dec 22, 2020
3b9ba29
Add cpuunit installation
nickjcroucher Dec 22, 2020
9b70abf
Change cpuunit installation
nickjcroucher Dec 22, 2020
8129a8a
Add cpuunit configuration
nickjcroucher Dec 22, 2020
92f937c
Reorder installations
nickjcroucher Dec 22, 2020
c089291
Ensure C++ tests use defined, non-obsolete functions
nickjcroucher Dec 23, 2020
fc01de8
Edit ck_assert commands
nickjcroucher Dec 23, 2020
0ed2ed4
Add OSX test
nickjcroucher Dec 27, 2020
379cd98
Change conda location in OSX test
nickjcroucher Dec 27, 2020
1745220
Add conda install automake autoconf libtool for OSX
nickjcroucher Dec 27, 2020
dd3c16a
Add conda install pkg-config openssl libevent for OSX
nickjcroucher Dec 27, 2020
7d3e540
Add conda install berkeley-db4 boost boost-build for OSX
nickjcroucher Dec 27, 2020
6e37d4e
Remove missing packages for conda install for OSX
nickjcroucher Dec 27, 2020
7f954d5
Use apt install for OSX
nickjcroucher Dec 27, 2020
94a317b
Use homebrew install for OSX
nickjcroucher Dec 27, 2020
01c0b12
Add wheel as dependency
nickjcroucher Dec 27, 2020
7b04310
Add wheel as a conda dependency
nickjcroucher Dec 27, 2020
cf4d2e6
Add wheel to setup.py
nickjcroucher Dec 27, 2020
f28af88
Add pip install wheel to setup.py
nickjcroucher Dec 27, 2020
eab6336
Add pip install scipy to setup.py
nickjcroucher Dec 27, 2020
04ee185
Update python test scripts
nickjcroucher Dec 27, 2020
6a2ff08
Use pytest
nickjcroucher Dec 27, 2020
fed7d7e
Fix conda env name
nickjcroucher Dec 27, 2020
a83cf24
Change conda use for installation
nickjcroucher Dec 28, 2020
b1be526
Change cppunit installation
nickjcroucher Dec 28, 2020
7ae1c76
Change cppunit installation
nickjcroucher Dec 28, 2020
1ff1087
Change subunit configuration
nickjcroucher Dec 28, 2020
80797a0
Change subunit cppunit flags
nickjcroucher Dec 28, 2020
fa8207c
Use installation from source
nickjcroucher Dec 28, 2020
782f69a
Add dendropy as a dependency and change error reporting
nickjcroucher Dec 29, 2020
c1c6b83
Additions to env
nickjcroucher Dec 29, 2020
de10a3d
Remove functools from env
nickjcroucher Dec 29, 2020
46d9482
Change libcheck install prefix
nickjcroucher Dec 29, 2020
4568afc
Change libcheck install prefix to conda env
nickjcroucher Dec 29, 2020
0b8ff4a
Add conda to make search path
nickjcroucher Dec 29, 2020
cc088dd
Reformat flags for libtools
nickjcroucher Dec 29, 2020
5c58d13
Restore cppunit source installation for OSX
nickjcroucher Dec 29, 2020
50682c3
Change library search path
nickjcroucher Dec 29, 2020
7849018
Consistent install paths for OSX
nickjcroucher Dec 29, 2020
ba95462
Add further flags for subunit
nickjcroucher Dec 30, 2020
b46873d
Add further flags for subunit
nickjcroucher Dec 30, 2020
0945650
Add flags to gubbins configure
nickjcroucher Dec 30, 2020
b2ae16e
Fix gubbins configure flags
nickjcroucher Dec 30, 2020
c26bffd
Change gubbins make flags for OSX
nickjcroucher Dec 31, 2020
619ab07
Remove source installations from OSX
nickjcroucher Dec 31, 2020
d20d791
Change flags to autoconfigure
nickjcroucher Dec 31, 2020
07c84b8
Change flags to autoconfigure for Linux
nickjcroucher Dec 31, 2020
62ed708
Remove rendundancy in installation
nickjcroucher Jan 1, 2021
1017f00
Edit flags for Linux installation
nickjcroucher Jan 1, 2021
a309851
Edit flags for cppunit Linux installation
nickjcroucher Jan 1, 2021
db3bb62
Restore cppunit Linux installation
nickjcroucher Jan 1, 2021
c2b08d1
Restore cppunit installation
nickjcroucher Jan 1, 2021
116977d
Fix cppunit installation
nickjcroucher Jan 1, 2021
a4e9a6c
Remove unnecessary packages
nickjcroucher Jan 1, 2021
4f5c084
Prepare for merge with master
nickjcroucher Jan 1, 2021
6b4883d
Merge pull request #12 from nickjcroucher/ci_switch
nickjcroucher Jan 1, 2021
966f78a
Test how many errors are due to version not being established
nickjcroucher Jan 1, 2021
910e463
Remove obsolete tests
nickjcroucher Jan 1, 2021
f00ace0
Update expected file outputs
nickjcroucher Jan 1, 2021
f9c0c52
Inactivate test for 3 sequences in alignment
nickjcroucher Jan 1, 2021
113d85b
Update test tree builders
nickjcroucher Jan 1, 2021
5c9acbd
Change tree_method file names
nickjcroucher Jan 1, 2021
72dcaea
Make test tree names consistent
nickjcroucher Jan 2, 2021
ce424ab
Update comparator for midpoint rooting tests
nickjcroucher Jan 2, 2021
5b6c8b7
Update bifurcation test result
nickjcroucher Jan 2, 2021
46a89a8
Move test file
nickjcroucher Jan 3, 2021
ee2b692
Pass extra arguments to IQtree builder in test
nickjcroucher Jan 3, 2021
0d97fd5
Fix prefix for RAxML reconstruction
nickjcroucher Jan 3, 2021
b20aa88
Update package metadata
nickjcroucher Jan 3, 2021
2be3dbb
Fix clean up test
nickjcroucher Jan 3, 2021
cc4d718
Fix to Debian bug #971111
nickjcroucher Jan 4, 2021
df93d33
Remove pkg_resources dependency
nickjcroucher Jan 4, 2021
1b91b8e
Update regex search strings
nickjcroucher Jan 4, 2021
256c58c
Restore pkg_resources as dependency of subunit
nickjcroucher Jan 4, 2021
320c5b8
Fix environment.yml typo
nickjcroucher Jan 4, 2021
3960c7b
Restore working linux subunit installation
nickjcroucher Jan 4, 2021
156857c
Remove pkg_resources error
nickjcroucher Jan 4, 2021
60bace2
Update linux installation commands
nickjcroucher Jan 4, 2021
a1d2f1a
Change imports into common.py
nickjcroucher Jan 4, 2021
7ff1ffb
Fix description function
nickjcroucher Jan 4, 2021
4d94df4
Change codecov installation on linux
nickjcroucher Jan 4, 2021
cbfec18
Change version handling
nickjcroucher Jan 4, 2021
dbf1f77
Update codecov settings
nickjcroucher Jan 4, 2021
b3313da
Add installation of pytest-cov
nickjcroucher Jan 4, 2021
76fbea3
Remove codecov command
nickjcroucher Jan 4, 2021
5e35e9e
Move run_gubbins.py
nickjcroucher Jan 4, 2021
be6ae19
Fix raxmlng model fitting file names
nickjcroucher Jan 4, 2021
7555f05
Remove unnecessary import
nickjcroucher Jan 4, 2021
78dff3d
Remove unneeded file
nickjcroucher Jan 4, 2021
d5eccea
Add model fitting tests
nickjcroucher Jan 4, 2021
0ad0a85
Remove obsolete scripts directory
nickjcroucher Jan 4, 2021
1d2d105
Restructure runner script
nickjcroucher Jan 4, 2021
24379be
Change version retrieval
nickjcroucher Jan 4, 2021
76e6e0b
Remove scripts dir reference from makefile
nickjcroucher Jan 5, 2021
526500c
Fix null pointer warning in test
nickjcroucher Jan 5, 2021
856a1cb
Bump version
nickjcroucher Jan 5, 2021
b7dac21
Change to python 3.x and fix ambiguous test
nickjcroucher Jan 5, 2021
496cb05
Fix code coverage command for python tests
nickjcroucher Jan 5, 2021
ebc52d4
Change coverage calculation for python code
nickjcroucher Jan 5, 2021
5d220dd
Change python testing to use consistent python version
nickjcroucher Jan 5, 2021
a32154c
Change paths for testing files
nickjcroucher Jan 5, 2021
817a1da
Change handling of file paths in tests
nickjcroucher Jan 5, 2021
68083f6
Further fixes to test data paths
nickjcroucher Jan 5, 2021
d0dcf8a
Make tests give verbose outputs
nickjcroucher Jan 5, 2021
01ea19a
Extra clean up for tests
nickjcroucher Jan 5, 2021
affad5f
Extra clean up for tests
nickjcroucher Jan 5, 2021
3180e27
Make clean up test verbose
nickjcroucher Jan 5, 2021
30221f6
Fix clean up test
nickjcroucher Jan 5, 2021
6cc85a7
Test for RAxML-specific problems
nickjcroucher Jan 5, 2021
2e21266
Exit when unable to find suitable RAxML software
nickjcroucher Jan 5, 2021
7895b7e
Define working directory
nickjcroucher Jan 5, 2021
d72efa3
Refine clean up function
nickjcroucher Jan 5, 2021
eb3a880
Fix clean up function
nickjcroucher Jan 5, 2021
7c3048e
Fix clean up function
nickjcroucher Jan 5, 2021
12b9189
Multi-thread tests
nickjcroucher Jan 5, 2021
3e478b2
Update code for selecting RAxML algorithm based on CPU
nickjcroucher Jan 5, 2021
83f4316
Simplify code coverage upload
nickjcroucher Jan 5, 2021
0dbe412
Change names of intermediate files
nickjcroucher Jan 6, 2021
e7b7fb4
Introduce bootstrapping tests
nickjcroucher Jan 6, 2021
f34b0dd
Update help message
nickjcroucher Jan 7, 2021
cf21522
Use shutil to move file
nickjcroucher Jan 19, 2021
2377005
Remove Makefile.in
nickjcroucher Jan 19, 2021
aa75c84
Specify versions in environment.yml
nickjcroucher Jan 19, 2021
d8be9e1
Add missing dependencies to installation files
nickjcroucher Jan 19, 2021
77883a8
Improve memory management error message
nickjcroucher Jan 19, 2021
51f3c46
Change menu options
nickjcroucher Jan 19, 2021
35b99bb
apt-get only run with Linux
nickjcroucher Jan 19, 2021
8964a69
Remove downloaded files
nickjcroucher Jan 19, 2021
35ee8fe
Make raxmlng test more stable
nickjcroucher Jan 19, 2021
688425d
Clarify menu options
nickjcroucher Jan 25, 2021
f355825
Remove version from __init__
nickjcroucher Jan 25, 2021
5577a74
Add to path for package search
nickjcroucher Jan 25, 2021
abed3bc
Append to PATH before installation
nickjcroucher Jan 25, 2021
a9c9026
Edit threads argument description
nickjcroucher Jan 25, 2021
4474151
Merge version information
nickjcroucher Jan 27, 2021
cae86c5
Add make install to testing
nickjcroucher Jan 27, 2021
5c87c32
Try sudo install
nickjcroucher Jan 27, 2021
1be6b5b
Change install prefix
nickjcroucher Jan 27, 2021
2974f5f
Tidy up installation and version parsing
nickjcroucher Jan 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
on:
push:
branches:
- master

name: Push test

jobs:

test-osx:
runs-on: macos-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies with conda
run: |
sudo chown -R $UID $CONDA && source $CONDA/etc/profile.d/conda.sh && conda env update --file environment.yml
- name: Install subunit from source
run: |
source $CONDA/etc/profile.d/conda.sh && conda activate gubbins_env && export LDFLAGS="-L${CONDA_PREFIX}/lib/ -Wl,-rpath,${CONDA_PREFIX}/lib/" && export CFLAGS="-I${CONDA_PREFIX}/include/" && export CPPUNIT_CFLAGS="-I${CONDA_PREFIX}/include/" && export CPPUNIT_LIBS="-L${CONDA_PREFIX}/lib/" && git clone https://github.com/testing-cabal/subunit.git && cd subunit && autoreconf -vi && CXXFLAGS="${CXXFLAGS} -I${CONDA_PREFIX}/include/" LDFLAGS="${LDFLAGS} -L${CONDA_PREFIX}/lib/ -lcppunit" ./configure --prefix=$CONDA_PREFIX && sudo make install && cd ..
- name: Run C++ and python tests
run: |
source $CONDA/etc/profile.d/conda.sh && conda activate gubbins_env && export PATH=$PATH:/lib/python3.9/site-packages/ && conda install pytest-cov && autoreconf -i && ./configure --prefix=$CONDA_PREFIX --exec_prefix $CONDA_PREFIX --enable-maintainer-mode CFLAGS="-O0 --coverage -I${CONDA_PREFIX}/include/" LDFLAGS="-L${CONDA_PREFIX}/lib/ -Wl,-rpath,${CONDA_PREFIX}/lib/" --host=x86_64-apple-darwin --build=x86_64-apple-darwin && make && sudo make install && make check

test-linux:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies with conda
run: |
$CONDA/bin/conda env update --file environment.yml && conda init
- name: Install subunit from source
run: |
source $CONDA/etc/profile.d/conda.sh && conda activate gubbins_env && export LDFLAGS="-L${CONDA_PREFIX}/lib/ -Wl,-rpath,${CONDA_PREFIX}/lib/" && export CFLAGS="-I${CONDA_PREFIX}/include/" && export CPPUNIT_CFLAGS="-I${CONDA_PREFIX}/include/" && export CPPUNIT_LIBS="-L${CONDA_PREFIX}/lib/" && git clone https://github.com/testing-cabal/subunit.git && cd subunit && autoreconf -vi && CXXFLAGS="${CXXFLAGS} -I${CONDA_PREFIX}/include/" LDFLAGS="${LDFLAGS} -L${CONDA_PREFIX}/lib/ -lcppunit" ./configure --prefix=$CONDA_PREFIX && sudo make install && cd ..
- name: Run C++ and python tests
run: |
source $CONDA/etc/profile.d/conda.sh && conda activate gubbins_env && export PATH=$PATH:/lib/python3.9/site-packages/ && conda install pytest-cov && autoreconf -i && ./configure --prefix=$CONDA_PREFIX --exec_prefix $CONDA_PREFIX --enable-maintainer-mode CFLAGS="-O0 --coverage -I${CONDA_PREFIX}/include/" LDFLAGS="-L${CONDA_PREFIX}/lib/ -Wl,-rpath,${CONDA_PREFIX}/lib/" --host=x86_64-linux-gnu --build=x86_64-linux-gnu && make && sudo make install && make check
- name: Upload python code coverage analysis
run: |
bash <(curl -s https://codecov.io/bash)
29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

33 changes: 28 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,18 @@ RUN pip3 install certifi \
&& pip3 install nose \
&& pip3 install pillow \
&& pip3 install dendropy \
&& pip3 install biopython

# Install RAxML
&& pip3 install biopython \
&& pip3 install functools \
&& pip3 install multiprocess

# Get tree builder versions
ARG raxml_version='8.2.12'
ARG fasttree_version='2.1.11'
ARG iqtree_version='2.0.3'
ARG raxmlng_version='1.0.1'
ARG rapidnj_version='2.3.2'

# Install RAxML
RUN curl -L https://github.com/stamatak/standard-RAxML/archive/v${raxml_version}.tar.gz -o standard-RAxML-${raxml_version}.tar.gz \
&& tar xzf standard-RAxML-${raxml_version}.tar.gz \
&& cd standard-RAxML-${raxml_version} \
Expand All @@ -46,19 +54,31 @@ RUN curl -L https://github.com/stamatak/standard-RAxML/archive/v${raxml_version}
&& rm -rf standard-RAxML-${raxml_version}

# Install FastTree
ARG fasttree_version='2.1.10'
RUN curl http://www.microbesonline.org/fasttree/FastTree-${fasttree_version}.c -o FastTree.c \
&& gcc -O3 -finline-functions -funroll-loops -Wall -o FastTree FastTree.c -lm \
&& mv FastTree /usr/local/bin/ \
&& rm FastTree.c

# Install IQTree
ARG iqtree_version='1.6.6'
RUN curl -L https://github.com/Cibiv/IQ-TREE/releases/download/v${iqtree_version}/iqtree-${iqtree_version}-Linux.tar.gz -o iqtree-${iqtree_version}-Linux.tar.gz \
&& tar xzf iqtree-${iqtree_version}-Linux.tar.gz \
&& cp iqtree-${iqtree_version}-Linux/bin/iqtree /usr/local/bin \
&& rm -rf iqtree-${iqtree_version}-Linux

# Install RAxML-NG
RUN curl https://github.com/amkozlov/raxml-ng/releases/download/${raxmlng_version}/raxml-ng_v${raxmlng_version}_linux_x86_64.zip \
&& unzip raxml-ng_v${raxmlng_version}_linux_x86_64.zip \
&& cp raxml-ng /usr/local/bin

# Install RapidNJ
RUN curl https://github.com/johnlees/rapidnj/archive/${rapidnj_version}.zip \
&& unzip ${rapidnj_version}.zip \
&& cd rapidnj-${rapidnj_version} \
&& make \
&& cp bin/rapidnj /usr/local/bin \
&& cd .. \
&& rm -rf rapidnj-${rapidnj_version}

# Install Gubbins
ENV BUILD_DIR /opt/gubbins
RUN mkdir -p ${BUILD_DIR}
Expand All @@ -71,3 +91,6 @@ RUN cd ${BUILD_DIR} \
&& make install \
&& cd python \
&& python3 setup.py install

# Remove downloaded files
RUN rm standard-RAxML-${raxml_version}.tar.gz iqtree-${iqtree_version}-Linux.tar.gz iqtree-${iqtree_version}-Linux.tar.gz raxml-ng_v${raxmlng_version}_linux_x86_64.zip ${rapidnj_version}.zip
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.4.1
3.0.0
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PKG_CHECK_MODULES([zlib], [zlib])
AC_CHECK_HEADERS([zlib.h math.h])

# Check for Python
AM_PATH_PYTHON([3.0],
AM_PATH_PYTHON([3.8],
[],
[AC_MSG_WARN([Python not found. Python is required to build presage python binding. Python can be obtained from http://www.python.org])])

Expand Down
32 changes: 32 additions & 0 deletions environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: gubbins_env
channels:
- conda-forge
- bioconda
- defaults
- r
dependencies:
# python
- python>=3.8
# installation
- autoconf
- automake
- pytest
- check
- libtool
- cppunit
- pkg-config
- wheel
- nose
- pillow
# algorithm
- scipy
- dendropy
- biopython
- multiprocess
- numpy
# phylogenetics
- raxml=8.2.12
- iqtree=2.0.3
- rapidnj
- raxml-ng=1.0.1
- fasttree=2.1.10
76 changes: 68 additions & 8 deletions install_dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,57 @@ set -e

start_dir=$(pwd)

# Determine OS type
OS="Linux"
if [[ $OSTYPE == "darwin"* ]]; then
OS="OSX"
fi

# Alias wget on OSX
if [[ $OS == "OSX" ]]; then
function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
fi

# Get tree builder options
RAXML_VERSION="8.2.12"
FASTTREE_VERSION="2.1.10"
IQTREE_VERSION="1.6.6"
FASTTREE_VERSION="2.1.11"
IQTREE_VERSION="2.0.3"
RAXMLNG_VERSION="1.0.1"
RAPIDNJ_VERSION="2.3.2"

RAXML_DIR="standard-RAxML-$RAXML_VERSION"
RAXML_ZIP_FILE="$RAXML_DIR.tar.gz"

IQTREE_DIR="iqtree-$IQTREE_VERSION-Linux"
IQTREE_ZIP_FILE="$IQTREE_DIR.tar.gz"
IQTREE_DIR=""
IQTREE_ZIP_FILE=""
if [[ $OS == "Linux" ]]; then
IQTREE_DIR="iqtree-$IQTREE_VERSION-Linux"
IQTREE_ZIP_FILE="$IQTREE_DIR.tar.gz"
elif [[ $OS == "OSX" ]]; then
IQTREE_DIR="iqtree-$IQTREE_VERSION-MacOSX"
IQTREE_ZIP_FILE="$IQTREE_DIR.zip"
fi

FASTTREE_DIR="FastTree-$FASTTREE_VERSION"
FASTTREE_SOURCE="$FASTTREE_DIR.c"

RAXMLNG_DIR="raxmlng_dir"
RAXMLNG_ZIP_FILE=""
if [[ $OS == "Linux" ]]; then
RAXMLNG_ZIP_FILE="raxml-ng_v${RAXMLNG_VERSION}_linux_x86_64.zip"
elif [[ $OS == "OSX" ]]; then
RAXMLNG_ZIP_FILE="raxml-ng_v${RAXMLNG_VERSION}_macos_x86_64.zip"
fi

RAPIDNJ_DIR="rapidnj-$RAPIDNJ_VERSION"
RAPIDNJ_ZIP_FILE="$RAPIDNJ_VERSION.zip"

RAXML_DOWNLOAD_URL="https://github.com/stamatak/standard-RAxML/archive/v$RAXML_VERSION.tar.gz"
FASTTREE_DOWNLOAD_URL="http://www.microbesonline.org/fasttree/$FASTTREE_SOURCE"
IQTREE_DOWNLOAD_URL="https://github.com/Cibiv/IQ-TREE/releases/download/v$IQTREE_VERSION/$IQTREE_ZIP_FILE"
RAXMLNG_DOWNLOAD_URL="https://github.com/amkozlov/raxml-ng/releases/download/$RAXMLNG_VERSION/$RAXMLNG_ZIP_FILE"
RAPIDNJ_DOWNLOAD_URL="https://github.com/johnlees/rapidnj/archive/$RAPIDNJ_ZIP_FILE"

# Make an install location
if [ ! -d 'build' ]; then
Expand All @@ -45,11 +80,11 @@ download () {
download $RAXML_DOWNLOAD_URL $RAXML_ZIP_FILE
download $FASTTREE_DOWNLOAD_URL $FASTTREE_SOURCE
download $IQTREE_DOWNLOAD_URL $IQTREE_ZIP_FILE
download $RAXMLNG_DOWNLOAD_URL $RAXMLNG_ZIP_FILE
download $RAPIDNJ_DOWNLOAD_URL $RAPIDNJ_ZIP_FILE

# Update dependencies
if [ "$TRAVIS" = 'true' ]; then
echo "Using Travis's apt plugin"
else
if [[ "$OS" == 'Linux' ]]; then
sudo apt-get update -q
sudo apt-get install -y -q autoconf \
check \
Expand Down Expand Up @@ -94,13 +129,36 @@ fi
## IQTree
cd $build_dir
if [ ! -d $IQTREE_DIR ]; then
tar xzf $IQTREE_ZIP_FILE
if [[ $OS == "Linux" ]]; then
tar xzf $IQTREE_ZIP_FILE
elif [[ $OS == "OSX" ]]; then
unzip $IQTREE_ZIP_FILE
fi
fi
cd $IQTREE_DIR
if [ -e "bin/iqtree" ]; then
cp bin/iqtree iqtree
fi

## RAxML-NG
cd $build_dir
if [ ! -d $RAXMLNG_DIR ]; then
mkdir $RAXMLNG_DIR
fi
unzip $RAXMLNG_ZIP_FILE
mv raxml-ng $RAXMLNG_DIR

## RapidNJ
cd $build_dir
if [ ! -d $RAPIDNJ_DIR ]; then
unzip $RAPIDNJ_ZIP_FILE
fi
cd $RAPIDNJ_DIR
make
if [ -e "bin/rapidnj" ]; then
cp bin/rapidnj rapidnj
fi

# Setup environment variables
update_path () {
new_dir=$1
Expand All @@ -112,6 +170,8 @@ update_path () {
update_path $build_dir/$RAXML_DIR
update_path $build_dir/$FASTTREE_DIR
update_path $build_dir/$IQTREE_DIR
update_path $build_dir/$RAXMLNG_DIR
update_path $build_dir/$RAPIDNJ_DIR

cd $start_dir

Expand Down
4 changes: 2 additions & 2 deletions python/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
EXTRA_DIST=gubbins/* setup.py scripts/*
EXTRA_DIST=gubbins/*

all-local:
${PYTHON} setup.py build
Expand All @@ -14,4 +14,4 @@ clean-local:
$(PYTHON) setup.py clean --all

check-local:
$(PYTHON) setup.py test
pytest --cov=gubbins gubbins/tests/
1 change: 1 addition & 0 deletions python/VERSION
5 changes: 1 addition & 4 deletions python/gubbins/ValidateFastaAlignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ def does_each_sequence_have_a_name_and_genomic_data(self):
if re.search('[^ACGTNacgtn-]', str(record.seq)) != None:
print("Error with the input FASTA file: One of the sequences contains odd characters, only ACGTNacgtn- are permitted")
return False
if number_of_sequences <= 3:
print("Error with input FASTA file: you need more than 3 sequences to build a meaningful tree")
return False
input_handle.close()
return True

Expand Down Expand Up @@ -79,4 +76,4 @@ def are_sequence_names_unique(self):
return False
input_handle.close()
return True


24 changes: 15 additions & 9 deletions python/gubbins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import sys
import os
import pkg_resources

###############################################################################
## Populate the 'gubbins' namespace
Expand All @@ -18,7 +19,6 @@
## PACKAGE METADATA

__project__ = "Gubbins"
__version__ = "0.1"

try:
try:
Expand All @@ -32,8 +32,8 @@
except:
__homedir__ = None

__author__ = "Andrew J. Page, Nicholas Croucher, Aidan Delaney and Simon Harris"
__copyright__ = "Copyright 2013 Wellcome Trust Sanger Institutue"
__author__ = "Andrew Page, Nicholas Croucher, Aidan Delaney, Christoph Puethe and Simon Harris"
__copyright__ = "Copyright 2020 Wellcome Trust Sanger Institute and Imperial College London"
__license__ = """
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
Expand All @@ -49,14 +49,20 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"""
PACKAGE_VERSION = __version__

def version():
os.environ["PATH"] = os.environ["PATH"] + ":/usr/lib/gubbins/"
program_version = ""
try:
program_version = str(pkg_resources.get_distribution(__project__).version)
except pkg_resources.RequirementParseError:
pass
return "%s" % program_version

__version__ = version()

def description():
if __revision__.is_available:
revision_text = " (%s)" % str(__revision__)
else:
revision_text = ""
return "%s %s%s" % (__project__, __version__, revision_text)
return "%s %s" % (__project__, version())

if __name__ == "__main__":
sys.stdout.write("%s\n" % description())
Expand Down
Loading