Introduction
You can download and install OMA as a stand-alone version. Included are the algorithms for OMA itself plus its addition ESPRIT. The software can be installed on Linux (x86, both 64bit and 32bit) and MacOSX (x86, both 32bit and 64bit).
For background info on OMA, please refer to the OMA browser page:
http://omabrowser.org/Algorithm.html
For background info on ESPRIT, please refer to this article:
http://dx.doi.org/10.1093/bib/bbr038
If you have specific questions about the installation or the usage of OMA, please contact {adrian or cdessimoz}@inf.ethz.ch .
Downloads
The current version of OMA stand-alone can be found here:
Installation
You do not need to install OMA stand-alone on your system; the script will also run if you just call it by using the complete path to bin/oma in the installer folder. But we still encourage you to run the installer script, since it makes working with OMA considerably more convenient.
To install OMA stand-alone on your system, download the installer, untar the package and run the included installer script:
curl http://omabrowser.org/standalone/OMA.0.99x.tgz -o oma.tgz tar xvzf oma.tgz cd OMA.0.99x ./install.sh /your/install/prefix
If you do not choose an install prefix, OMA will be installed in /usr/local/OMA (for this, you might need to install it using the root account or sudo ).
After installation, make sure the bin folder of OMA is in your PATH variable, e.g., if you are using bash and used /your/install/prefix as installer prefix, add a line in ~/.profile such as:
export PATH=$PATH:/your/install/prefix/OMA/bin
For other shells, choose the appropriate syntax.
Usage
First, set up a working directory. Copy the file parameters.drw into this folder and change it to your needs. Create a directory DB in your working directory that holds the genome data in FASTA format (see "File formats") and copy your data into this directory. If you want to use ESPRIT, the FASTA file containing the contigs should be called {YourGenome}.contig.fa . Then, simply call OMA from your working directory to run OMA and/or ESPRIT
If you have not installed OMA yet, use the complete path to bin/oma in the installer folder to start the script.
As an example, assume you installed OMA in /your/install/prefix and want to use ESPRIT on two genome files and one file with contigs (all in /home/you/fasta , do something like this:
# create working directory mkdir myWorkingDir cd myWorkingDir # create DB directory in working directory mkdir DB # copy FASTA files into DB directory cp /home/you/fasta/yourFirstGenomeFile.fa DB/ cp /home/you/fasta/yourSecondGenomeFile.fa DB/ cp /home/you/fasta/yourContigFile.contig.fa DB/ cp /your/install/prefix/OMA/OMA.0.99x/parameters.drw ./ # adjust parameters vim parameters.drw # run OMA OMA
To get a first impression of OMA you could cd into the ToyExample directory, have a look at parameters.drw and run OMA to process our example files.
Parallelization
The all-against-all phase of OMA is the most time-consuming one, but it can be parallelized (unlike all other steps, which cannot run in parallel). The way it works is that the parameter "AlignBatchSize" and the total number of genomes (n) will determine into how many chunks the all-against-all phase is divided. AlignBatchSize will split the n*(n-1)/2 genome pairs further into junks of at most "AlignBatchSize" alignments. The larger AlignBatchSize is, the more and smaller jobs will be executed.
Scheduling is quite straightforward: all compute processes need to start from the same directory, and each one will try to do an equal amount of chunks sequentially. However, before starting a new chunk, each process ensures that it has not yet already been processed by another process (i.e. no result file yet exists).
On a single computer with multiple processors and/or cores, it is recomended to start "N" parallel processes with the "-n" option, i.e.
OMA -n 5will start 5 parallel jobs. Note that on HPC with schedulers there is a better way described below
Therefore, there is not need to specify which parts are to be done by which process. One should only ensure that all processes start from a shared directory, such that each chunk gets computed by a single process only.
Parallelization with LSF or SunGridEngine
With LSF or SGE, running parallel jobs is particularly easy, as the parallel jobs can be start using as a job array. OMA will automatically spread the work for the all-against-all among all processes. Do not start OMA with the -n option for that:
bsub -J "OMA[1-100]" -o "out.%I" "OMA"or
qsub -t 1-100 "OMA"
respectively, which starts 100 processes in parallel.
Adding/Updating new genomes
It is possible to add new genomes without recomputing the all-against-all phase for pre-existing genomes. To do so, simply add the new fasta databases in the DB/ directory and re-run OMA. Likewise, it is possible to update a genome by deleting the old genome from the DB/ directory, and adding a new file. Important: to avoid clashes with previously computed results, the updated genome must use a different filename than the any previously computed result.
File Formats
Input Files
OMA uses two different input formats: FASTA files for genome input and a Darwin file for parameter input.
The Fasta format is explained in detail on wikipedia.
As almost everywhere else, OMA uses the greater-than symbol ">" to distinguish labels from sequences. Each sequence in an MSA is supposed to have its own label. Have a look at the FASTA files included in ToyExample/DB in our installer package for some example files.
If you want to use ESPRIT, make sure that FASTA files containing contigs are called {YourGenome}.contig.fa . So if you want to experiment with some mouse genome, call the FASTA file mouse.contig.fa or mymouse.contig.fa or something similar.
Parameter files use Darwin syntax. Key-value-pairs are written as
key := value;
Note the colon in := and the semicolon at the end of the line. If your parameter file does not use valid Darwin syntax, OMA will print out a short message and stop its execution.
Output Files
OMA Output
The output of OMA gets written to files stored in a directory Output in your working directory. There are text files and directories organized as described in Table 1.
Filename or Directory | Contents |
---|---|
Map-SeqNum-ID.txt | Lists all genes of all datasets with their unique sequence number and the labels read from the FASTA files. |
OrthologousGroups.txt | The groups of orthologs are given as one per row, starting with a unique group identifier, followed by all group members, all separated by tabs. |
OrthologousMatrix.txt | More compact version of OrthologousGroups.txt . The groups of orthologs are given as matrix with group per row and one genome per tab-separated column. Numbers refer to entry number as listed in the file Map-SeqNum-ID.txt . |
OrthologousGroups.orthoxml | The OMA groups of orthologs stored in orthoxml format. |
OrthologousGroupsFasta/ | Each OMA group is provided as a separate Fasta file, with the species name as identifer. This format is particularly suitable as starting point for a phylogenetic reconstruction. |
PairwiseOrthologs/ | The textfiles in Output/PairwiseOrthologs are named according to {genome a}-{genome b}.txt and consist of a list of pairwise orthologs for the two given genomes. Every pair is listed only once, and in no particular order. Each line in the file contains one pair; all fields are separated by tabs. In the first two field, the unique IDs of the proteins are given. The next two fields contain the labels of the proteins, and in the last two fields, the type of orthology and (if any) the OMA group is given. |
OrthologousPairs.orthoxml | The pairwise orthologs stored in orthoxml format. Each group in the file will have orthologs between genes from only two genomes. |
HierarchicalGroups.orthoxml | The hierarchical groups of orthologs in OrthoXML format. A detailed description of how these groups are computed is forthcoming. |
EstimatedSpeciesTree.nwk | The inferred species tree on which the hierarchical groups inference procedure is based, in Newick format. |
HOGFasta/ | For each toplevel HOG group we provide a separate Fasta file with all protein sequences clustered to it. This format is particularly suitable as starting point for a phylogenetic reconstruction of a gene tree. |
ESPRIT Output
ESPRIT stores its output files in a directory calledEspritOutput in your working directory. The output consists of three text files and one tarball. In the tarball, FASTA files with the MSAs of the hits ESPRIT found are stored. The other three files are explained in detail in Table 2.
Filename | Contents |
---|---|
params.txt | This file is kept as a reference and contains all parameters used in the current run. |
hits.txt | All hits found by ESPRIT are listed in this file. It is a list of contigs, ordered according to their position relative to the putative ortholog. Each line describes one contig, the fields are separated by tabs. In the first field, the fragment pair ID is printed; the next two fields contain the labels of the first and second fragments found in this hit. The forth and fifth fields contain the label of the corresponding full gene and its genome name. Then follows the distance difference between the two fragments and the number of positions between them (i.e. the gap); at last, an array is listed containing the IDs of all s3 genes corresponding to this hit. |
dubious.txt | ESPRIT often detects more candidate pairs than it will list in the hits.txt file, but not all of them survive the quality check. Still, if you want to see which triplets have been filtered out, have a look at dubious.txt where they are still listed. The file format is the same as for hits.txt . |
Parameters
All parameters for OMA and/or ESPRIT are set in a parameters file. There is an example file in the OMA installer package; we encourage you to copy this file into your working directory and change it to your needs.
The parameter file consists of two main parts: First, general parameters for OMA are set; see Table 3 for detailed explanations. Second, more specific parameters that only affect the ESPRIT algorithm can be changed. These parameters are explained in Table 4. Note that changing the ESPRIT parameters will not have an effect unless you set the boolean variable UseEsprit to true .
Parameter | Meaning | Default |
---|---|---|
ReuseCachedResults | If you want to recompute everything from scratch everytime the script is run, set this to false . | true |
AlignBatchSize | In the all-against-all phase, each genome pair is split in smaller junks of AlignBatchSize protein comparisons. The larger this number, the longer each unit runs, and the fewer files get produced. This allows to adjust the frequency of milestone steps (e.g. in case of computer crash) or to process few but large genomes with many CPUs efficiently. | 1000000 |
MinScore | Alignments which have a score lower than MinScore will not be considered. The scores are in Gonnet PAM matrices units. | 181 |
LengthTol | Length tolerance ratio. If the length of the effective alignment is less than LengthTol * min( length(s1), length(s2) ), then the alignment is not considered. | 0.61 |
StablePairTol | During the stable pair formation, if a pair has a distance provable higher than another pair (i.e. StablePairTol standard deviations away) then it is discarded. | 1.81 |
VerifiedPairTol | Tolerance parameter for the detection of differential gene losses using a third genome. The larger the tolerance, the liberaler the algorithm assigns orthologous relations. A detailed description is provided here. | 1.53 |
MinSeqLen | Any sequence which is less than MinSeqLen amino acids long in regular genomes is not considered. | 50 |
StableIdsForGroups | Enables/disables the generation of stable identifiers for OMA groups (and Hierarchical Groups if their computation enabled). The identifier consists of a prefix to determine the type of the group ('OMA' or 'HOG'), and a subsequence of the amino acid sequence uniquely present in this group. The computation of these ids might require a substantial amount of time. The ids are stored in the OrthoXML files only. | false |
DoHierarchicalGroups | Enables/disables the computation of the hierarchical groups. This steps requires substantial computating power. | true |
MaxTimePerLevel | Define maximum amount of time (in sec) spent by the program for breaking every connected component of the orthology graph at its weakest link on a given taxonomic level. If set to a negative value, no timelimit is enforced. | 1200 |
SpeciesTree | The hierarchical groups require a (partially) resolved species phylogeny. With the parameter SpeciesTree the user can specify a phylogeny in Newick-format, or, by setting the variable to "estimate", compute a species tree based on the OMA Groups and use this one. | estimate |
ReachabilityCutoff | The cutoff of "average reachability within two steps" defines up to what point a cluster is split into sub-clusters. | 0.65 |
WriteOutput_* | Switches to disable the generation of certain output files if set to false . For very big analyses, disabling the generation of unused output might save a substantial amount of computing time and might drastically reduce the number of produced files. | true |
Parameter | Meaning | Default |
---|---|---|
UseEsprit | You can either set this to true , which will enable ESPRIT and shut down the parts of OMA that are not directly needed for ESPRIT, or set it to false to make no use of ESPRIT at all. | false |
DistConfLevel | Confidence level variable for contigs. This is the parameter tol described in the paper. | 2 |
MinProbContig | Minimal proportion of genomes with which contigs form many:1 BestMatches to consider that we might be dealing with fragments of the same gene. This is the parameter MinRefGenomes described in the paper, normalized by the total number of reference genomes. | 0.4 |
MaxContigOverlap | Maximum overlap between fragments of same gene from different contigs. | 5 |
MinSeqLenContig | Any sequence which is less than MinSeqLenContig amino acids long in contigs is not considered. | 20 |
MinBestScore | Minimum best score for BestMatch in scaffold recognition. | 250 |
License
OMA standalone is licensed under the Mozilla Public License Version 2.0. For more info, please consult the following page:
http://www.mozilla.org/MPL/2.0/
In a nutshell, OMA standalone is open source and free for commercial and non-commercial use.
Software distributed under the License is distributed on an "AS IS" basis,WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.