POInT (Polyploidy Orthology Inference Tool) Documentation
Table of contents
Revision History:
Date | Version# | Changes |
7/3/2020 | 1.5 | Adds pre-processing programs and the POInT simulation package. |
8/20/2021 | 1.51 | Adds a new post-processing script for finding optimal orthology assignments, as well as new features for producing gene trees for all pillars as well as for estimating confidence in branch length values. |
9/15/2021 | 1.52 | Updates to the command line arguments for computing branch length confidence estimates |
11/19/2021 | 1.53 | Minor bug fixes |
3/24/2022 | 1.54 | Updates to the documentation and inclusion of code to generate the POInT_browse and POInT_download CGI applications. |
3/24/2022 | 1.55 | Identical to 1.54 except in the structure of the GitHub repository |
1/19/2023 | 1.6 | Incorporates version listing into POInT in command line help and output files. |
Obtaining POInT
The current release of POInT is avaliable from:
POInT Installation
See the INSTALL
file included with POInT for installation instructions. Note that use of the parallel OpenMP version is highly recommended for large datasets.
Dependancies:
POInT uses the lapack numerical linear algebra routines to compute transition probability matrices. The POInT distribution includes a copy of the necessary routines and the f2c package that links them to c and c++ executables. However, the configure.pl script will first search your system for installed copies of these libraries and use them in preference to the included copies if they exist. See the INSTALL document for details.
The illustration capabilities of POInT depend on the GNU plotutils package. If you want to compile POInT with this capability, first install plotutils and use ./configure.pl -p:[PATH TO libplot] when configuring POInT compilation.
The simulation and data assembly programs use random number generation, provided by the ranlib library.
POInT_merge.pl requires the BioPerl GFF library (Bio::Tools::GFF).
The CGI programs for the POInT browser also require the boost and cgicc libraries.
Citing POInT
Conant, G. C. and K. H. Wolfe. (2008) Probabilistic cross-species inference of orthologous genomic regions created by whole-genome duplication in yeast, Genetics 179: 1681-1692.
Emery, M., M. M. S. Willis, Y. Hao, K. Barry, K. Oakgrove, Y. Peng, J. Schmutz, E. Lyons, J. C. Pires, P. P. Edger, and G. C. Conant. 2018. Preferential retention of genes from one parental genome after polyploidy illustrates the nature and scope of the genomic conflicts induced by hybridization. PLoS Genetics 14: e1007267.
Running POInT:
A basic POInT run requires a minimum of three types of files and a specification of the polyploidy type:
- -d:<#> , where #=2 for WGD, =3 for a WGT and =4 for an octaploidy (very very slow)
- Files listing the order of DCS genes in the extant genomes
- An inferred ancestral order of the DCS blocks
- A phylogenetic model of post-polyploidy gene loss
Additionally, it is very useful to specify an assumed phylogenetic topology: if no tree file is given, POInT will try to search all possible topologies, which will be intractable for datasets larger than 5 or 6 genomes.
An example POInT analysis
Our website hosts examples for each type of file. For instance, one possible run can be done with:
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Brachypodium_distachyon_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Oropetium_thomaeum_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Setaria_italica_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Sorghum_bicolor_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Grass_rho_OptOrder.txt
% wget http://conantlab.org/data/POInT_datasets/Models/WGD_bias_fix_model.txt
% POInT -d:2 -g:Brachypodium_distachyon_POInT_geneorders.txt -g:Oropetium_thomaeum_POInT_geneorders.txt -g:Setaria_italica_POInT_geneorders.txt -g:Sorghum_bicolor_POInT_geneorders.txt -o:Grass_rho_OptOrder.txt -m:WGD_bias_fix_model.txt
This command will perform a global search for the optimal topology among these 4 genomes and save that topology as searchWGXexhaust_Grass_rho_OptOrder.txt0.tre.
POInT options are:
Option
|
Description
|
Example
|
Default
|
-d: |
Duplication/Polyploidy level |
-d:2 |
None/Required |
-g: |
Extant genome file |
-g:Brachypodium_distachyon_POInT_geneorders.txt |
None/Required |
-o: |
File of double-conserved synteny blocks in ancestral order |
-o:Grass_rho_OptOrder.txt |
None/Required |
-m: |
Model file |
-m:WGD_bias_fix_model.txt |
None/Required |
-t: |
Assumed phylogenetic topology, Nexis format |
-t:Grass_rho_OptTopo.tre |
None/Optional |
-r: |
Seperate root-branch model file |
-r:WGD_root_model.txt |
None/Optional |
-p: |
File to save orthology predictions/posterior probabilities to |
-p:Grass_rho_OptTopo_WGD_bias_fix_post_probs.txt |
None/Optional |
-c: |
File to save model state conditional probabilities to |
-c:Grass_rho_OptTopo_WGD_bias_fix_cond_probs.txt |
None/Optional |
-noopt |
Do not perform likelihood optimization--will use parameter estimates from the model file and branch lengths from the tree file without numerical likelihood maximization. Useful for computing posterior probabilites, diagrams etc from previously optimized trees and models. |
-noopt |
None/Optional |
-i:# |
Draw tracking diagrams with # pillars per diagram (requires installation with Gnu PlotUtils, see INSTALL) |
-i:50 |
None/Optional |
-zerolengthfixed |
Treat all zero length branches in the phylogeny as fixed at length=0 |
-zerolengthfixed |
None/Optional |
-x:# |
Number of topologies to save from exhaustive tree searching (ignored if a topology is given) |
-x:2 |
-s:1/Optional |
-s:#:# |
Starting and ending tree for exhaustive tree search. The exhaustive tree searcher will only search topologies in this range--allows for starting multiple exhaustive searchers covering different topologies in parallel. |
-s:2:5 |
None/Optional |
-estBrnCI |
Numerically compute the second derivative of the likelihood with respect to each branch length to estimate standard errors for those lengths |
-estBrnCI |
None/Optional |
-H |
Will save all possible optimal gene trees to the current directory (e.g., using POInT's orthology inferences to generate gene trees) |
-H |
None/Optional |
-h |
Will save gene trees only for single copy genes to the current directory (e.g., using POInT's orthology inferences to generate gene trees) |
-h |
None/Optional |
-q |
Will save all genes in all genomes with bi-directional syntenic neighbors to the provided file |
-q:AtAlpha_Genes_DoubleSyn.txt |
None/Optional |
Running the POInT helper programs
POInT_genome_scaffold
POInT_genome_scaffold compares homologs from a polyploid genome and a non-polyploid relative and places the polyploid homologs into blocks of NCS (N-fold conserved synteny). This is the first step to inferring the synteny data for a POInT analysis. A specification of the polyploidy type and three types of file are required:
- -d:<#> , where #=2 for WGD, =3 for a WGT and =4 for an octaploidy
- Order of the genes in the polyploid and outgroup genomes
- Potential tandem duplicates in each genome
- A list of homologous genes between the genomes with divergence values
An example POInT_genome_scaffold analysis
Our website hosts examples for each type of file. For instance, one possible run can be done with:
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Oropetium_thomaeum_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Oropetium_thomaeum_tandems.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Ananas_comosus_to_Oropetium_thomaeum_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Ananas_comosus_to_Oropetium_thomaeum_tandems.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Ananas_comosus_Oropetium_thomaeum_homolog_pairs.txt
%POInT_genome_scaffold -d:2 -g:Oropetium_thomaeum_geneorder.txt -a:Ananas_comosus_to_Oropetium_thomaeum_geneorder.txt -t:Ananas_comosus_to_Oropetium_thomaeum_tandems.txt -u:Oropetium_thomaeum_tandems.txt -h:Ananas_comosus_Oropetium_thomaeum_homolog_pairs.txt -c:0.5 -r:3 -o:OThom_WGD_est_r20.txt
POInT_genome_scaffold options are:
Option
|
Description
|
Example
|
Default
|
-d: |
Duplication/Polyploidy level |
-d:2 |
2/Optional |
-g: |
Polyploid genome gene order file |
-g:Oropetium_thomaeum_geneorder.txt |
None/Required |
-a: |
Non-polyploid genome gene order file |
-a:Ananas_comosus_to_Oropetium_thomaeum_geneorder.txt |
None/Required |
-t: |
Non-polyploid genome potential tandems file |
-t:Ananas_comosus_to_Oropetium_thomaeum_tandems.txt |
None/Required |
-u: |
Polyploid genome potential tandems file |
-u:Oropetium_thomaeum_tandems.txt |
None/Required |
-h: |
File with homologous genes from the polyploid genome for each non-polyploid genome gene |
-h:Ananas_comosus_Oropetium_thomaeum_homolog_pairs.txt |
None/Required |
-c: |
Maximum divergence between homolog pairs |
-c:0.5 |
0.5/Optional |
-r: |
Relaxation time (controls running time: larger values=longer runs) |
-r:20 |
200/Optional |
-b: |
Boltzmann constant (controls degree of imperfect moves tolerated: larger values give slower convergence) |
-b:0.0001 |
0.002/Optional |
-o: |
Output file |
-o:OThom_WGD_est_r20.txt |
None/Required |
POInT_ances_order
POInT_ances_order takes a set of genomes and their included gene orders, as well as a set of "pillars," namely NCS blocks merged across those genomes, and seeks a new order of those pillars with fewer synteny breaks. A specification of the polyploidy type and two types of file are required:
- -d:<#> , where #=2 for WGD, =3 for a WGT and =4 for an octaploidy
- Order of the genes in each polyploid genome: only genes in the pillar file should be included
- A "pillar" file of syntenic genes created by polyploidy in each genome
An example POInT_ances_order analysis
Our website hosts examples for each type of file. For instance, one possible run can be done with:
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Brachypodium_distachyon_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Oropetium_thomaeum_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Setaria_italica_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Sorghum_bicolor_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Grass_rho_OptOrder.txt
% POInT_ances_order -d:2 -g:Brachypodium_distachyon_POInT_geneorders.txt -g:Oropetium_thomaeum_POInT_geneorders.txt -g:Setaria_italica_POInT_geneorders.txt -g:Sorghum_bicolor_POInT_geneorders.txt -o:Grass_rho_OptOrder.txt -n:Grass_rho_Opt2.txt -m:1 -r:50
POInT_ances_order options are:
Option
|
Description
|
Example
|
Default
|
-d: |
Duplication/Polyploidy level |
-d:2 |
None/Required |
-g: |
Extant genome file |
<-g:Brachypodium_distachyon_POInT_geneorders.txt |
None/Required |
-o: |
"Pillar" file of N-fold-conserved synteny blocks in ancestral order |
-o:Grass_rho_OptOrder.txt |
None/Required |
-n: |
New "Pillar" file |
-n:Grass_rho_Opt2.txt |
None/Required |
-r: |
Relaxation time (controls running time: larger values=longer runs) |
-r:20 |
200/Optional |
-b: |
Boltzmann constant (controls degree of imperfect moves tolerated: larger values give slower convergence) |
-b:0.0001 |
0.005/Optional |
-m: |
Maximum breaks for a fixed block. The program will not attempt to reorder blocks of pillars with m or fewer synteny breaks. Allows the user to control the order search: larger m gives a "coarser" optimization that may give a faster convergence to a globally optimal order, with later runs refining this order. |
-m:0 |
0/Optional |
-infer_init_order |
Uses an initial greedy search to pick a good starting search order. Generally only useful for the initial run of the program |
-infer_init_order |
None/Optional |
-usepositionscore |
Minimizes the number of full synteny breaks across the full set of genomes rather than the total number of breaks |
-usepositionscore |
None/Optional |
POInT_simulate
POInT_simulate simulates a new polyploidy using an existing set of genomes, pillars, phylogeny and set of model parameters. It useful for problems such as testing whether the length of a branch in the POInT inferred topologies is significantly non-zero. It requires four types of file and a specification of the polyploidy type:
- -d:<#> , where #=2 for WGD, =3 for a WGT and =4 for an octaploidy (very very slow)
- Files listing the order of DCS genes in the extant genomes
- An inferred ancestral order of the DCS blocks
- A phylogenetic model of post-polyploidy gene loss
- A assumed phylogeny with associates POInT branch lengths
Note that the simulation will use the values of the model parameters in the model file as the basis of the simulation.
An example POInT_simulate simulation
Our website hosts examples for each type of file. For instance, one possible run can be done with:
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Brachypodium_distachyon_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Oropetium_thomaeum_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Setaria_italica_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Sorghum_bicolor_POInT_geneorders.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Grass_rho_OptOrder.txt
% wget http://conantlab.org/data/POInT_datasets/Grass_rho/Grass_rho_OptTopo.tre
% wget http://conantlab.org/data/POInT_datasets/Models/WGD_bias_fix_model.txt
% POInT_simulate -g:Brachypodium_distachyon_POInT_geneorders.txt -g:Oropetium_thomaeum_POInT_geneorders.txt -g:Setaria_italica_POInT_geneorders.txt -g:Sorghum_bicolor_POInT_geneorders.txt -o:Grass_rho_OptOrder.txt -m:WGD_bias_fix_model.txt -t:Grass_rho_OptTopo.tre -x:Sim_Genomes -w:SimPillarfile.txt
POInT_simulate options are:
Option
|
Description
|
Example
|
Default
|
-d: |
Duplication/Polyploidy level |
-d:2 |
None/Required |
-g: |
Extant genome file |
<-g:Brachypodium_distachyon_POInT_geneorders.txt |
None/Required |
-o: |
File of double-conserved synteny blocks in ancestral order |
-o:Grass_rho_OptOrder.txt |
None/Required |
-m: |
Model file |
-m:WGD_bias_fix_model.txt |
None/Required |
-t: |
Assumed phylogenetic topology, Nexis format |
-t:Grass_rho_OptTopo.tre |
None/Required |
-x: |
Prefix name for the simulated genomes, which will be numerically named in order from 0 |
-x:Sim_Genomes |
None/Required |
-w: |
Name for the output simulated pillar file |
-w:SimPillarfile.txt |
None/Required |
POInT_merge.pl
POInT_merge.pl is a rough perl script that merges the output of the runs of POInT_genome_scaffold from several polyploid genomes into a single pillar file, suitable for optimization with POInT_ances_order. It requires a GFF file describing the gene locations of the genes in the non-polyploid genome used as a reference for all of the POInT_genome_scaffold runs as well as the BioPerl GFF library. Two files are required:
- A tab-delimited file giving, for each polyploid genome, the name of that genome, the optimal run file from POInT_scaffold_genome and the original genome order file for that genome
- A GFF file describing the non-polyploid outgroup genome
An example POInT_merge.pl analysis
Our website hosts examples for each type of file. For instance, one possible run can be done with:
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Oropetium_thomaeum_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Brachypodium_distachyon_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Setaria_italica_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Sorghum_bicolor_rerun_geneorder.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/AC_BD_WGD_c5_n8_r200_b0001.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/AC_OT_WGD_c6_n8_r200_b0001.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/AC_SB_WGD_c5_n8_b0001_r200.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/AC_SI_WGD_c5_n8_r200_b0001.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/fourspp_out_runs.txt
% wget http://conantlab.org/data/POInT_datasets/POInT_genome_scaffold/Ananas_comosus_pineapple_annos1-cds0-id_typename-nu1-upa1-add_chr0.gid25735.gff.html
% POInT_merge.pl fourspp_out_runs.txt Ananas_comosus_pineapple_annos1-cds0-id_typename-nu1-upa1-add_chr0.gid25735.gff.html FourSpp_initial_pillars.txt
POInT_merge.pl options are:
Option
|
Description
|
Example
|
Default
|
First argument |
File of genome names, optimal scaffolds, and orders |
fourspp_out_runs.txt |
None/Required |
Second argument |
GFF file for the non-polyploid outgroup |
Ananas_comosus_pineapple_annos1-cds0-id_typename-nu1-upa1-add_chr0.gid25735.gff.html |
None/Required |
Third argument |
Output pillar file |
FourSpp_initial_pillars.txt |
None/Required |
-d: |
Duplication/Polyploidy level |
-d:2 |
2/Optional |
-s: |
Number of non-syntenic homologs to tolerate in a pillar. (Allows up to s genes to be homeologs with no synteny. Depreciated) |
-s:2 |
0/Optional |
POInT_extract_orthos.pl.pl
POInT_extract_orthos.pl extracts the mostly likely set of orthology relationships for each pillar in a POInT analysis. The "-p" option in POInT produces a posterior probability file, which gives the probability of all possible orthology relationships, and this script parses these probabilities to find that with the largest probability. The associated orthology assignments are printed to a new output file, which gives the pillar number, the probability of the orthology assignments given (out of all possible assignments) and the genes assigned to each subgenome (which are in turn defined by the POInT model used). In the case of genome triplications or quadruplications, there is degeneracy possible whenever two or more copies at a pillar have been lost from a single genome (because presumably we don't care which subgenome the "holes" in the orthology are assigned to). This degeneracy is accounted for by the script. Two arguments are required:
- A posterior probability file from POInT as input
- The name of a new orthology file to be produced
An example POInT_extract_orthos.pl analysis
% wget http://conantlab.org/data/TGD/WGDfix_bias_nbcon_CL_T4_PreDBS8Opt1_postprobs.txt
% POInT_extract_orthos.pl WGDfix_bias_nbcon_CL_T4_PreDBS8Opt1_postprobs.txt TGD_bestorthos.txt
The POInTbrowser
A browsable interface to all of the published POInT datasets is online at wgd.statgen.ncsu.edu. Batch downloads of CDS regions and gene trees, as well as visualization of syntenic regions for 11 polyploidy events is supported. Full POInT datasets are also avalaible for download from the browser.
Notes and Tips:
Coming soon.