# Human and animal DNA similarity: ProteinIQ's Ensembl 116 analysis

Analysis date: September 25, 2026. This is our descriptive analysis of Ensembl's public comparative genomics data, not a new experimental measurement or a peer-reviewed study. The question is how three different "similarity" measurements compare when they come from one database release, one human reference, and one set of species.

## Findings

For 21 species, we measured three things against the same 20,107 human protein-coding genes and the same human reference genome:

1. The share of human protein-coding genes with at least one ortholog in the species (any relationship type), and the share with a strict one-to-one ortholog.
2. The median protein sequence identity of those one-to-one orthologs, measured from the human side.
3. For 13 of the species, the share of the human reference genome covered by Ensembl's pairwise whole-genome alignment, and the share of human coding-exon bases aligned to a base in the other genome.

Selected results:

| Species | Genome aligned | Coding exon bases aligned | Genes with any ortholog | One-to-one orthologs | Median protein identity |
| --- | ---: | ---: | ---: | ---: | ---: |
| Chimpanzee | 91.4% | 99.6% | 91.2% | 84.2% | 99.3% |
| Rhesus macaque | 82.0% | 98.3% | 87.0% | 81.8% | 97.0% |
| Pig | 48.5% | 94.6% | 87.5% | 80.6% | 89.1% |
| Mouse | 32.5% | 92.0% | 87.9% | 81.1% | 86.9% |
| Chicken | 2.5% | 66.1% | 69.3% | 63.0% | 71.5% |
| Zebrafish | 1.1% | 53.4% | 69.8% | 48.2% | 58.3% |
| Fruit fly | n/a | n/a | 44.6% | 16.2% | 39.1% |

All 21 rows are in [species-summary.csv](species-summary.csv).

Gene-by-gene comparisons ([paired-comparisons.csv](paired-comparisons.csv)): among human genes with a one-to-one ortholog in both species, the dog protein is more identical to the human protein than the mouse protein for 73.7% of 14,869 genes (mouse closer 23.2%, tied 3.0%). Cat, horse, pig and cow give 68.6–72.7%. Dog against cat is close to even: cat closer for 47.6% of 14,239 genes, dog for 44.9%, tied 7.5%.

Shared genes in OMA ([oma-summary.csv](oma-summary.csv), added October 17, 2026): to give the eight most-searched species, banana included, one gene count from one database, we counted human protein-coding genes with at least one OMA ortholog. Of 20,430 human genes, 91.2% have an ortholog in chimpanzee, 88.6% in mouse, 85.6% in pig and rat, 85.4% in cow, 83.5% in cat, 82.0% in dog and 18.0% in banana. Chimpanzee, mouse and banana reproduce the counts in our [human-banana analysis](../human-banana-orthologs/README.md) exactly.

Across the tree of life ([pan-compara-summary.csv](pan-compara-summary.csv)), Ensembl's pan-taxonomic comparison assigns orthologs to 34.8–36.8% of human protein-coding genes in each of five plants (moss, thale cress, grape, rice, tomato), 24.8% in baker's yeast and 17.0% in the malaria parasite, with about 7% one-to-one in plants.

## Inputs

All inputs come from Ensembl release 116 (GRCh38 human assembly) and the matching Ensembl Genomes release 63, queried from Ensembl's public MySQL servers as the anonymous user (`ensembldb.ensembl.org` unless noted):

- `homo_sapiens_core_116_38`: human genes with biotype `protein_coding` on the default GRCh38 chromosomes 1–22, X, Y and MT. Patches, haplotypes and unplaced scaffolds are excluded. This gives 20,107 genes, the same list BioMart returns for those filters.
- `ensembl_compara_116`, tables `homology`, `homology_member` and `gene_member`: the Ensembl ortholog set ("Hsap-X orthologues") for each species. The method-link-species-set identifiers are in the CSV.
- `ensembl_compara_116`, table `method_link_species_set_tag`: statistics Ensembl stores for each human-referenced LASTZ net alignment ("Hsap-X LastZ (on Hsap)").
- `ensembl_compara_pan_homology_63_116` on `mysql-eg-publicsql.ebi.ac.uk:4157` (anonymous): the Ensembl Genomes pan-taxonomic ortholog sets for human against 15 species. This comparison uses its own species set and gene trees, so values for species in both comparisons differ (mouse 90.5% here against 87.9% in the vertebrate comparison; fruit fly 56.2% against 44.6%). Compare values only within one pipeline.

