Skip to content
Commits on Source (5)
......@@ -25,4 +25,9 @@ examples_old*
CMakeLists.txt
convert_phylip_to_states.py
logo.svg
*.bbl
*.blg
*.synctex.gz
Phyxed_Manual.log
Phyxed_Manual.dvi
......@@ -4,43 +4,54 @@
Authors: Joseph W. Brown, Joseph F. Walker, and Stephen A. Smith
Citation: [Brown, J. W., J. F. Walker, and S. A. Smith; Phyx: phylogenetic tools for unix. Bioinformatics 2017; 33 (12): 1886-1888. doi: 10.1093/bioinformatics/btx063](https://academic.oup.com/bioinformatics/article/33/12/1886/2975328/Phyx-phylogenetic-tools-for-unix)
License: GPL https://www.gnu.org/licenses/gpl-3.0.html
Some of the sequence comparison operations use the very nice [edlib library](https://github.com/Martinsos/edlib#alignment-methods). These are reported in this publication: [Martin Šošić, Mile Šikić; Edlib: a C/C ++ library for fast, exact sequence alignment using edit distance. Bioinformatics 2017 btw753. doi: 10.1093/bioinformatics/btw753](https://academic.oup.com/bioinformatics/article/33/9/1394/2964763/Edlib-a-C-C-library-for-fast-exact-sequence).
## Update 31 May 2018
If you have been using phyx and things are not working after a recent pull, this is because of a change in configuration. Please do the following in the `src` directory to remedy the situation:
make distclean
autoreconf -fi
./configure
make
sudo make install
# Installation instructions
phyx requires a few dependencies. Since installation of these dependencies differs on [Linux](#linux-install) vs. [Mac OSX](#mac-install), we've separated the instructions below.
## Mac install
Mac has become increasingly difficult to support at the command line with changes every version on location and standards for compilation tools. First, distribution of compiled programs is very difficult. Furthermore, Mac now defaults to clang as a C/C++ compiler, which does not support OpenMP. For **Mac OSX 10.12**, we have found that you can install with clang using the simple instructions and [homebrew] (http://brew.sh/) *or* using a fresh installation of gcc from [here](http://hpc.sourceforge.net/). Instructions for both are below (don't use both, choose one, probably the simple one). For simple instructions click [here](#install-with-homebrew-simple-instructions), and for advanced instructions click [here](#install-with-hpc-gcc-advanced-instructions).
Mac has become increasingly difficult to support at the command line with changes every version on location and standards for compilation tools. First, distribution of compiled programs is very difficult. Furthermore, Mac now defaults to clang as a C/C++ compiler, which does not support OpenMP. For **Mac OSX 10.12**, we have found that you can install with clang using the simple instructions and [homebrew] (http://brew.sh/) *or* using a fresh installation of gcc from [here](http://hpc.sourceforge.net/). Instructions for both are below (don't use both, choose one, probably the simple one). For simple instructions click [here](#binary-install-with-homebrew), and for advanced instructions click [here](#install-with-hpc-gcc-advanced-instructions).
### Install with Homebrew (simple instructions)
The instructions below assume homebrew, which is convenient for dealing with dependencies.
### Binary install with Homebrew
1. Install the homebrew package manager:
1. Install the Homebrew package manager:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. Install the Brewsci phyx package:
brew install brewsci/bio/phyx
### Build from source with Homebrew
1. Install the Homebrew package manager:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. Install dependencies from homebrew:
brew install git
brew install cmake
brew install homebrew/science/nlopt
brew install git cmake nlopt armadillo
3. On to phyx. first, clone the repository (if you haven't already):
git clone https://github.com/FePhyFoFum/phyx.git
4. Install the final dependency, armadillo, (included with phyx):
cd phyx/deps
tar -xzf armadillo-7.400.2.tgz
cd armadillo-7.400.2
./configure
make
sudo make install
5. Install phyx
4. Install phyx
cd ../../src
cd phyx/src
./configure
make
python run_tests.py
......@@ -74,7 +85,7 @@ If you want to install it so it is available anywhere in your system, do:
5. Install nlopt. Get armadillo from the `deps` directory or go to http://ab-initio.mit.edu/wiki/index.php/NLopt#Download_and_installation and download the latest (probably nlopt-2.4.2.tar.gz). Untar and browse in the terminal to that directory:
./configure --with-cxx --without-octave --without-matlab
./configure --without-octave --without-matlab
make
sudo make install
......@@ -94,32 +105,22 @@ These instructions work for most ubuntu versions as well as debian.
1. Install general dependencies:
sudo apt-get install git
sudo apt-get install autotools-dev
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install cmake
sudo apt-get install libtool
sudo apt-get install liblapack-dev
sudo apt-get install libatlas-cpp-0.6-dev
sudo apt-get install git autotools-dev autoconf automake cmake libtool liblapack-dev libatlas-cpp-0.6-dev libnlopt-dev libnlopt0
2. Clone the phyx repo (if you haven't already):
git clone https://github.com/FePhyFoFum/phyx.git
3. Install nlopt dependency (default is C, we need C++; not available from apt-get):
cd phyx/deps
tar -xvzf nlopt-2.4.2.tar.gz
cd nlopt-2.4.2
./configure --with-cxx --without-octave --without-matlab
make
sudo make install
4. Install armadillo dependency
3. Install armadillo dependency
**Note**: it is possible to get from apt-get, but need version >= 5.2:
sudo apt-get install libarmadillo-dev
On debian it was necessary to use backports:
sudo apt-get -t jessie-backports install libarmadillo-dev
If that is not possible, compile the provided code:
cd phyx/deps
......@@ -128,12 +129,14 @@ If that is not possible, compile the provided code:
./configure
make
sudo make install
5. Finally, install phyx:
4. Finally, install phyx:
cd phyx/src
./configure
make
python run_tests.py
If you want to install it so it is available anywhere in your system, do:
sudo make install
......
phyx (0.999+ds-1) unstable; urgency=medium
* New upstream version
-- Andreas Tille <tille@debian.org> Mon, 15 Oct 2018 16:19:59 +0200
phyx (0.99+ds-1) unstable; urgency=medium
* Initial release (Closes: #855597)
......
......@@ -4,30 +4,30 @@ Description: Somehow nlopt library needs to be added
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -317,7 +317,7 @@ all: pxmrca pxmrcacut pxmrcaname pxconsq
@@ -339,7 +339,7 @@ all: $(PROGS)
pxstrec: $(CPP_OBJS) $(RATE_OBJS) $(STREC_OBJ) #$(FORT_OBJS)
@echo 'building pxstrec'
- $(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
+ $(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) -lnlopt_cxx -lnlopt #$(FORT_OBJS) -lgfortran
- $(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
+ $(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS) -lnlopt_cxx -lnlopt #$(FORT_OBJS) -lgfortran
pxmrca: $(CPP_OBJS) $(MRCA_OBJ)
@echo 'building pxmrca'
@@ -417,7 +417,7 @@ pxboot: $(CPP_OBJS) $(SEQSAMP_OBJ)
@@ -443,7 +443,7 @@ pxboot: $(CPP_OBJS) $(SEQSAMP_OBJ)
pxseqgen: $(CPP_OBJS) $(RATE_OBJS) $(SEQGEN_OBJ) $(FORT_OBJS)
@echo 'building pxseqgen'
- $(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
+ $(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) -lnlopt_cxx -lnlopt #$(FORT_OBJS) -lgfortran
- $(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
+ $(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS) -lnlopt_cxx -lnlopt
pxcat: $(CPP_OBJS) $(CONCAT_OBJ)
@echo 'building pxcat'
@@ -433,7 +433,7 @@ pxvcf2fa: $(CPP_OBJS) $(VCF2FA_OBJ)
@@ -463,7 +463,7 @@ pxvcf2fa: $(CPP_OBJS) $(VCF2FA_OBJ)
pxcontrates: $(CPP_OBJS) $(CONTRATES_OBJ) $(RATE_OBJS) $(FORT_OBJS)
pxcontrates: $(CPP_OBJS) $(CONTRATES_OBJ) $(RATE_OBJS)
@echo 'building pxcontrates'
- $(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
+ $(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPP_LIBS) -lnlopt_cxx -lnlopt #$(FORT_OBJS) -lgfortran
- $(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
+ $(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS) -lnlopt_cxx -lnlopt
pxrecode: $(CPP_OBJS) $(SEQRECODE_OBJ)
@echo 'building pxrecode'
......@@ -15,7 +15,7 @@ endif
override_dh_auto_install:
mkdir -p $(CURDIR)/debian/$(DEB_SOURCE)/usr/bin
dh_auto_install -- prefix=$(CURDIR)/debian/$(DEB_SOURCE)/usr/bin
dh_auto_install -- prefix=$(CURDIR)/debian/$(DEB_SOURCE)/usr
override_dh_compress:
dh_compress --exclude=.pdf
......@@ -25,7 +25,7 @@
\newlabel{abstract}{{\M@TitleReference {}{What is Phyx?}}{1}{What is Phyx?}{section*.1}{}}
\@writefile{toc}{\contentsline {subsection}{Installing Phyx}{1}{section*.2}}
\newlabel{introduction}{{\M@TitleReference {}{Installing Phyx}}{1}{Installing Phyx}{section*.2}{}}
\@writefile{toc}{\contentsline {section}{Features of Phyx}{1}{section*.3}}
\@writefile{toc}{\contentsline {section}{Pheatures of Phyx}{1}{section*.3}}
\@writefile{toc}{\contentsline {subsection}{Data formats}{1}{section*.4}}
\@writefile{toc}{\contentsline {subsection}{Repeatability}{2}{section*.5}}
\@writefile{toc}{\contentsline {subsection}{Piping}{2}{section*.6}}
......@@ -57,12 +57,13 @@
\@writefile{toc}{\contentsline {subsection}{pxrr}{8}{section*.32}}
\@writefile{toc}{\contentsline {subsection}{pxs2fa and pxs2phy and pxs2nex}{8}{section*.33}}
\@writefile{toc}{\contentsline {subsection}{pxseqgen}{8}{section*.34}}
\@writefile{toc}{\contentsline {subsection}{pxstrec}{9}{section*.35}}
\@writefile{toc}{\contentsline {subsection}{pxsw}{9}{section*.36}}
\@writefile{toc}{\contentsline {subsection}{pxt2new}{9}{section*.37}}
\@writefile{toc}{\contentsline {subsection}{pxtlate}{10}{section*.38}}
\@writefile{toc}{\contentsline {subsection}{pxtscale}{10}{section*.39}}
\@writefile{toc}{\contentsline {subsection}{pxupgma}{10}{section*.40}}
\@writefile{toc}{\contentsline {subsection}{pxvcf2fa}{10}{section*.41}}
\@writefile{toc}{\contentsline {subsection}{pxsstat}{9}{section*.35}}
\@writefile{toc}{\contentsline {subsection}{pxstrec}{9}{section*.36}}
\@writefile{toc}{\contentsline {subsection}{pxsw}{9}{section*.37}}
\@writefile{toc}{\contentsline {subsection}{pxt2new}{10}{section*.38}}
\@writefile{toc}{\contentsline {subsection}{pxtlate}{10}{section*.39}}
\@writefile{toc}{\contentsline {subsection}{pxtscale}{10}{section*.40}}
\@writefile{toc}{\contentsline {subsection}{pxupgma}{10}{section*.41}}
\@writefile{toc}{\contentsline {subsection}{pxvcf2fa}{10}{section*.42}}
\memsetcounter{lastsheet}{10}
\memsetcounter{lastpage}{10}
This diff is collapsed.
\BOOKMARK [1][-]{section*.1}{What is Phyx?}{}% 1
\BOOKMARK [1][-]{section*.3}{Features of Phyx}{}% 2
\BOOKMARK [1][-]{section*.3}{Pheatures of Phyx}{}% 2
\BOOKMARK [1][-]{section*.7}{Examples}{}% 3
......@@ -28,21 +28,8 @@
%\usepackage{etoolbox}
%\usepackage{setspace}% http://ctan.org/pkg/setspace
\linespread{1}
\setcounter{secnumdepth}{0}
% Our sections are not numbered and our papers do not have
% Tables of Contents. We don't
% present a list of figures or list of tables, either.
% Any common font is fine.
% (A common sans-serif font should be used on figures, but figures should be
% separate from the LaTeX document.)
%\pagestyle{empty}
\pagenumbering{arabic}
\begin{document}
......@@ -66,7 +53,7 @@ $^{*}$Corresponding author}\\
\medskip
\section{What is Phyx?}\label{abstract}
Phyx (pronounced "fix") is a set of data analysis programs modeled after POSIX-style command-line tools, to help them be easily incorporated in bioinformatic pipelines. The majority of Phyx programs focus on phylogenetic analyses, which includes a variety of programs to clean data matrices, simulate data, and perform basic phylogenetic analyses. Phyx is an ever expanding library of programs, and we welcome any feature requests through github issue submissions: \href{https://github.com/FePhyFoFum/phyx/issues}{https://github.com/FePhyFoFum/phyx/issues}.
Phyx (pronounced ``fix'') is a set of data analysis programs modeled after POSIX-style command-line tools, to help them be easily incorporated in bioinformatic pipelines. The majority of Phyx programs focus on phylogenetic analyses, which includes a variety of programs to clean data matrices, simulate data, and perform basic phylogenetic analyses. Phyx is an ever expanding library of programs, and we welcome any feature requests through github issue submissions: \href{https://github.com/FePhyFoFum/phyx/issues}{https://github.com/FePhyFoFum/phyx/issues}.
All programs are open source and Phyx operates under the GPL3 licence: \href{https://www.gnu.org/licenses/gpl-3.0.html}{https://www.gnu.org/licenses/gpl-3.0.html}
\subsection{Installing Phyx}\label{introduction}
......@@ -74,7 +61,7 @@ All programs are open source and Phyx operates under the GPL3 licence: \href{htt
Installation instructions for both unix and mac may be found at the Phyx wiki: \href{https://github.com/FePhyFoFum/phyx/wiki/Installation}{https://github.com/FePhyFoFum/phyx/wiki/Installation}.
\end{flushleft}
\section{Features of Phyx}
\section{Pheatures of Phyx}
The following is a list of the programs that are currently available. For all programs typing the argument \texttt{-h} will produce a list of program options. Below is a list of current programs with examples on how to run them. Programs are updated regularly with new options being added. The most up to date list of options for each program can be found in the help menu.
......@@ -82,10 +69,9 @@ The following is a list of the programs that are currently available. For all pr
Phyx supports the popular formats for sequence alignments (fasta, fastq, phylip, and Nexus) and trees (newick and Nexus) and uses format auto-detection on the fly. Therefore, for nearly all Phyx programs any of these formats (or a combination thereof, e.g. with \texttt{pxcat}, below) can be used without user specification.
\subsection{Repeatability}
Phyx will track the programs and commands input to a file called "phyx.logfile". This allows users to see exactly what settings they used to run a program and can help others replicate experiments (say, but including the logfile as supplementary information to a paper).
Phyx will track the programs and commands input to a file called ``phyx.logfile''. This allows users to see exactly what settings they used to run a program and can help others replicate experiments (say, but including the logfile as supplementary information to a paper).
\subsection{Piping}
......@@ -99,7 +85,7 @@ pxaa2cdn -a amino_acid_alignment -n nucleotide_alignment || pxclsq -p 1.0
\section{Examples}
A list of example files can be found in the "example\_files" folder. Subfolder names correspond to individual program names.
A list of example files can be found in the ``example\_files'' folder. Subfolder names correspond to individual program names.
\subsection{pxaa2cdn}
......@@ -112,10 +98,10 @@ pxaa2cdn -a AA_Alignment.fa -n Unaligned_Nucleotide.fa -o CDN_aln.fa
\subsection{pxbdfit}
Diversification has becoming a rapidly expanding field and as a result tools to analyze the data are essential. This program will fit a diversification model to a tree. The model which is chosen with \texttt{-m} may be either the default a birth-death model (\texttt{bd}) or a yule model (\texttt{yule}). The program will return the model parameters (b,d,r,e), likelihood, aic and tree statistics.
Diversification has becoming a rapidly expanding field and as a result tools to analyze the data are essential. This program will fit a diversification model to a tree. The model which is chosen with \texttt{-m} may be (the default) birth-death model (\texttt{bd}), a pure-birth yule model (\texttt{yule}), or the optimal of these two models (\texttt{best}) as determined by AIC. The program will return the model parameters (b,d,r,e), likelihood, aic and tree statistics.
\begin{flushleft}
\begin{verbatim}
pxbdfit -t bd.tre -m "yule"
pxbdfit -t bd.tre -m yule
\end{verbatim}
\end{flushleft}
......@@ -255,7 +241,6 @@ pxmrca -t mrca_test.tre -m mrca.txt
\end{verbatim}
\end{flushleft}
\subsection{pxmrcacut}
With extremely large trees becoming more common place (species level, gene families etc.) it is useful to focus on certain clades. This program allows the user to specify tips of a clade (-m), only two are required and will remove a newick for the smallest clade that encompasses both species specified. mrca file format:
......@@ -327,7 +312,6 @@ pxrls -s SeqFile -c CurrentNames -n NewNames
\end{verbatim}
\end{flushleft}
\subsection{pxrlt}
This program provides a way to relabel the tips of trees by giving a tree file and specifying files listing current \texttt{-c} and new names \texttt{-n}; name ordering in the files must be identical, with one taxon per line.
......@@ -340,7 +324,7 @@ pxrlt -t kingdoms.tre -c kingdoms.oldnames.txt -n kingdoms.newnames.txt
\subsection{pxrms}
This program will remove sequences from a sequence file, either by typing them on the command line using \texttt{-n} (comma-delimited) or by specifying a file using \texttt{-f} (one taxon per line).
This program will remove sequences from a sequence file, either by typing them on the command line using \texttt{-n} (comma-delimited) or by specifying a file using \texttt{-f} (one taxon per line). Use the \texttt{-c} flag to remove the complementary taxa.
\begin{flushleft}
\begin{verbatim}
......@@ -350,7 +334,7 @@ pxrms -s Nucleotide.fa -f taxa_to_delete.txt
\subsection{pxrmt}
This program will remove tips from a tree file, either by typing them on the command line using \texttt{-n} (comma-delimited) or by specifying a file using \texttt{-f} (one taxon per line).
This program will remove tips from a tree file, either by typing them on the command line using \texttt{-n} (comma-delimited) or by specifying a file using \texttt{-f} (one taxon per line). Use the \texttt{-c} flag to remove the complementary taxa.
\begin{flushleft}
Example to remove tips s1, s6, and s8:
......@@ -361,7 +345,7 @@ pxrmt -t rmt_test.tre -n s1,s6,s8
\subsection{pxrr}
This program will re-root trees in a tree file based on specified outgroups (\texttt{-g}), or the program can unroot a tree (\texttt{-u}). For re-rooting, if not all the outgroups are found in the tree the program will re-root the tree based on the outgroups that are available. It provides a useful tool for re-rooting thousands of trees which can then be used for analyzing gene discordance across phylogenies.
This program will re-root trees in a tree file based on specified outgroups (\texttt{-g}), or the program can unroot a tree (\texttt{-u}). For re-rooting, if not all the outgroups are found in the tree the program will print an error. However, \texttt{pxrr} can re-root the tree based on the outgroups that \textit{are} available by using the silent option (\texttt{-s}). Alternatively, if the outgroups are ranked in preference but not all necessarily present in a given tree \texttt{pxrr} can root on the first outgroup present by using the \texttt{-r} option. It provides a useful tool for re-rooting thousands of trees which can then be used for analyzing gene discordance across phylogenies.
\begin{flushleft}
Example to root on the outgroups s1 and s2:
......@@ -374,7 +358,6 @@ pxrr -t rr_test.tre -g s1,s2
This programs are all designed in a similar vain, with the ability to convert a file from its current format to fasta, phylip or nexus, respectively. You may also specify if you would like to have the output in uppercase with the option \texttt{-u}.
\begin{flushleft}
\begin{verbatim}
pxs2* -s Alignment
......@@ -389,7 +372,6 @@ The sequence simulator features have been thoroughly tested except the multimode
For multimodel simulations it is easiest to print out the node labels on your tree originally using the \texttt{-p} option. Once you know the nodes that you would like the model to change at you can specify these nodes on the input using the \texttt{-m} option. An example if you wanted two models of evolution on your tree one for the tree and one where it changes at node two, you would enter the command as follows.
\begin{flushleft}
example\_file example (which uses a simple JC69 model):
\begin{verbatim}
......@@ -413,6 +395,16 @@ pxseqgen -t tree_file -o output_alignment
\end{verbatim}
\end{flushleft}
\subsection{pxsstat}
This program calculates multinomial alignment test statistics that can be used for assessing model adequacy. Currently limited to the test statistic of Bollback (2002) MBE, but more are coming.
\begin{flushleft}
\begin{verbatim}
pxsstat -s Alignment.fa
\end{verbatim}
\end{flushleft}
\subsection{pxstrec}
This is a program that does some ancestral state reconstruction and stochastic mapping of categorical characters. There are a number of options and the requirement for a control file. The control file can be as simple as ancstates = all which designates that you want ancestral states calculated for each node. The can then be output on a tree in a file given by an -o FILE option. If you only want to look at particular nodes, these can be designated in the control with the \texttt{mrca = MRCANAME tipid1 tipid2}. Then the MRCANAME can be given at the \texttt{ancstates = MRCANAME}. If you would like stochastic mapping with the time in the state mapped you can use the same format but instead of ancstates you would put stochtime. For stochastic number of events stochnumber or `stochnumber any. For the stochastic mapping, you will need to designate an MRCA or MRCAs (not all). Multiple can be separated by commas or spaces. You can output these to a file with -n for number of events, -a for the total number of events, and -m for the duration.
......@@ -447,7 +439,6 @@ pxt2new -t Tree.nex
This program will take an input coding DNA sequence and translate it to the associated amino acid alignment. The \texttt{-t} argument specifies which translation table to use; the standard code is used by default. Use \texttt{-h} to see which tables are currently available, and feel free to suggest additions (\href{https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi}{see alternative translation tables described on genbank}).
\begin{flushleft}
\begin{verbatim}
pxtlate -s Sequence.fa
......
(((((((s1:0.3603553431,s2:0.3603553431)A:0.1)A2:0.2)A3:0.8968782862,s3:1.257233629)B:0.4207546592)B2:0.1,(((s4:0.1190332191,s5:0.1190332191)C:0.02544171746,s6:0.1444749366)D:0.7647640019,s7:0.9092389385)E:0.76874935)F:0.06349158892,((s8:0.3106889265,s9:0.3106889265)G:0.1031508249,s10:0.4138397514)H:1.327640126);
>s10
HYQGNWFYAQVGCSATNVCYFWRNEPNEKAWQKNQEQASKQSEANTETDMMTENNRDTDMKVLRIHINCKCAVQYNVWDMFSMMQQCMPPDYEIVRLNKDFNQAWHQWWFVCMIGIHSNSYKPDEVQSVHISEAHFEDFKNHPISRAGRPEECDSGYFSNSQIQSDDLLIPFMCCMNTIYIQYTHHYPGQKKGLYCQQCEGTRKVASKMQCCAAYQQGRPYHLCAMVPQSQQVWHLTFDTHLRRFNAIDIRLETYELNMWPQDMCWDNIKFGQCDETVEVCFIQFKDRMKLFRRRDEYCVGSGIRNDEVLYEHGEINRQYWWEYHFLGVDNQTPKVCDSYDEYTQHKKVKQMVTNLFCWGNVENVACTITVVFEYWNMCRSSNDWFNSDSHLKRTHKYENNRWFPTWSFVHVKINVQLAKDWIFCACYLLGMMCFFCKRWMSFYEIEMEYFMRYPWAMFCFFPLVEPYVDMHNKSIAELFRERWALDCNDLHYIRDGPYLNGLAWWFIFPEQVYNQFFIQCPFAITQCQWMQHTYNMHYQAKAGRRRLAGRRGSKPNYDQTMHYIGCQYIIKYMAVCEIKMCQFRENAVYYWKCNYFWQHVLVIWKWHYSRGGEDQIWYKCYRTFYWQELAMLEFRRGKGGWAFAFYQFWHEFYAAWLGKSACVEFSNMIFGICDALTYGKRQFPNVVQPHQTCEWRLQMWKPHLILLDVKGIYQRSEKIYNLVDGIAKTVCRTQNCNKIAPHCGDYCRETVQEDRHVVPEVRFRQWQSGCAFFQQIVGMGDEMPRNAKQEHKQCDDWGGVWLQTDKCTCQTQRCMPQHFSEAEGACASCVGMVQPIKRKGTWHCESIRCQLWVKHYKKMHAFKWIVVKKHCMCWRCRDETSSQLQPWSMVCKFFPWRVYYTVKPGCLFPKCRHQVVHDFPAVRDFWCEVCIHQFDLRNKTCTMGEWCIMNSQTQYCCWQCDQGQRVDRKYTIWLKGTICMYYNNNCSHSNNRKHRQDVG
>s9
CYQGKYRYAQILHRETMIPLFWLCTRSGDAWWGCQEVACKQSAYNRIHNMHFAHNRRKHWKAKNIVLPCKEARFYNSVYEHSMMHQENPYDYEIQWLHEDVMQAWHQWNHVLHYQIHSSSPMPMSNAMNWEWDAIFLIFKHCPICKPTRPEEGLPGYETNDWIQSYTLNKPNECCATTDYIEGSNHNVGQKNGLDNSQKEWMGKFASKMQCCAATQQGRPMDSAAIVYQIGQGQLCPFDKPLHLPTEMDIDNHSSEQVYWIQLGCWDAIKFKGCLERVEAETIHSKDHMKAVGRDDEWCMFGDIKHDQYVMFHVEYNRYATYCYHFTNLSNATKKVCIKYDQTRQHTWSKAAHGNCFRGGNVENVPKNITVVGLYWNMARSPNDYLNLLWHPKNIHKTENNRWFNTNSFVHGFINVTTARLAIACAPTDLGKKCNFCKRWVSQYCEEMEYVKRYFVAYFCPHELVEPHVDMWSNRECCEFSEHWQVHWYDLAKIRDGQFLWCLNWKPTTPEQYYDQMVIDAYFAITSCKCMYQYVNMWYCAKPYRRRLHGQYESKQNYLQTMHYIGSQDVIQRTMRCFIVMKNILEANDYKMHCCYFWQHDWAFDKWHYSFEWEDLIWYICYRFDYLVTCIWLMHWDRTGMRAHNQYQHWREFVAAWKGLSACVEAYMIQGGMCDAFTLGCRQIINNVQFHDTYVDLLLMCHFHLELLDLRTTYQESEWIYNSVDGKAKSVAFTQNENCIYPHCRDYFREQYPEDKIAGPAPRAASWFIVCAFRQQNVGMPDESCNNYKQEHFWCDAWTRVWRQTQKTTSRTGNCWGPHQSAALGECAICVGMVHPIKRIGGWTWESHSDSVKSHHYLFEHNQKAINVDKHCVCGHKFNEWFTALQPHSTVNEFFVWRVQYGELGPVAKYKCALQVSLVCPHVLDFWILQCIAAFDLRQKTCTMSQWCIMNYQFRYFCCQCHPIKRVDRLYTQLRKGTIMMYFCFNSAESKVRPMSCTSG
>s8
MKQLVWFYAVIGDHATNICMFWICTEGSDYTQGPQEVKSFQRAPNRKHDMHLANNRRYIWPAVCIVWICKEHRVYNSEDKFSMMDQCFPPDYEIQRLYKDVMQAWHDWTHCLHIGIHSNSPMGMSVLMNCGKDADFEDFKYCIIVRATRPEEGVSGYETWQGIQAYTMMIPRECCETTDYISGTNHNVGQKNGLDNQLREWMRKFVSKCQCRAATCQGRRMDRSEIVPQNQVGQHCWFDKMKQCTNEMDIRNGSYEQLYWSQWLCTNAIKFDGCDEYVEGGTIIVKDHNKCVGRPDSWCMFSDIFNDDRVNWDWIQNRYATYIYQFFGFIDAQVKVNIIWDQTTQHTKSKAVIDNCFRGVNVENILCNINVVFLYWQMMRSPNDCMNLDWELKNRFKYIVNRWFNTNDFRHHMINVTVATLAPAVAKILLGMKCNFIKRWGSKYDETCGYVKIYMWGKFNPFELVSPHVDFWAKWECQLCQEAWARVWNDWHPIEDGVYECGLMWKFQTPEQKYNQMLILCVFNLFQCKIKMQGEWMWYCAKMPRRRLHKRYESKQPWLYTMHYIGKEYIIDRTSVCGIKTMNPWENNDYDNHECLFVQHDLAIMKWPYEFEGELQIWYHCGDTRYLTECIMLPFWDCWGMRADHFYQEWHCFVAAWQAKSACPENEASQMGNPDAFSRGNRAPPNNVTFHQKCDWELDMWVFTDYLRSLRVIFQKSCWTYNSRDKKHSSNDFTQRKKKWAPPTYDYVFEQYQEDRIQAKAVLAAIWMIGCAFFQKNVGMAPESPLPYSGTCFWCDANGISWRQTGKRTAKTGCCKPQHQSAPLGRCAYCVGQVLPITRIGTYTNESIVDSTIVHHMMFNHNFKAIVFKKHCMCGQKFEETSTQLNPYSHVMFFFPERGCDCELGPVLRGKCAGQVILDYPKVLDFWCEQCIHAVAPRQKTMTEIQWCIMNYQFEYCCLQPHEIKRGDPLITQQLKKTIDLYFCNNSAESNPSKKGWSSG
>s7
PAHNKPHSECNMVPCSTDKRLVHFMAKQFEANDFKKLEGNFLRQNFDAQVGHQRFEMDGDYVAWNNMQKSPAEFKWQTNRCAQMFARKDEDVHDLVIVCACLCFFYPMEVRDCHFCMKVDGRGGRCNWAAQIEFECSMCHKAIAFIMLHMNDFTNWTLVCCCLLWQFRFVGDYRAQANCDDSVSQFDPSNAVVMDCQRQYAVSCWQMMSYRGDKMQKWSHWPEFNCKCWQQCGQHAPIWHTQLEHPGNGANTQKKWKFYLMVKRHPSDKQIQEDAPQMVKGQAFSYPTSVDYEENAMGMLINYAHYVDTGLQGPHFNTCQFQMFGDNWVYVDGVNRAYEYTFWEREMTQPCTNADAIQDGDVDWAYGNSWNISCKLNNYHEADPEGTLCTAMCWTQLPMWEFKSNDRSAVGDEPYVKWQWYAISTGFTHWLPKVQRVQDFVCRETWHGLLWAPWHVNYGTTDDMQKEPTPYMFPHNDRTFYGVWHMPHSYCCFTFMFLEWNCTLTTQASKEAGHENAIMMVAHSFACECFHRMGHKCKFDFYADNPIETLFPGQETNWWGSHTLPTNQFYREDSSDCAQMRKHAHNVPLQHSNSTATCHALLLWDFKGGFKKKMCAHVVDLGIPEYHGIVMLIHDVDHTIEMIWGEFQCQRELYKAWYWTYICSCIIHETYNFMQTLIKCIDDRPNNNNVFEHNPFDGYYFCMDKVFNWTKCVVQAWNITRESRLKEVAMPHRTSNNGETSNPHPSLPMDKHPMPCMTFRWDDTGKRHCHGYSRQGSDNFNGTIQANEIIVHTTRQDPEGWNWEKTSGFEFAFASSFELSHTYMRAPHKFMIEYRLNKVIHIHIPSQKAVLNCFRGKHMFVNFYHILVMFQSSYRISATQCSQGCILMEETEFTKCREEQPIMCLFLQGNKSWIYLSHHTYQKDDGCKQRVGRSCDPCQICEYEFQYHEYFAPDLKYVMVWDEAMVIVEGGNHKNVSICLFMTYNSSYWRIYHESQARWH
>s6
RAWVKPIKFVNMFQQATPYIKCMVVPWQHQCVDFWNEGAKHQKQNWWHTYCNDLEIMFFDHVLIQNPQSKTTFFSNYFNVFAQCDMREFMDPPDLVIVGMDLNHFDAFWAVDIPPMRIKSRKCGPKCCQQPSDLPWCCRLENITMPVLHMNIFLCWDLEPCPVHWWWAIEATPPSQEPCEDYFDHGHNTESLHMDVERISTVNPFTSVAARGRMRQPHIRWPRMNVEIQPSYCQHYQLPVTWVLKSCNDKRAIDYRDKEAMVHVEIIDDAWGPDCPMIHQFWAHRINYMAKAICREIPITCECAHFVNDSIDMKGDDCYSFAAAGDTSVLHDMVDTARAFHFKGPECPIFGVEYDWIAAPQDFMRYLMPDTMISHQNNVLVHWTCHTESTAMCYMQLFETFFGCNLLTGEYEELLLKWAWYRIITVFAVDDYRKKCVIDASPRHGFHITFVDTFAVHAGPPDDHVMHDTTSMLRWQYAQSKGCIHHRFTNIGFFRMVRIMNGPEATHAKTMIQINYAMRPEDYDNNYTRGWSNGCCIDWNAPNAQIHSTLEPDHHQKWIGTGKYFAWQGHCSDSGWTNSPHLHSDETAQIHDNKCMNESQEPQWKHHSMVKFWMDDYEVDAAMMSYAQWRWHENTGIWYLHRAYKEPYTQRWLSCILYATMTYYKIWTETCPCSYMTRGVFTHRQWNYNALFALNMTYYPAPSNHHNWVEWWARGADLAHQYNTQRDAEMSVVWSNNKEISFVGCSLPETQLHIPCGYFRWQLQGCTMTIGQMVQFRVGKQHVWNKMSKHEMRVVSHTYPMGWMHEDGVLHRVTDEYEEDHFIQMGMHTCNIDCDMNKDIDYHCEQISAWSNTIQHGAMMWVFCHFLVCNHKSFRTLAEEQSWVCDQPEIYWHWICWQFQPFMCGPKTNMRDSILHCNHTAHQDDSIQQVAFRYLDIWYATEVLNPYSQCKGPFLPLFFQEKEREPTVSKSHLYCRVNAEEWEMFWRYHQITHQEPNDGC
>s5
LAWVKPIAFVNMFQQATQYIKFMPVPWQHECVGFWNEGAKHQKQNWKHTYANVLGIMFLDHVLIDNWQSKTTFFLRYFNVFAHMDTREFMDPPDLVIVCMDLTHFDAFWAVDIPPMRINSRKYGPKCCQAPSDLPICYILENIKMPVLMMNIFLCWDLEPTPAHWWRAHEATPPSQEPCEDYFDHGGSCESLHMDVEPISAWNPFTRVAARGRMRQPHIRWPRMNCEMQPSYCQHYQLPVTTVLKSCNDKRAIPKRDDHAMVYRKIIDDAWGWDCPMIHQFWAHRINYMAKAICREIPITCERAHFVFDMIDMQGDDNYSFALASDTSVLHDMGDTQAAFHCKSNECNQFGVEYDWIAYPQDFMRYLNPDTMRSYQNNVLKHWTCHTASTAMCYMQLTETPFGCNLLFGEYEELYCKWAWRRIITDFAVSDPWKKCVIDASPMHHFHALFVDTFMVHAGPPDDHVMHDTGSMLRWTYAEVKGCIHHDFKVVGFFRMVRHWNGPGATDAKTMIQHNYAMHREQYDNNPTRGWSNGCCFDWNAPPHQIKSWEEPDHHQNWIGTGKYKRWQKHCSISVWTDSPHLHSDETAQIHANSCMNESQEPQWKHHSMVKEYSCAYELDNAMWLYARWRWWENTGIDYLHRAYKEQFTQRTLYCILYATMTEYTIWTEKHEASYMTRGRFFNRQWNLIMLFALNMNYYPAPHIHNNWEEWWARGADLEHQRNILCDAEMSVVPSNNKRISFVHCSQPETQLHIPCGYFRWELQGCHMTIGQSVQLRVGKQSVWNKMTRHEMRVVSHTWPLGWLHEDGVDHRVTDEGEEDHFRWMGMHTCMIDCDMNKDITYHCEAISHWGNTICHEHYMWVMCHILVKNHNSFRTLAEEFSGVCDQPRIYMHSICPQFQPGMCGPKTDLRISILHFNHTSKGDDEEQQMAFRYMDIWYEKEMLDPYSPSKGPFLPLFFQEKEREQTVTKSHLICWVPAEEWEMFWRYHQDTHQEPADMQ
>s4
LSWGKIILFVNCFQQAYQCIKFMVVDWQCECVGFWFEGAKHQKQNVKKTRWNDLGIYFFDHVNIDNSQSKTTFFLNYFNVFAQCDTREFMCMRDLVIVCMDLTKFRAFWAVDRPPMRIKSRKFLWKCCQHPSDLPICYILENIKMPVLFMNIFLCNDLGPTPAHWWWAHEATPPSQEPREDYFDHGHSCESLHMDVERESAVNPWTIVAARGRMRQTHIRWPRMNCEMQPSYCQHYQLPVTTVLKSCNDKRAIGYRDDHAMVHSKIIDDALGWDCPMIHQFWAPNINPMAKAICREIPITCERKHFQFDSIDMQGDTNYSFVNPLDTSVLHDMVDTARAFHFKSNECNQFGVHGDWYAYPQDFMRALQPKTMISYQNNVLVHWTCHTESTAMCYMQLFSHSFGCNLLTGEYEELYLKWAWYRIITVFAVSDPPKKCWIDASPRVHFHAPFVDTFMVVAGPPDDHVMHITTSMLRWTTAESKGCIHHRFTVVGFFFMVRHMNGPGATHASTMIQINYAMMREQYTNNPLRGWSNGCCIDWNAPPAQIHSTGEPDAHQNWIGTGKYKRWFGHCSISGWTDSPHLHFDTTAQIHDNSCMNESQNPQWKHHIMVKEIMCAAEEDNAWTLYARWRWHEVTGIWYLHRAYKEQFTQRWLYCCLYATMEQYKIWTTTHPASYPTRGRFVHRQKNLNKLVRLNMTYYPAPHNHVNWVEWWARGADLEHQYNMLCDAYMSVVPSNNKRISFVHCSLPETQLHIPCGYFRWMLQGCTMTIGQMVGLRVGKQSVWNPFFRHEFRVVSHKYIMGWLHEDGVDHRVTDEYEEDHKRQMGKHTCMIDSDMNKDIKYHCEAISAWNNTIQHEHVMWVMCHFLVKRHPSTRLLAHEQSWVCDQPEIYWHRHCPQFQPGMCGPKTNFRISILHFNHTSTGDDEIQQMAFRYMDIWYFKEMLDPYMQSIGPFHPLFFQEKEREQTVNCSHLYCVDPAEEWEMFDFVHQITCQEPADKC
>Sequence3
AAATTTAAATTTAAA
>Sequence1
ATGAAAAAAATATAT
>Sequence2
ATGAAATTTAATATA
>Sequence4
AAATTTAAATTTATA
>Seq1
AAATCCAGGG
>Seq2
AAACCCAACA
>Seq3
AATCGGTTCA
>Seq4
AATCGGTATT
\ No newline at end of file
RM := rm -f
## Use compiler from configure. May be specified by user with e.g.:
## ./configure CXX=/usr/local/bin/g++-6
## ./configure CXX=/usr/local/bin/g++-7
CXX := @CXX@
CPPFLAGS := @CPPFLAGS@
LDFLAGS := @LDFLAGS@
##set the nlopt around
HNLOPT := @HNLOPT@
HARM := @HARM@
......@@ -10,7 +13,7 @@ HOMP := @HOMP@
CPP_LIBS = -llapack -lblas -lpthread -lm
ifeq "$(HNLOPT)" "Y"
CPP_LIBS += -lnlopt_cxx
CPP_LIBS += -lnlopt
endif
ifeq "$(HARM)" "Y"
......@@ -94,9 +97,9 @@ FQFILT_SRC = main_fqfilt.cpp
FQFILT_OBJ = main_fqfilt.o
FQFILT_DEP = main_fqfilt.d
REVCOMP_SRC = main_revcomp.cpp
REVCOMP_OBJ = main_revcomp.o
REVCOMP_DEP = main_revcomp.d
REVCOMP_SRC = main_revcomp.cpp edlib.cpp
REVCOMP_OBJ = main_revcomp.o edlib.o
REVCOMP_DEP = main_revcomp.d edlib.d
NW_SRC = main_nw.cpp
NW_OBJ = main_nw.o
......@@ -118,6 +121,10 @@ CONCAT_SRC = concat.cpp main_concat.cpp
CONCAT_OBJ = concat.o main_concat.o
CONCAT_DEP = concat.d main_concat.d
SSTAT_SRC = sstat.cpp main_sstat.cpp
SSTAT_OBJ = sstat.o main_sstat.o
SSTAT_DEP = sstat.d main_sstat.d
CONTRATES_SRC = main_contrates.cpp optimize_cont_models_nlopt.cpp
CONTRATES_OBJ = main_contrates.o optimize_cont_models_nlopt.o
CONTRATES_DEP = main_contrates.d optimize_cont_models_nlopt.d
......@@ -146,6 +153,14 @@ RMT_SRC = main_rmt.cpp
RMT_OBJ = main_rmt.o
RMT_DEP = main_rmt.d
TRT_SRC = main_trt.cpp
TRT_OBJ = main_trt.o
TRT_DEP = main_trt.d
RMK_SRC = main_rmk.cpp
RMK_OBJ = main_rmk.o
RMK_DEP = main_rmk.d
#removing for fortran, updating for non-fortran in process
#SM0_SRC = main_sm0.cpp
#SM0_OBJ = main_sm0.o
......@@ -159,6 +174,10 @@ CLSQ_SRC = clsq.cpp main_clsq.cpp
CLSQ_OBJ = clsq.o main_clsq.o
CLSQ_DEP = clsq.d main_clsq.d
CLTR_SRC = clean_tree.cpp main_cltr.cpp
CLTR_OBJ = clean_tree.o main_cltr.o
CLTR_DEP = clean_tree.d main_cltr.d
AA2C_SRC = aa2cdn.cpp main_aa2cdn.cpp
AA2C_OBJ = aa2cdn.o main_aa2cdn.o
AA2C_DEP = aa2cdn.d main_aa2cdn.d
......@@ -183,13 +202,13 @@ VCF2FA_SRC = vcf_reader.cpp main_vcf2fa.cpp
VCF2FA_OBJ = vcf_reader.o main_vcf2fa.o
VCF2FA_DEP = vcf_reader.d main_vcf2fa.d
LS_SQ_SRC = seqinfo.cpp main_lssq.cpp
LS_SQ_OBJ = seqinfo.o main_lssq.o
LS_SQ_DEP = seqinfo.d main_lssq.d
LS_SQ_SRC = seq_info.cpp main_lssq.cpp
LS_SQ_OBJ = seq_info.o main_lssq.o
LS_SQ_DEP = seq_info.d main_lssq.d
LS_TR_SRC = treeinfo.cpp main_lstr.cpp
LS_TR_OBJ = treeinfo.o main_lstr.o
LS_TR_DEP = treeinfo.d main_lstr.d
LS_TR_SRC = tree_info.cpp main_lstr.cpp
LS_TR_OBJ = tree_info.o main_lstr.o
LS_TR_DEP = tree_info.d main_lstr.d
COMPTEST_SRC = comp_test.cpp main_comp.cpp
COMPTEST_OBJ = comp_test.o main_comp.o
......@@ -211,6 +230,18 @@ TCOL_SRC = main_tcol.cpp
TCOL_OBJ = main_tcol.o
TCOL_DEP = main_tcol.d
TCOMB_SRC = main_tcomb.cpp
TCOMB_OBJ = main_tcomb.o
TCOMB_DEP = main_tcomb.d
SSORT_SRC = main_ssort.cpp
SSORT_OBJ = main_ssort.o
SSORT_DEP = main_ssort.d
COLLAPSE_TREE_SRC = collapse_tree.cpp main_colt.cpp
COLLAPSE_TREE_OBJ = collapse_tree.o main_colt.o
COLLAPSE_TREE_DEP = collapse_tree.d main_colt.d
## doesn't seem to be used
CPP_SRCS += \
./utils.cpp \
......@@ -294,30 +325,21 @@ RATE_DEPS += \
#./state_reconstructor_simple.d \
# Each subdirectory must supply rules for building sources it contributes
#%.o: ./%.f
# $(FC) $(FFLAGS) -c -w $<
#FORT_OBJS += \
./clock.o \
./my_expokit.o \
./mataid.o \
./blas.o \
./lapack.o \
./my_matexp.o
# Each subdirectory must supply rules for building sources it contributes
%.o: ./%.cpp
$(CXX) $(OPT_FLAGS) -c -fmessage-length=0 -MMD -MP -MF "$(@:%.o=%.d)" -o "$@" "$<"
$(CXX) $(OPT_FLAGS) $(CPPFLAGS) $(LDFLAGS) -c -fmessage-length=0 -MMD -MP -MF "$(@:%.o=%.d)" -o "$@" "$<"
# $(CXX) $(OPT_FLAGS) -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
PROGS := pxmrca pxmrcacut pxmrcaname pxconsq pxbdsim pxlstr pxlssq pxupgma pxclsq pxcltr pxs2fa pxs2phy pxs2nex pxfqfilt pxrevcomp pxnw pxsw pxboot pxcat pxsstat pxrecode pxbp pxt2new pxrr pxaa2cdn pxtlate pxrms pxrmt pxtrt pxrmk pxnj pxlog pxvcf2fa pxrlt pxrls pxtscale pxstrec pxseqgen pxssort pxcontrates pxtcol pxtcomb pxssort pxcolt $(NLOPT_PROGRAMS)
# All Target
# pxnni not included for now
all: pxmrca pxmrcacut pxmrcaname pxconsq pxbdsim pxlstr pxlssq pxupgma pxclsq pxs2fa pxs2phy pxs2nex pxfqfilt pxrevcomp pxnw pxsw pxboot pxcat pxrecode pxbp pxt2new pxrr pxaa2cdn pxtlate pxrms pxrmt pxnj pxlog pxvcf2fa pxrlt pxrls pxtscale pxstrec pxseqgen pxcontrates $(NLOPT_PROGRAMS)
all: $(PROGS)
pxstrec: $(CPP_OBJS) $(RATE_OBJS) $(STREC_OBJ) #$(FORT_OBJS)
@echo 'building pxstrec'
$(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
$(CXX) -o "pxstrec" $(OPT_FLAGS) $(STREC_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
pxmrca: $(CPP_OBJS) $(MRCA_OBJ)
@echo 'building pxmrca'
......@@ -341,11 +363,11 @@ pxbdsim: $(CPP_OBJS) $(BD_SIM_OBJ)
pxbdfit: $(CPP_OBJS) $(BD_FIT_OBJ)
@echo 'building pxbdfit'
$(CXX) -o "pxbdfit" $(OPT_FLAGS) $(BD_FIT_OBJ) $(CPP_OBJS) $(CPP_LIBS)
$(CXX) -o "pxbdfit" $(OPT_FLAGS) $(BD_FIT_OBJ) $(CPP_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
pxnni: $(CPP_OBJS) $(NNI_OBJ)
@echo 'building pxnni'
$(CXX) -o "pxnni" $(OPT_FLAGS) $(NNI_OBJ) $(CPP_OBJS) $(CPP_LIBS)
$(CXX) -o "pxnni" $(OPT_FLAGS) $(NNI_OBJ) $(CPP_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
pxlstr: $(CPP_OBJS) $(LS_TR_OBJ)
@echo 'building pxlstr'
......@@ -367,6 +389,10 @@ pxclsq: $(CPP_OBJS) $(CLSQ_OBJ)
@echo 'building pxclsq'
$(CXX) -o "pxclsq" $(OPT_FLAGS) $(CLSQ_OBJ) $(CPP_OBJS)
pxcltr: $(CPP_OBJS) $(CLTR_OBJ)
@echo 'building pxcltr'
$(CXX) -o "pxcltr" $(OPT_FLAGS) $(CLTR_OBJ) $(CPP_OBJS)
pxrms: $(CPP_OBJS) $(RMS_OBJ)
@echo 'building pxrms'
$(CXX) -o "pxrms" $(OPT_FLAGS) $(RMS_OBJ) $(CPP_OBJS)
......@@ -401,7 +427,7 @@ pxfqfilt: $(CPP_OBJS) $(FQFILT_OBJ)
pxrevcomp: $(CPP_OBJS) $(REVCOMP_OBJ)
@echo 'building pxrevcomp'
$(CXX) -o "pxrevcomp" $(OPT_FLAGS) $(REVCOMP_OBJ) $(CPP_OBJS) $(CPP_LIBS)
$(CXX) -o "pxrevcomp" $(OPT_FLAGS) $(REVCOMP_OBJ) $(CPP_OBJS)
pxnw: $(CPP_OBJS) $(NW_OBJ)
@echo 'building pxnw'
......@@ -417,12 +443,16 @@ pxboot: $(CPP_OBJS) $(SEQSAMP_OBJ)
pxseqgen: $(CPP_OBJS) $(RATE_OBJS) $(SEQGEN_OBJ) $(FORT_OBJS)
@echo 'building pxseqgen'
$(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
$(CXX) -o "pxseqgen" $(OPT_FLAGS) $(SEQGEN_OBJ) $(CPP_OBJS) $(RATE_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
pxcat: $(CPP_OBJS) $(CONCAT_OBJ)
@echo 'building pxcat'
$(CXX) -o "pxcat" $(OPT_FLAGS) $(CONCAT_OBJ) $(CPP_OBJS)
pxsstat: $(CPP_OBJS) $(SSTAT_OBJ)
@echo 'building pxsstat'
$(CXX) -o "pxsstat" $(OPT_FLAGS) $(SSTAT_OBJ) $(CPP_OBJS)
pxlog: $(CPP_OBJS) $(LOGMANIP_OBJ)
@echo 'building pxlog'
$(CXX) -o "pxlog" $(OPT_FLAGS) $(LOGMANIP_OBJ) $(CPP_OBJS)
......@@ -431,9 +461,9 @@ pxvcf2fa: $(CPP_OBJS) $(VCF2FA_OBJ)
@echo 'building pxvcf2fa'
$(CXX) -o "pxvcf2fa" $(OPT_FLAGS) $(VCF2FA_OBJ) $(CPP_OBJS)
pxcontrates: $(CPP_OBJS) $(CONTRATES_OBJ) $(RATE_OBJS) $(FORT_OBJS)
pxcontrates: $(CPP_OBJS) $(CONTRATES_OBJ) $(RATE_OBJS)
@echo 'building pxcontrates'
$(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPP_LIBS) #$(FORT_OBJS) -lgfortran
$(CXX) -o "pxcontrates" $(OPT_FLAGS) $(CONTRATES_OBJ) $(RATE_OBJS) $(CPP_OBJS) $(CPPFLAGS) $(LDFLAGS) $(CPP_LIBS)
pxrecode: $(CPP_OBJS) $(SEQRECODE_OBJ)
@echo 'building pxrecode'
......@@ -459,6 +489,14 @@ pxrmt: $(CPP_OBJS) $(RMT_OBJ)
@echo 'building pxrmt'
$(CXX) -o "pxrmt" $(OPT_FLAGS) $(RMT_OBJ) $(CPP_OBJS)
pxtrt: $(CPP_OBJS) $(TRT_OBJ)
@echo 'building pxtrt'
$(CXX) -o "pxtrt" $(OPT_FLAGS) $(TRT_OBJ) $(CPP_OBJS)
pxrmk: $(CPP_OBJS) $(RMK_OBJ)
@echo 'building pxrmk'
$(CXX) -o "pxrmk" $(OPT_FLAGS) $(RMK_OBJ) $(CPP_OBJS)
#removing until fortran update
#pxsm0: $(CPP_OBJS) $(RATE_OBJS) $(SM0_OBJ) $(FORT_OBJS)
# @echo 'building pxsm0'
......@@ -488,12 +526,23 @@ pxtcol: $(CPP_OBJS) $(TCOL_OBJ)
@echo 'building pxtcol'
$(CXX) -o "pxtcol" $(OPT_FLAGS) $(TCOL_OBJ) $(CPP_OBJS)
pxtcomb: $(CPP_OBJS) $(TCOMB_OBJ)
@echo 'building pxtcomb'
$(CXX) -o "pxtcomb" $(OPT_FLAGS) $(TCOMB_OBJ) $(CPP_OBJS)
pxssort: $(CPP_OBJS) $(SSORT_OBJ)
@echo 'building pxssort'
$(CXX) -o "pxssort" $(OPT_FLAGS) $(SSORT_OBJ) $(CPP_OBJS)
pxcolt: $(CPP_OBJS) $(COLLAPSE_TREE_OBJ)
@echo 'building pxcolt'
$(CXX) -o "pxcolt" $(OPT_FLAGS) $(COLLAPSE_TREE_OBJ) $(CPP_OBJS)
install:
install -m 0755 px* $(prefix)
install -m 0755 px* $(prefix)/bin
uninstall:
-$(RM) $(prefix)/px*
-$(RM) $(addprefix $(prefix)/bin/, $(PROGS))
# Other Targets
clean:
......
INSTALLATION
phyx requires a few dependencies. Since installation of these dependencies differs on Linux vs. mac,
we've separated the instructions below.
## Linux install ##
1. Install general dependencies:
sudo apt-get install git
sudo apt-get install autotools-dev
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install cmake
sudo apt-get install libtool
sudo apt-get install liblapack-dev
sudo apt-get install libatlas-cpp-0.6-dev
2. Clone the phyx repo (if you haven't already):
git clone git@github.com:FePhyFoFum/phyx.git
3. Install nlopt dependency (default is C, we need C++; not available from apt-get). Either
obtain from http://ab-initio.mit.edu/wiki/index.php/NLopt#Download_and_installation or use
the copy distributed in the deps directory of phyx. Either way, untar and browse in the
terminal to that directory:
cd nlopt-2.4.2
./configure --with-cxx --without-octave --without-matlab
make
sudo make install
4. Install armadillo dependency. Note: it is possible to get from apt-get using:
sudo apt-get install libarmadillo-dev
but need version >= 5.2. On debian it was necessary to use backports:
sudo apt-get -t jessie-backports install libarmadillo-dev
If that is not possible, either obtain from http://arma.sourceforge.net/download.html
or use the copy distributed in the deps directory of phyx. Either way, untar and browse in the
terminal to that directory:
cd armadillo-7.400.2
./configure
make
sudo make install
5. Finally, install phyx:
cd phyx/src
autoconf
./configure
make
If you want to install it so it is available anywhere in your system, do:
sudo make install
## Mac install ##
Mac has become increasingly difficult to support at the command line with changes every version on
location and standards for compilation tools. In particular, Mac now defaults to clang, and clang does
not support OpenMP and doesn't link to gfortran (both used by phyx). For 10.9, we have found that it
is good to install gcc from HPC (http://hpc.sourceforge.net) or homebrew (http://brew.sh). Instructions
for both are below.
Mac Option 1: install using homebrew
1. Install the homebrew package manager (http://brew.sh/):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Make sure to get access to science packages:
brew tap homebrew/science
2. Install gcc (can take a while, but enables use of openmp and fortran):
brew install --without-multilib gcc
3. Install dependencies:
brew install git
brew install --use-gcc automake
brew install --use-gcc autoconf
brew install --use-gcc libtool
brew install --use-gcc cmake
brew install --use-gcc --c++11 nlopt
brew install --use-gcc --c++11 armadillo
4. On to phyx. First, clone the repository (if you haven't already):
git clone git@github.com:FePhyFoFum/phyx.git
cd phyx/src
autoconf
./configure CXX=/usr/local/bin/g++-6
make
If you want to install it so it is available anywhere in your system, do:
sudo make install
Mac Option 2: install using HPC
1. Install gcc and gfortran. Download gcc-6.2-bin.tar.gz or more recent from http://hpc.sourceforge.net/. Install with:
sudo tar -xvf gcc-6.2-bin.tar -C /
2. Install autoconf from http://ftp.gnu.org/gnu/autoconf/. Get autoconf-latest.tar.gz, then:
tar -xzf autoconf-latest.tar.gz
cd autoconf-2.69
./configure --prefix=/usr/local/autoconf-2.69
make
sudo make install
ln -s autoconf-2.69 /usr/local/autoconf
3. Install cmake and install Armadillo. Get cmake from https://cmake.org/download/
I got https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.tar.gz
Get armadillo from http://arma.sourceforge.net/download.html, get the stable one (alternatively,
use the one distributed in the deps directory). Untar it. Double click the Cmake.app. Click
"Browse source..." and choose the armadillo folder that was created after untaring. Click
"Browse build..." and choose the same folder as browse source. Click "Configure" and then click
"Generate". Go to the terminal and browse to that armadillo folder and type:
make
sudo make install
4. Install nlopt. Go to http://ab-initio.mit.edu/wiki/index.php/NLopt#Download_and_installation
and download the latest (alternatively, use the one distributed in the deps directory). Untar
and browse in the terminal to that directory:
./configure --with-cxx --without-octave --without-matlab
make
sudo make install
5. Compile phyx. Now you can go to the src directory of phyx and type:
autoconf
./configure
make
If you want to install it so it is available anywhere in your system, do:
sudo make install
>Seq1
AAATCCAGGG
>Seq2
AAACCCAACA
>Seq3
AATCGGTTCA
>Seq4
AATCGGTATT
\ No newline at end of file
(((TaxonA:0.1,TaxonB:0.03)0.43:0.125,TaxonC:0.25)1.0:0.4,(TaxonD:0.23,TaxonE:0.16)0.94:0.3);
(((TaxonA:0.1,TaxonB:0.03)43:0.125,TaxonC:0.25)100:0.4,(TaxonD:0.23,TaxonE:0.16)94:0.3);