FAQ & concepts

The science behind PhyloFlask, how to use it, and how to read the results. New here? Start with How to use.

Concepts

What is phylogenetic profiling?
Genes or domains that are gained and lost together across evolution tend to be functionally related (same pathway or complex). A phylogenetic profile is the presence/absence pattern of a domain across many species. Domains with similar profiles are candidate functional partners; species with similar domain content are functionally close.
What counts as “present”?
A domain is present in a species when there is a BLAST hit with E-value ≤ 1e-5 (configurable). Counting every weak hit would inflate co-occurrence and wash out the signal.
What is a domain vs a species here?
The BLAST query id is the domain (e.g. NP_001005920.3-Cupin_8__coords_52--261); the subject id encodes the species — we use the first four dash-segments (e.g. UP000005640-00009606-Homo_sapi-22).

Methods

How is the species tree built?
Pairwise Jaccard distance between species’ binary domain profiles (1 − shared/either), then a Neighbour-Joining tree. Branch lengths are in Jaccard units.
How are domains clustered (all-vs-all)?
We build a domain × domain graph where an edge connects two domains whose profiles are similar (Jaccard ≥ threshold), then run Markov Clustering (MCL). Clusters are groups of co-occurring domains — candidate functional modules.
How do I know the clustering is meaningful?
PhyloFlask reports modularity Q (≈0 = no community structure, >0.3 = clear structure), cluster sizes, and a same-protein co-clustering rate (domains of the same protein should land together). A warning appears when everything collapses into one cluster.
Why does my data show “little/no structure”?
On some datasets the domain profiles are nearly uniform (most domains co-occur broadly), so MCL legitimately returns one big cluster with Q ≈ 0. That is a property of the data, not a bug. Use a stricter E-value cutoff, a higher Jaccard threshold, or richer data.

Usage

In what order should I use the tools?
Run BLAST Analysis first to get the correlation matrix, then feed it to the Tree builder, All-vs-all or Heatmaps. Open built .nw trees in the Tree viewer.
What file formats are accepted?
BLAST tabular (-outfmt 6, .blastp/.tsv/.txt) for analysis; correlation matrix CSV (species × domains) for tree/clustering; Newick (.nw) for the viewer; feature/correlation CSV for heatmaps. See How to use.
What can I interact with?
Drag/zoom graphs and trees; hover for tooltips; click nodes to isolate clusters or collapse subtrees; sliders to filter edges or hits; toggles for layout, log scale and ordering; search boxes; and download buttons (CSV / Newick / PNG).

Troubleshooting

The app shows a blank / “AirTunes” page on localhost:5000
On macOS the AirPlay Receiver owns ports 5000 and 7000. PhyloFlask runs on http://127.0.0.1:8000 instead. Override with the PORT env var, or disable AirPlay Receiver in System Settings → General → AirDrop & Handoff.
I changed a page but don’t see it
In production mode templates are cached. Restart the server, or run with FLASK_DEBUG=1 for live reload during development.
The network graph looks crowded
Labels appear only when you zoom in; raise the min-similarity slider to keep the strongest links, click a node to isolate its cluster, or switch layout.

About & credits

PhyloFlask — a software framework for large-scale phylogenetic profile visualization, built with Flask, D3, Cytoscape, Plotly and ECharts.

Authors: Alexandros Michailidis, Vasileios S. Papagrigoriou, Christos A. Ouzounis.
BCCB Group, Artificial Intelligence & Information Analysis Laboratory, School of Informatics, Aristotle University of Thessaloniki, Greece.

Phylogenetic profiling infers structural and functional properties of genes from their presence/absence patterns across complete genomes. The input is a list of species identifiers derived from BLASTp hits against indexed Reference Proteomes (COGENT-like identifiers), enabling rapid, scalable visual inference of gene function and evolutionary relationships to facilitate hypothesis generation.

Poster (F1000Research, p. 104)

Reference: Cohen BA, Mitra RD, Hughes JD & Church GM (2000). A computational analysis of whole-genome expression data reveals chromosomal domains of gene expression. Nature Genetics 26(2), 183–186. https://doi.org/10.1038/79896