The OMA counts come from the OMA REST API (`https://omabrowser.org/api/`), release All.May2026, API 1.11, retrieved October 17, 2026: the human proteome (`/api/genome/HUMAN/proteins/`) and the pairwise orthologs between human and each species (`/api/pairs/HUMAN/<code>/?type=vps`, codes PANTR, PIGXX, MOUSE, RATNO, CANLF, FELCA, BOVIN, MUSAM). A human gene is its OMA main isoform; it counts once if it appears in at least one pair. The denominator is every human main isoform, 20,430 genes. OMA and Ensembl use different human gene sets and orthology methods, so their counts for the same species differ by a few percentage points.

Ensembl 116 has no human-referenced LASTZ alignment for dog, cat, cow, rat, frog, fruit fly, nematode or yeast, so those genome columns are blank.

## Definitions and calculation

Ortholog presence: a human gene counts once per species if Ensembl lists at least one `ortholog_one2one`, `ortholog_one2many` or `ortholog_many2many` partner. The denominator is always 20,107. This reproduces the counts in the article's earlier version exactly.

One-to-one orthologs: human genes whose only ortholog relationship in that species is `ortholog_one2one`.

Protein identity: `homology_member.perc_id` for the human member of each one-to-one pair. Ensembl computes it from the gene-tree multiple alignment of the canonical proteins as identical positions divided by the length of the human protein, so gaps and unaligned ends count as non-identical. We checked this against sequence lengths for sample pairs. We report the median and the interquartile range across all one-to-one pairs. The BioMart column labels for the two identity values are easy to confuse; the value used here is the one BioMart exports as `perc_id` for a human query.

Paired comparison: for two species, the set of human genes with a one-to-one ortholog in both. For each gene, the species whose protein has the higher human-side identity is counted as closer; identities are compared after rounding to 0.01 percentage points, as stored in the gene-level table, and equal values count as ties.

Pan-taxonomic counts: the same human gene list and the same "any" and "one-to-one" definitions, applied to the pan-taxonomic ortholog sets.

Genome aligned: `ref_genome_coverage / ref_genome_length`. Ensembl's pipeline counts human reference bases inside the netted LASTZ alignment blocks; the denominator (3,099,750,718 bases) is the full toplevel length and includes about 151 million bases of unresolved gaps in GRCh38, so no species can reach 100%.

Coding exon bases aligned: `(ref_matches + ref_mis_matches) / ref_coding_exon_length`, where these tags count human coding-exon bases aligned to an identical base, aligned to a different base, aligned to a gap, or left uncovered (the four sum to the coding-exon length). We do not report the identity of aligned exon bases (`ref_matches / (ref_matches + ref_mis_matches)`), because for bonobo and gorilla it falls below the macaque value, which points to assembly or alignment artefacts rather than biology.

## Limitations

- Every number depends on the quality of each species' assembly and gene annotation. Chimpanzee (91.2%) and bonobo (87.2%) are equally related to humans, yet differ by four percentage points in ortholog presence.
- Ensembl orthology is inferred from gene trees and can miss or mislabel relationships, especially for fast-evolving or duplicated genes.
- Medians describe the typical one-to-one ortholog, not all genes. Genes without a one-to-one ortholog are excluded from the identity measure, so the set shrinks with distance (16.2% of human genes for fruit fly).
- Protein identity is not DNA identity. Synonymous changes and non-coding DNA are not counted.
- LASTZ parameters, chaining and netting affect coverage. The genome figures are Ensembl's alignment coverage, not a count of identical bases.
- These results are specific to Ensembl 116 and will change in later releases.

## Reproduction and files

- [analyze.py](analyze.py): queries Ensembl and writes all outputs. Requires Python 3.10+ and `pymysql`. Run `python analyze.py --cache raw --out .`; raw query results are cached in `raw/`.
- [species-summary.csv](species-summary.csv): one row per species.
- [human-gene-orthologs.csv.gz](human-gene-orthologs.csv.gz): one row per human gene with its relationship type (`1:1`, `1:m`, `m:m`) and one-to-one protein identity in each species.
- [paired-comparisons.csv](paired-comparisons.csv): head-to-head protein identity comparisons for ten species pairs.
- [pan-compara-summary.csv](pan-compara-summary.csv): ortholog presence for 15 species in the pan-taxonomic comparison.
- [summary.json](summary.json): all summaries with release and database provenance.
- [oma_counts.py](oma_counts.py): retrieves the OMA pairs and writes the OMA counts. Python 3.10+, standard library only. Run `python oma_counts.py --out <new directory>`.
- [oma-summary.csv](oma-summary.csv) and [oma-summary.json](oma-summary.json): OMA shared-gene counts for eight species, with the release, request URLs and response hashes.

Data are from Ensembl, which makes its data available without restriction. Please cite Ensembl release 116, Ensembl Genomes, and the Ensembl Compara resources alongside this analysis.
