Skip to content
Commits on Source (5)
......@@ -15,7 +15,7 @@ install:
build_script:
- bash -lc "cd $APPVEYOR_BUILD_FOLDER/ && git submodule update --init"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER/ && meson.py build --prefix=$APPVEYOR_BUILD_FOLDER/local"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER/ && meson build --prefix=$APPVEYOR_BUILD_FOLDER/local"
- bash -lc "cd $APPVEYOR_BUILD_FOLDER/build && ninja install
# - bash -lc "cd $APPVEYOR_BUILD_FOLDER/build && ninja test"
......
......@@ -3,3 +3,4 @@ doc/html
doc/latex
\#*#
*.orig
build*/
......@@ -5,37 +5,37 @@ language: cpp
matrix:
include:
- os: linux
dist: trusty
env: CXX_COMPILER=g++-5
dist: xenial
env: CXX_COMPILER=g++-6
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- g++-6
- pandoc
- os: linux
dist: trusty
env: CXX_COMPILER=g++-6
dist: xenial
env: CXX_COMPILER=g++-7
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- g++-7
- pandoc
- os: linux
dist: trusty
env: CXX_COMPILER=g++-7
dist: xenial
env: CXX_COMPILER=g++-8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- g++-8
- pandoc
- os: linux
dist: trusty
dist: xenial
compiler: clang++
addons:
apt:
......@@ -44,12 +44,12 @@ matrix:
packages:
- g++-7
- pandoc
- os: osx
osx_image: xcode10.1
- os: osx
osx_image: xcode9.2
- os: osx
osx_image: xcode8.3
- os: osx
osx_image: xcode7.3
before_install:
# We need to re-export CC and CXX here, because travis exports CXX=g++ or clang++ AFTER we set CXX.
......
UNRELEASED
* 3.4 (Dec 13, 2018)
- Evolutionary models
- Add Doublet alphabet for RNA stems.
- Add generic +mut_sel model modifier.
+ Add models x2, x2_sym, x2x2 for RNA stems.
+ Add RNA.m16a model for RNA stems.
- Fixes
-
- "--" should not become a single long dash (en-dash) in man pages.
+ Don't crash if --scale is set to a constant (e.g. --scale=1).
- Allow reading (a,b):1.0; by ignoring the root branch length.
+ Properly translate newick labels with quotes or _.
+ Don't replace W with A in observed sequences unless --set infer-ambiguous-observed=true
- Misc
- Correctly log things inside a let binding.
+ Allow selecting character ranges from a file: "sequences.fasta:100-240,300-900"
+ Rename subsample to bali-subsample (to avoid conflicts with other software).
+ Install bali-phy-pkg.
+ Make BES package work again.
+ Reorganize fields on C1.log
- Hold Numeric[k] or Doublets[DNA/RNA] alignments fixed.
- Allow writing alignments every iteration.
- tree-tool: add scaling, pruning, computing diameter, etc.
- cut-range: allow selection samples from more than 1 alignment file
- alignment-thin: clean up options and man page.
- alignment-distances: new tool, add accuracy and recall metrics.
- MCMC
- Only compute probability *ratios*
+ Allow recovery from initial -infinity.
- Improved mixing for [0,1] random variables.
- Graphical model framework
- Interpreted models now separate the likelihood from the prior in logged output.
- Interpreted models (e.g. LinearRegression.hs) are now a lot faster.
- Simplify constructing loggers.
- Allow using poisson distribution.
- Haskell
- Allow "import modid ( .... )" and "import modid hiding ( .... )"
- Add Data.JSON module
- Implement quot, rem, div, mod.
- Implement -X NoImplicitPrelude
- Refactored functions out of Prelude into Data.List, etc.
- Implement layout-sensitive parsing.
- Implement pattern bindings (i.e. let (x,y) = E1 in E2)
- Implement @-patterns (i.e. x@(y,z) )
- Implement lazy patterns (i.e. ~(y,z) )
- Implement guards for functions and case.
- Allow modules with no "module Name where" clause.
- Implement running a module with --run-module
- Encode strings as (listFromString String)
- Add flags for dumping parsed, renamed, desugared, etc. code.
- [FIX] float let out of let if it reveals a constant.
* 3.3 (Aug 6, 2018)
- Fixes
......@@ -15,7 +62,7 @@ UNRELEASED
- add gy94_ext and mg94_ext for using any nucleotide rate matrix.
- add mg94k for mg94_ext[hky85]
- Triplet models
- fix up x3, x3_xym, x3x3
- fix up x3, x3_sym, x3x3
- add +dNdS function so we can do e.g. hky85+x3+dNdS
- Functions in models
- Add new syntax function[x,...] for specifying models.
......@@ -144,7 +191,7 @@ UNRELEASED
* Read json using nlohmann::json
* Switch to new ptree structure.
3.0-beta5 (Dec 6, 2018)
3.0-beta5 (Dec 6, 2017)
- Fixes
- Don't crash on --smodel=GTR+x3
- Short parameter names
......
......@@ -57,12 +57,10 @@ Build BAli-Phy
--------------
```
git clone https://github.com/bredelings/BAli-Phy.git
cd BAli-Phy/
git submodule update --init # This is optional, it allows running the testiphy testsuite
cd BAli-Phy
meson build --prefix=$HOME/Applications/bali-phy
ninja -C install
ninja -C test
ninja -C build install
ninja -C build test
```
Adding bali-phy to your `$PATH`
......
bali-phy (3.4+dfsg-1) UNRELEASED; urgency=medium
* New upstream version
* Remove patches applied upstream.
* Update to Standards-Version 4.2.1
-- Benjamin Redelings <benjamin.redelings@gmail.com> Thu, 13 Dec 2018 20:56:16 -0500
bali-phy (3.3+dfsg-1) unstable; urgency=medium
* New upstream version
......
......@@ -15,7 +15,7 @@ Build-Depends: debhelper (>= 11),
libboost-system-dev,
libboost-filesystem-dev,
libboost-chrono-dev
Standards-Version: 4.1.5
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/med-team/bali-phy
Vcs-Git: https://salsa.debian.org/med-team/bali-phy.git
Homepage: http://www.bali-phy.org
......
Author: Benjamin Redelings
Last-Update: 2018-05-06 07:50:25 -0400
Description: Run tests by explicitly unsing Python3
Index: bali-phy/tests/run-tests.py
===================================================================
--- bali-phy.orig/tests/run-tests.py
+++ bali-phy/tests/run-tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from __future__ import print_function
import subprocess
import os
Changes in 1.8.17
* [BUGFIX] Make sure proposals and priors are on the same scale.
* [BUGFIX] We MUST sample both nodes and alignment in SPR moves.
* [NEW] Add some documentation.
* [NEW] Make tool 'tree-dist-compare' compare any number of
tree distributions.
* [CHANGE] Increase mixing for epsilon...
* [CHANGE] Sanitize the interface.
* [CHANGE] Make the makefile self-contained.
* [CHANGE] Introduce shift_laplace prior to allow data to overpower
prior. Use in prior on kappa + omega.
Changes in 1.8.13:
* [BUGFIX] Our branch length proposal was biased upwards! Fixed.
* [CHANGE] Sanitize move attributes
* [CHANGE] Make 'gaps=star' automatically disable conflicting moves.
* [CHANGE] Print out weights
* [DEBUG] In debug mode, check that our cached transition matrices
are correct.
Changes in 1.8.12:
* [BUGFIX] Make tree operator=(*this) do nothing.
* Store partial emission probabilities in Matrix instead of vector<
valarray<double> >.
* Compute and cache emission probabilities e(i,j)
* Alter s2_sub to reduce the number of operations needed to compute
e(i,j)
Changes in 1.8.11:
* Compute GQ probabilities using new State-Reduction (SR) algorithm
* Add new routine logdiff(x,y) = log(exp(x)-exp(y))
* Unify several routines to just call sample_two_nodes_multi()
* Unify several routines to just call sample_tri_multi()
Changes in 1.8.9:
* Change the name 'sampler' to 'bali-phy'.
* [CHANGE] Further improve and unify loading of alignments w/ and w/o
internal nodes.
* [CHANGE] Update alignment-blame and make it run again
* [CHANGE] Check that target matches samples!
* Put debugging output from optimize.C under #ifndef NDEBUG
* [CHANGE] Don't complain about missing letters while trying to
determine the alphabet.
* [BUGFIX] Fix tree_sample::supports_topology when topology NEVER
occurs
Changes in 1.8.8:
* [FEATURE] Change randomize_alignment to be useable with large
number of taxa.
* [BUGFIX] Change topology branch score by factor of 2
* [CHANGE] Make alignments print only every 10 iterations to decrease
file size.
* [CHANGE] Improve and unify loading of alignments w/ and w/o
internal nodes
* [CHANGE] Check that internal node states are not letters, and are
consistent when loading alignments.
* [CHANGE] Change mode of kappa distribution to 2, and increase
variance.
* [CHANGE] Change kappa initial value to 2.
* [CHANGE] Improve tree-dist-compare
* move calculations of likelihoods on half-trees to alignment-sums.C
* remove move slide_branch_and_T
* break off part of class HMM into class DPengine
* break off part of hmm.H into dp-engine.H
* remove TreeFunc - it wasn't really used
Changes in 1.8.7:
* [FEATURE] Throw an exception if we set a parameters twice on the
command line
* [FEATURE] New tool tree-dist-compare.C, new file tree-dist.C
* [BUGFIX] We accidentally changed SPR_and_A to SPR_and_nodes in
1.8.6. Change it back!
* [BUGFIX] Correctly print the branch length for the highest numbered
branch.
* [BUGFIX] The "branch score" distance was broken
Changes in 1.8.6
* [BUGFIX] remember to recalc() the branches that SPR changes!
* [CHANGE] Change branch_mean proposals to log scale
* [CHANGE] Change kappa,omega proposals to log scale in HKY and
YangCodonModel.
Changes in 1.8.5:
* [BUGFIX] Con't crash when a MCMC MoveEach has no enabled moves
for an arg. Instead, assert.
* [CHANGE] Run the tree moves twice every iteration....
* [CHANGE] Run SPR more often
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
No preview for this file type
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -15,8 +15,17 @@
</info>
<section xml:id="intro"><info><title>Introduction</title></info>
<para>This tutorial offers a quick overview of bali-phy with an emphasis on concrete analysis of real datasets. Other documentation includes:
<itemizedlist>
<listitem>The <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/README.xhtml">Users Guide</link> is much more complete.</listitem>
<listitem>Run <userinput><replaceable>tool</replaceable> --help</userinput> to see command line options for <replaceable>tool</replaceable>.</listitem>
<listitem>Run <userinput>man <replaceable>tool</replaceable></userinput> to see the manual page for <replaceable>tool</replaceable>.</listitem>
<listitem>Manual pages for bali-phy and tools are also available <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/docs.php#manpages">online</link>.</listitem>
</itemizedlist>
</para>
<para>
Before you start this tutorial, please <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/download.php">download</link> and install bali-phy, following the installation instructions in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/README.html">manual</link>.</para>
Before you start this tutorial, please <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/download.php">download</link> and install bali-phy, following the installation instructions in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.bali-phy.org/README.html">User Guide</link>.</para>
</section>
<section xml:id="work_directory"><info><title>Setting up the <filename>~/alignment_files</filename> directory</title></info>
......@@ -50,22 +59,34 @@ What version of bali-phy are you running? When was it compiled? Which compiler
Look at the list of command line options:
% bali-phy -h | less
% bali-phy --help | less
As you can see, many options have a long form, and a short form which is a single letter.
% bali-phy help | less
By default, not all the options are shown. To see more options, try:
% bali-phy help advanced | less
% bali-phy help expert | less
</para>
<para>All bali-phy tools also take <userinput>--help</userinput>.
% alignment-thin --help | less
% alignment-cat --help | less
</para>
</section>
<section xml:id="help"><info><title>Help</title></info>
<para>
You can also show help for advanced options:
% bali-phy --help=advanced | less
% bali-phy --help=expert | less
There is a shorter syntax for help topics:
% bali-phy help advanced | less
You can get help on models, distributions, functions, and command-line options:
You can get extended help on each command line option:
% bali-phy help iterations | less // --iterations=&lt;num&gt; <emphasis>command line option</emphasis>
% bali-phy help alphabet | less // --alphabet=&lt;a&gt; <emphasis>command line option</emphasis>
You can also get help on models, distributions, functions, and command-line options:
% bali-phy help tn93 | less // Tamura-Nei (1993) <emphasis>model</emphasis>
% bali-phy help normal | less // Normal <emphasis>distribution</emphasis>
% bali-phy help quantile | less // quantile <emphasis>function</emphasis>
% bali-phy help iterations | less // --iterations=&lt;num&gt; <emphasis>command line option</emphasis>
There are additional help topics you might want to explore:
% bali-phy help topics | less // to see additional help topics
% bali-phy help parameters | less // setting parameters
% bali-phy help Codons | less // Codons alphabets
</para>
</section>
<section ><info><title>Analysis 1: 5S rRNA -- free alignment versus fixed alignment</title></info>
......@@ -489,8 +510,8 @@ This means that the branch lengths for partitions 1 and 3 are the same, instead
</section>
<section><info><title>Dataset preparation</title></info>
<section><info><title>Splitting and Merging Alignments</title></info>
<para>BAli-Phy generally wants you to split concatenated gene regions in order to analyze them.
<section><info><title>Splitting and merging Alignments</title></info>
<para>You might want to split concatenated gene regions:
% cd ~/alignment_files/examples/ITS-many/
% alignment-cat -c1-223 ITS-region.fasta > 1.fasta
% alignment-cat -c224-379 ITS-region.fasta > 2.fasta
......@@ -503,11 +524,17 @@ Later you might want to put them back together again:
<section><info><title>Shrinking the data set</title></info>
<para>
You might want to reduce the number of taxa while attempting to preserve phylogenetic diversity:
% alignment-thin --down-to=30 ITS-region.fasta > ITS-region-thinned.fasta
% alignment-thin --cutoff=5 ITS-region.fasta -v --preserve=Csaxicola420 > ITS-region-thinned.fasta
This removes sequences with 5 or fewer differences to the closest other sequence.
<itemizedlist>
<listitem>The <userinput>-v</userinput> option shows which sequences are removed and the distance to their closest neighbor.</listitem>
<listitem>The <userinput>--preserve</userinput> option keeps specific sequences in the data set.</listitem>
</itemizedlist>
You can also specify that data sets should be shrunk to a specific number of sequences:
% alignment-thin --down-to=30 ITS-region.fasta -v > ITS-region-thinned.fasta
</para>
<para>
You can specify that certain sequences should not be removed:
% alignment-thin --down-to=30 --keep=Csaxicola420 ITS-region.fasta > ITS-region-thinned.fasta
<para>To see all options, run:
% alignment-thin --help
</para>
</section>
......
......@@ -4,7 +4,9 @@
## Fork the repo
1. Click the "Fork" button on [https://github.com/bredelings/BAli-Phy/](https://github.com/bredelings/BAli-Phy). This will create a separate copy of the repo under your own account.
This will create a separate copy of the repo under your own account.
1. Click the "Fork" button on [https://github.com/bredelings/BAli-Phy/](https://github.com/bredelings/BAli-Phy).
1. Use `git clone` to download your own version of the repo:
``` sh
......@@ -15,7 +17,7 @@ The name `origin` in your local repo will then refer to your modified version of
1. To refer to the official upstream version, create a new remote called `upstream`:
``` sh
cd BAli-Phy/
git remote add upstream git@github.com:bredelings/BAli-Phy.git
git remote add upstream https://github.com:bredelings/BAli-Phy.git
git remote -v
```
......@@ -49,17 +51,16 @@ These directories contain documentation and examples:
[examples/models/](https://github.com/bredelings/BAli-Phy/blob/master/examples/models/)
: Example files for running graphical models.
## Contributions
We are excited to see what you will contribute!
## How to contribute
The way to submit patches is:
We are excited to see what you will contribute! The way to submit changes is:
1. First develop changes in your own repo.
1. Fork the BAli-Phy repo to create your own repo.
1. Develop changes on a branch in your own repo.
1. Send a [pull request](https://help.github.com/articles/about-pull-requests/) through github.
1. CI tests will run automatically on the on suggested changes.
1. Tests will run automatically on the on suggested changes.
1. We will review the changes.
1. If accepted, changes will be merged to the master branch.
1. If accepted, changes will be merged to the master branch of the main repo.
# Building bali-phy
......@@ -106,10 +107,10 @@ ninja install
Haskell functions are defined in the Haskell modules under [modules/](https://github.com/bredelings/BAli-Phy/blob/master/modules/). For example, the function `min` is defined in `Prelude.hs` as follows:
``` Haskell
min x y = if (x <= y) then x else y;
min x y = if (x <= y) then x else y
```
To add a Haskell function, you simply need to define a function in one of these modules. However, be aware that the Haskell parser in bali-phy is not very advanced, and so you will need to specify `{`, `}`, and `;` in places where they are optional in standard Haskell.
To add a Haskell function, you simply need to define a function in one of these modules.
## Adding a C++ function
......@@ -120,13 +121,13 @@ To add a "builtin" C++ operation to bali-phy's Haskell code, you must add the C+
A builtin is declared via the following syntax:
``` Haskell
builtin haskell_name number_of_arguments "c++ name" "module name";
builtin haskell_name number_of_arguments "c++ name" "module name"
```
For example, the Haskell function `poisson_density` is declared with the following line from [modules/Distributions.hs](https://github.com/bredelings/BAli-Phy/blob/master/modules/Distributions.hs):
``` Haskell
builtin poisson_density 2 "poisson_density" "Distribution";
builtin poisson_density 2 "poisson_density" "Distribution"
```
The first two arguments specify the Haskell name (`poisson_density`) and the number of arguments in Haskell (`2`). The C++ function name is derived from the third argument (`poisson_density`) by adding `builtin_function_` in front. So the C++ function will be called `builtin_function_poisson_density`. The last argument specifies which loadable module contains the C++ function. Since this function is in the module "Distribution", its source code goes in [src/builtins/Distribution.cc](https://github.com/bredelings/BAli-Phy/blob/master/src/builtins/Distribution.cc).
......@@ -135,7 +136,7 @@ The first two arguments specify the Haskell name (`poisson_density`) and the num
The C++ function for a builtin must be defined in one of the C++ files in the [src/builtins](https://github.com/bredelings/BAli-Phy/blob/master/src/builtins) directory, and the function name must begin with `builtin_function_`. The function must also be declared `extern "C"` (to avoid name mangling).
For example, the poisson density function is written in [src/builtins/Distirbution.cc](https://github.com/bredelings/BAli-Phy/blob/master/src/builtins/Distribution.cc) as follows:
For example, the poisson density function is written in [src/builtins/Distribution.cc](https://github.com/bredelings/BAli-Phy/blob/master/src/builtins/Distribution.cc) as follows:
``` C++
extern "C" closure builtin_function_poisson_density(OperationArgs& Args)
......@@ -165,16 +166,16 @@ Distributions are defined in [modules/Distributions.hs](https://github.com/brede
For a distribution, you need to add a function that constructs a ProbDensity object.
``` Haskell
name parameters = ProbDensity (density parameters) (quantile parameters) (sample parameters) (range parameters);
name parameters = ProbDensity (density parameters) (quantile parameters) (sample parameters) (range parameters)
```
For example, the Normal distribution is defined as:
``` Haskell
builtin normal_density 3 "normal_density" "Distribution";
builtin normal_quantile 3 "normal_quantile" "Distribution";
builtin builtin_sample_normal 2 "sample_normal" "Distribution";
sample_normal m s = Random (IOAction2 builtin_sample_normal m s);
normal m s = ProbDensity (normal_density m s) (normal_quantile m s) (sample_normal m s) realLine;
builtin normal_density 3 "normal_density" "Distribution"
builtin normal_quantile 3 "normal_quantile" "Distribution"
builtin builtin_sample_normal 2 "sample_normal" "Distribution"
sample_normal m s = Random (IOAction2 builtin_sample_normal m s)
normal m s = ProbDensity (normal_density m s) (normal_quantile m s) (sample_normal m s) realLine
```
### Density
......@@ -203,19 +204,20 @@ extern "C" closure builtin_function_sample_normal(OperationArgs& Args)
```
Then use one of the following patterns, depending on how many arguments your sampling routine takes:
``` Haskell
sample_dist arg1 = Random (IOAction1 builtin_sample_dist arg1);
sample_dist arg1 arg2 = Random (IOAction2 builtin_sample_dist arg1 arg2);
sample_dist arg1 arg2 arg3 = Random (IOAction3 builtin_sample_dist arg1 arg2 arg3);
sample_dist arg1 = Random (IOAction1 builtin_sample_dist arg1)
sample_dist arg1 arg2 = Random (IOAction2 builtin_sample_dist arg1 arg2)
sample_dist arg1 arg2 arg3 = Random (IOAction3 builtin_sample_dist arg1 arg2 arg3)
```
For example:
``` Haskell
builtin builtin_sample_normal 2 "sample_normal" "Distribution";
sample_normal m s = Random (IOAction2 builtin_sample_normal m s);
builtin builtin_sample_normal 2 "sample_normal" "Distribution"
sample_normal m s = Random (IOAction2 builtin_sample_normal m s)
```
The `(dist_sample parameters)` function returns an object in the Random monad, where executing a distribution has the semantics of sampling from the distribution. The sampling procedure can also call other actions in the Random monad. For example, here we sample from the distribution `(dist2 args)` and transform the result.
``` Haskell
sample_dist args = do { x <- dist2 args; return (f x);}
sample_dist args = do x <- dist2 args
return (f x)
```
### Range
......@@ -247,15 +249,11 @@ where `n` is the number of dimensions, and `sum` is the sum of the values (usual
## Using a function from the command line
To make a Haskell function accessible from the command line, you must add a JSON file to the directory `functions/` that registers the Haskell function.
For example, the file `functions/HKY.json` allows the user to specify (for example) `-S HKY[kappa=2]` as a substitution model. It connects the command line phrase `HKY[kapp=2]` with the Haskell function `SModel.hky` defined in the file `modules/SModel.hs`.
The JSON looks like this:
To make a Haskell function accessible from the command line, you must add a JSON file to the directory `functions/` that registers the Haskell function. For example, the file `functions/hky85.json` allows the user to specify (for example) `-S hky85[kappa=2]` as a substitution model. The JSON looks like this:
``` json
{
"name": "HKY",
"name": "hky85",
"title": "The Hasegawa-Kishino-Yano (1985) nucleotide rate matrix",
"result_type": "ExchangeModel[a]",
"constraints": ["Nucleotides[a]"],
......@@ -266,55 +264,64 @@ The JSON looks like this:
"journal": {"name": "Journal of molecular evolution", "volume": "22",
"identifier": [{"type":"doi","id":"10.1007/BF02101694"}]
},
"call": "SModel.hky[kappa,alphabet]",
"call": "SModel.Nucleotides.hky85[kappa,SModel.Frequency.frequencies_from_dict[a,pi],a]",
"args": [
{
"arg_name": "kappa",
"arg_type": "Double",
"default_value": "~logNormal[log[2],0.25]",
"default_value": "~log_normal[log[2],0.25]",
"description": "Transition\/transversion ratio"
},
{
"arg_name": "alphabet",
"arg_name": "pi",
"arg_type": "List[Pair[String,Double]]",
"default_value": "~dirichlet_on[letters[@a],1]",
"description": "Letter frequencies"
},
{
"arg_name": "a",
"arg_type": "a",
"default_value": "getAlphabet"
"default_value": "getAlphabet",
"description": "The alphabet"
}
],
"description":"Technically, this is just the symmetric matrix from HKY"
"description":"The HKY85 model",
"extract": "all"
}
```
The fields are defined as follows:
`name`
: specifies how this function will be invoked on the command line.
: The name of this function on the command line.
`call`
: specifies which Haskell function to call and the order of the arguments to pass.
: The Haskell function to call, and the order of the arguments to pass.
`result_type`
: specifies the result type of the function.
: The result type of the function.
`args`
: describes the list of named arguments
: The the list of named arguments
`args.arg_name`
: gives the name of each argument
: The name of each argument
`args.arg_type`
: gives the type of each argument
: The type of each argument
`args.default_value`
: gives a value for the argument if not specified (optional).
: A value for the argument if not specified (optional).
`args.description`
: gives a short phrase describing the argument (optional).
: A short phrase describing the argument (optional).
`title`
: A title for the function (optional).
`description`
: gives a longer description of the function (optional).
: A longer description of the function (optional).
`title`
: gives a title for the function (optional).
## Adding a new MCMC move
......
......@@ -59,15 +59,18 @@ pre {
}
pre.programlisting {
background-color: #F3F3E0;
border:solid;
background-color: #D0E3FF;
border-color:#BBB;
border-width:0.1em;
border-radius: 0.5em;
// border: solid green;
margin: 0;
margin-left: 3em;
margin-left: 0.5em;
padding: 0.5em;
padding-left:1em;
width: calc(100% - 8em);
padding: 1em;
width: calc(100% - 4em);
}
pre.screen {
......
......@@ -4,7 +4,7 @@
# NAME
**alignment-cat** -- Concatenate several alignments (with the same sequence names) end-to-end.
**alignment-cat** - Concatenate several alignments (with the same sequence names) end-to-end.
# SYNOPSIS
......@@ -57,22 +57,17 @@ Concatenate several alignments (with the same sequence names) end-to-end.
# EXAMPLES:
To select columns from an alignment:
```
% alignment-cat -c1-10,50-100,600- filename.fasta > result.fasta
% alignment-cat -c5-250/3 filename.fasta > first_codon_position.fasta
% alignment-cat -c6-250/3 filename.fasta > second_codon_position.fasta
```
To concatenate two or more alignments:
```
% alignment-cat filename1.fasta filename2.fasta > all.fasta
```
# REPORTING BUGS:
BAli-Phy online help: <http://www.bali-phy.org/docs.php>.
......
......@@ -4,7 +4,7 @@
# NAME
**alignment-chop-internal** -- Remove ancestral sequences from an alignment.
**alignment-chop-internal** - Remove ancestral sequences from an alignment.
# SYNOPSIS
......
......@@ -4,7 +4,7 @@
# NAME
**alignment-compare** -- Compare two alignment distributions.
**alignment-compare** - Compare two alignment distributions.
# SYNOPSIS
......