Updated Algorithmic Ancestry Test

Introduction

In a previous post, I shared what I thought was a clever way of testing for ancestry, that turned out to be a failure empirically. I now understand why it doesn’t work, and it’s because I failed to consider an alternative hypothesis that is consistent with the purported facts. This produced a lot of bad data. I’ll begin by explaining how the underlying algorithmic test for ancestry works, and then explain why this instance of it failed, and close by introducing yet another test for ancestry that plainly works, and is simply amazing, allowing us to mechanically uncover the full history of mankind, using mtDNA alone.

Algorithmic Testing for Ancestry

Assume you’re given whole mtDNA genomes A, B, and C. The goal is to test whether genome A is the ancestor of both genomes B and C. It turns out, this is straight forward as a necessary (but not sufficient condition) for ancestry. Specifically, if we begin with genome A, and then posit that genomes B and C mutated independently away from genome A (e.g., groups B and C travelled to two distinct locations away from group A), then it is almost certainly the case that genomes B and C have fewer bases in common with each other, than they have in common with genome A.

For intuition, because we’ve assumed genomes B and C are mutating independently, the bases that mutate in each of B and C are analogous to two independent coins being tossed. Each mutation will reduce the number of bases in common with genome A. For example, if genome B mutates, then the number of bases that A and B have in common will be reduced. Note we are assuming genome A is static. Because B and C are mutating independently, it’s basically impossible for the number of bases in common between B and C to increase over time. Further, the rate of the decrease in common bases is almost certainly going to be higher between B and C, than between A and B, and A and C. For example, if there are 10 mutations in each of genomes B and C (i.e., a total of 20 mutations combined), then the match counts between A and B and A and C, will both decrease by exactly 10, whereas the match count between B and C should decrease by approximately 20. Let |AB| denote the match count between genomes A and B. We have then the following inequalities:

Case 1: If genome A is the common ancestor of both genomes B and C, then it is almost certainly the case that |AB| > |BC| and |AC| > |BC|. See, “A New Model of Computational Genomics” [1] for further details.

Even though this is only a necessary condition for ancestry, this pair of inequalities (coupled with a lot of research and other techniques), allowed me to put together a complete, and plausible, history of mankind [2], all the way back to the first humans in Africa.

Ancestry from Archaic Genomes

The simple insight I had, was that if A is not archaic, and B is archaic, then A can’t credibly be the ancestor of B. That is, you can’t plausibly argue that a modern human is the ancestor of some archaic human, absent compelling evidence. Further, it turns out the inequality (since it is a necessary but not sufficient condition) is also consistent with linear ancestry in two cases. Specifically, if |AB| > |BC| and |AC| > |BC|, then we can interpret this as consistent with –

Case 2: B is the ancestor of A, who is in turn the ancestor of C.

Case 3: C is the ancestor of A, who is in turn the ancestor of B.

If you plug in A = Phoenician, B = Heidelbergensis, and C = Ancient Egypt, you’ll find the inequality is satisfied for 100% of the applicable genomes in the dataset. Note that the dataset is linked to in [1]. It turns out you simply cannot tell what direction time is running given the genomes alone (unless there’s some trick I’ve missed), and so all of these claims are subject to falsification, just like science is generally. That said, if you read [2], you’ll see fairly compelling arguments consistent with common sense, that Heidelbergensis (which is an archaic human), is the ancestor of the Phoenicians, who are in turn the ancestors of the Ancient Egyptians. This is consistent with case (2) above.

Putting it all together, we have a powerful necessary condition that is consistent with ancestry, but not a sufficient condition, and it is therefore subject to falsification. However, one of these three cases is almost certainly true, if the inequalities are satisfied. The only question is which one, and as far as I can tell, you cannot determine which case is true, without exogenous information (e.g., Heidelbergensis is known to be at least 500,000 years old). You’ll note that cases (1), (2), and (3) together imply that A is always the ancestor of either B or C, or both. My initial mistake was to simply set B to an archaic genome, and assert that since A cannot credibly be the ancestor of B, it must be the case that A is the ancestor of C. Note that because A cannot credibly be the ancestor of B, Cases (1) and (3) are eliminated, leaving Case (2), which makes perfect sense: B is archaic, and is the ancestor of A, who is in turn the ancestor of C. However, this is not credible if C is also archaic, producing a lot of bad data.

Updated Ancestry Algorithm

The updated algorithm first tests literally every genome in the dataset, and asks whether it is at least a 60% match to an archaic genome, and if so, it treats that genome as archaic for purposes of the test, so that we avoid the problem highlighted above. This will allow us to reasonably assert that all tests involve exactly one archaic genome B, and therefore, we must be in Case (2). Interestingly, some archaic populations were certainly heterogenous, which is something I discussed previously. As a result, there are three ostensibly archaic genomes, that do not match to any other archaic genomes in the dataset, and they are therefore, not treated as archaic, despite their archeological classification. You can fuss with this, but it’s just three genomes out of 664, and a total of 19,972,464 comparisons. So it’s possible it moved the needle in marginal cases, but the overall conclusions reached in [2] are plainly correct, given the data this new ancestry test produced.

There is however the problem that the dataset contains only Heidelbergensis, Denisovan, and Neanderthal genomes, leaving out e.g., Homo Erectus, and potentially other unknown archaic humans. There’s nothing we can do about this, since we’re constantly finding new archaic humans. For example, Denisovans were discovered in 2010, which is pretty recent, compared to Heidelbergensis, which was discovered in 1908. Moreover, the three genomes in question are possibly three new species, since they don’t match to Denisovan, Heidelbergensis, or Neanderthals. All of that said, taken as a whole, the results produced by this new algorithm, which makes perfect theoretical sense and must be true, are consistent with the results presented in [2]. Specifically, that humans began in Africa, somewhere around present day Cameroon, migrated to the Middle East, then Asia, producing the two most evolved maternal lines that I’ve identified, somewhere around Nepal. Those two maternal lines are both found around the world, and descend from Denisovans and Heidelbergensis, respectively, suggesting that many modern humans are a mix between the most evolved maternal lines that originated in two distinct archaic human populations, effectively creating hybrids. For your reference, you can search for the Pre Roman Ancient Egyptian genome (row 320, which descends from Heidelbergensis) and the Icelandic genome (row 464, which descends from Denisovans).

The Distribution of Archaic mtDNA

When I first started studying mtDNA, I quickly realized that a lot of modern humans have archaic mtDNA. See [1] for details. This is not surprising, since mtDNA is so stable, and inherited directly from a mother to its offspring, and modern humans carry at times significant quantities of archaic DNA generally. That said, 53.01% of the genomes in the dataset test as archaic, meaning that the genome is a few hundred thousand years old, without that much change. I’ve seen studies that say some humans contain around 7% to 10% archaic DNA (on the high end). This is not exactly the same statement, since those types of studies say that around 7% to 10% of someone’s DNA could be archaic. In contrast, my work suggests that a significant majority of living human beings contain outright archaic mtDNA.

That said, I’m using whole-genome sequencing, with a single global alignment, which maximizes the differences between genomes. See [2] for more details. So it’s possible that as techniques improve, studies in other areas of the human genome will produce results similar to mine, since most researchers are (as far as I know) still focusing on genes, which are a tiny portion of the whole genome. Generally speaking, my work shows that focusing on genes is probably a mistake, that was driven by necessity since genomes are huge, and computers were slow. See [1] for empirical results that demonstrate the superiority of whole-genome analysis. I did all of this on a Mac Mini, and it runs in about 3 hours, and requires comparing all triplets of genomes, drawn from a dataset of 664 genomes (i.e., rows), where each genome has 16,579 bases (i.e., columns). This works out to O(10^{21}) calculations, all done on a consumer device. I’d wager professional computers can now start to tackle much larger genomes using similar techniques. As a result, I think we’re going to find that a lot of people contain a lot of truly archaic DNA generally. Any argument to the contrary is sort of strange, because if people stopped selecting archaic female mates, then archaic mtDNA should have vanished, and it obviously didn’t, leading to the conclusion, that the rest of the genome likely does contain archaic DNA generally.

Below I’ve set out a list of populations ordered according to the percentage of genomes within that population that test as archaic, starting at 0% archaic, and increasing up to 100% archaic, i.e., in increasing order. The test performed was to ask, for each population, what percentage of the genomes in that population are at least a 60% match to at least one archaic genome. Again, 53.01% of the full dataset tested as archaic, and as you’ll see below, several modern populations consist of only archaic mtDNA (i.e., 100% of the genomes are a 60% match to at least one archaic genome). One immediate takeaway, is that the classical world seems to have absolutely no archaic mtDNA. I’ve also noted that the Ancient Roman maternal line seems to have been annihilated, which was almost certainly deliberate.

Finally, I’ll note that preliminary results suggest that the Ancient Roman maternal line (which again, no longer exists, anywhere in the world) seems to be the most evolved maternal line in the entire dataset.

The code is attached to the bottom of the post.

0% Archaic

Ancient Egyptian
Ancient Roman
Basque
Phoenecian
Saqqaq
Thai
Igbo
Icelandic
Hawaiin
Dublin
Sri Lanka

10% to 49% archaic

Polish
Sardinian
Tanzania
Korean
German
Swedish
Scottish
Nepalese
Japanese
Sami
Filipino
Dutch
Spanish
Sephardic
Belarus
Norwegian
Egyptian
Finnish
Pashtun
Ukrainian
Irish
French
Portuguese
Danish
English

50% to 99% Archaic

Chinese
Maritime Archaic
Georgian
Munda
Nigerian
Ashkenazi
Mongolian
Hungarian
Ancient Finnish
Greek
Russian
Mexican
Vedda Abor.
Italian
Turkish
Chachapoya
Khoisan
Neanderthal
Uyghur
Kenyan
Indian
Saudi
Kazakh
Denisovan
Mayan
Taiwanese

100% Archaic

Iberian Roma
Heidelbergensis
Papau New Guinea
Ancient Bulgarian
Ancient Chinese
Sol. Islands
Indonesian
Andamanese
Iranian
Ancient Khoisan
Javanese
Jarkhand
Cameroon

Algorithmic Testing for Ancestry

In a paper I wrote entitled A New Model of Computational Genomics [1], I presented a simple test for ancestry that is impossible to argue with. Let |AB| denote the number of matching bases between two genomes A and B. Given genomes A, B, and C, if we assume that genome A is the common ancestor of genomes B and C, then it is almost certainly the case (see [1] for a discussion of the probabilities) that |AB| > |BC| and |AC| > |BC|. That is, genomes A and B, and A and C, almost certainly have more bases in common than genomes B and C. For intuition, beginning with genome A, and assuming independent mutations away from A to genomes B and C, this is like tossing two independent coins (i.e., the mutations within genomes B and C that deviate from A), which should not have more than chance in common. As such, B and C should deviate away from each other at a faster rate than they deviate from A individually.

Now this is already really powerful, and led me to a complete history of mankind, which is more than plausible. But that said, it’s a necessary condition, not a sufficient condition. That is, if genome A is the common ancestor of genomes B and C, then the inequalities above almost certainly hold, but it’s subject to falsification (i.e., it’s not a sufficient condition). I realized tonight, you can actually transform this into a necessary and sufficient condition.

Specifically, the inequality above can be represented as a graph where A is connected to B, A is connected to C, and B is connected to C, with the match counts labelling the edges of the graph. For example, the edge connected A to B would be labeled with |AB|, which will be some integer. If the inequalities are satisfied, only two such graphs out of six are plausible, for the same reasons that underly the inequality. Specially, if I assume A is the ancestor of B, which is in turn the ancestor of C, then A and C almost certainly have fewer bases in common than A and B.

The graphs that remain, imply that if the inequality is satisfied, then A is almost certainly the ancestor of either B or C, or both, as a necessary and sufficient condition. If we plug in an implausible genome for either B or C (e.g., assuming that the Norwegians = A are the ancestors of Heidelbergensis = B), then the inequality serves as a necessary and sufficient condition for the descendants of the Norwegians, i.e., genome C. I will write more about this tomorrow, including code and some testing.

UPDATE 10/19/25

I’ve implemented a new version of the ancestry algorithm, which so far seems to work. Code is attached below, more to come!

 

On Natural Units and the Foundations of Mathematics

I spend a lot of time thinking about the connections between information theory and reality, and this led me to both a mathematical theory of epistemology and a completely new model of physics. I did work on related foundations of mathematics in Sweden back in 2019, but I tabled it, because the rest of the work was panning out incredibly well, and I was writing a large number of useful research notes. Frankly, I didn’t get very far in pure mathematics, other than discovering a new number related to Cantor’s infinite cardinals, which is a big deal and solves the continuum hypothesis, but short of that, I produced basically nothing useful.

Euler’s Identify is False

Recently I’ve had some more free time, and I started thinking about complex numbers again, in particular Euler’s Identity. I’m a graph theorist “by trade”, so I’m not keen on disrespecting what I believe to be a great mathematician, but Euler’s identity is just false. It asserts the following:

e^{i\pi } + 1 = 0.

I remember learning this in college and thinking it was a simply astonishing fact of mathematics, you have all these famous numbers connected through a simple equation. But iconoclast that I am, I started questioning it, specifically, setting x = i \pi, which implies that,

e^x = -1, and therefore,

x \log(e) = \log(-1), and so x =\log(-1).

This implies that,

e^x e^x = (-1)^2 = 1, and therefore, \log(e^x e^x) = \log(1).

Now typically, we assume that \log(1) = 0. However, applying this produces a contradiction, specifically, we find that,

\log(e^x e^x) = 0, which implies that x\log(e) + x\log(e) = 0, and therefore x = 0.

This implies that e^0 = -1, which contradicts the assumption that \log(1) = 0. That is, the exponent of e that produces 1 cannot be 0, since we’ve shown that e^0 = -1. Therefore, we have a contradiction, and so Euler’s identity must be false, if we assume \log(1) = 0.

A New Foundation of Mathematics

I proved the result above about a week ago, but I let it sit on the back burner, because I don’t want to throw Euler, and possibly all complex numbers, under the bus, unless I have a solution. Now I have a solution, and it’s connected to a new theory of mathematics rooted in information theory and what I call “natural units”.

Specifically, given a set of N binary switches, the number of possible states is given by 2^N. That is, if we count all possible combinations of the set of switches, we find it is given by 2 raised to the power of the cardinality of the set. This creates a connection between the units of information, and cardinality. Let’s assume base 2 logarithms going forward. Specifically, if S is a set, we assume the cardinality of S, written |S|, has units of cardinality or number, and \log(|S|) has units of bits. Though otherwise not relevant at the moment (i.e., there could be deeper connections), Shannon’s equation for Entropy also implies that the logarithm of a probability has units of bits. Numbers are generally treated as dimensionless, and so are probabilities, again implying that the logarithm always yields bits as its output.

The question becomes then, what value should we assign to \log(1)? Physically, a system with one state cannot be used to meaningfully store information, since it cannot change states, and as such, the assumption that \log(1) = 0 has intuitive appeal. I’m not aware of any contradictions that follow from assuming that \log(1) = 0 (other than Euler’s identity), so I don’t think there’s anything wrong with it, though this of course doesn’t rule out some deeply hidden contradiction that follows.

However, I’ve discovered that assuming \log(1) = I_0 \neq 0 implies true results. Physically, the assertion that \log(1) = I_0 \neq 0 is stating that, despite not having the ability to store information, a system with one state still carries some non-zero quantity of information, in the sense that it exists. As we’ll see, I_0 cannot be a real number, and has really unusual properties that nonetheless imply correct conclusions of mathematics.

If we assume that \log(1) = I_0, it must be the case that 2^{I_0} = 1. We can make sense of this by assuming that 2^x is defined over \mathbb{R}, other than at x = 0, where it is simply undefined. This makes physically intuitive sense, since you cannot apply an operator a zero number of times, and expect a non-zero answer, at least physically. To do something zero times is to do literally nothing, and so the result must be whatever you started with, which is not exactly zero, but it cannot produce change. Now you could argue I’ve just made up a new number, but so what? That’s precisely the point, because it’s more physically intuitive than standard axioms, and as we’ll show, it implies true results. Further, interestingly, it implies the possibility that all of these numbers are physically real (i.e., negative and complex numbers), though they don’t have any clear expression in Euclidean 3-space (e.g., even credits and debits are arguably better represented as positive magnitudes that have two directions). That is, the assumption is that things that exist always carry information, which is not absurd, physically, and somehow, it implies true results of mathematics.

Again, I_0 = \log(1), and so I_0 = \log(-1^2), which implies that \frac{I_0}{2} = \log(-1), and as such, 2^{\frac{I_0}{2}} = -1. If we consider \sqrt{2^{I_0}}, we will find two correct results, depending how we evaluate the expression. If we evaluate what’s under the radical first, we have \sqrt{1} = 1. If however we evaluate \sqrt{2^{I_0}} = (2^{I_0})^{\frac{1}{2}}, we instead have 2^{\frac{I_0}{2}} = -1, which is also correct. I am not aware of any number that behaves this way, producing two path-dependent but correct arithmetic results. Finally, because \frac{I_0}{2} = \log(-1), it follows that \frac{I_0}{4} = \log(i), and so 2^{\frac{I_0}{4}} = i, where i = \sqrt{-1}.

As a general matter, given \log(N), we have \log(1 N) = \log(1) + \log(N) = I_0 + \log(N). Exponentiating, we find 2^{I_0 + \log(N)} = 2^{I_0}2^{\log(N)} = \log(N), but it suggests that I_0 is an iterator, that gives numbers physical units, in that 2^{I_0} is not dimensionless, though it is unitary.

This is clearly not a real number, and I’m frankly not sure what it is, but it implies true results, though I am in no position to prove that it implies a consistent theory of arithmetic, so this is just the beginning of what I hope will be a complete and consistent theory of mathematics, in so far as is possible, fully aware that the set of theorems on integers is uncountable, whereas the set of proofs is countable.

Information, Fractional Cardinals, Negative Cardinals, and Complex Cardinals

In a paper titled Information, Knowledge, and Uncertainty, I presented a tautology that connects Information (I), Knowledge (K), and Uncertainty (U), as follows:

I = K + U.

The fundamental idea is that a system will have some quantity of information I that can be known about the system, and so everything I know about the system (K) plus what I don’t know about the system (U) must equal what can be known about the system. Specifically, we assume that I = \log(|S|), where S is the set of states of the system in question. This turns out to be empirically true, and you can read the paper to learn more. Specifically, I present two methods for rigorously calculating the values I, K and U, one is combinatorial, and the other is to use Shannon’s entropy equation for U. The results clearly demonstrate the equation works in practice, in addition to being philosophically unavoidable.

Because I will have units of bits, K and U must also have units of bits. Therefore, we can exponentiate the equation using sets S, S_K, and S_U, producing the following:

|S| = |S_K| |S_U|, where \log(|S|) = K + U, \log(|S_K|)  = K, and \log(|S_U|) = U.

Even if we restrict |S| to integer cardinalities, which makes perfect sense because it is the number of states the system in question can occupy, it is possible for either of S_K and S_U to have a rational number cardinality. The argument is, exponentiating by some number of bits produces cardinalities. Because both K and U have units of bits, regardless of their values, if we assume the relationship between information and number holds generally, it must be the case that there are cardinalities |S_K| and |S_U|. Because either could be a rational number, we must accept that rational cardinalities exist, given that the equation I = K + U is true, both empirically and philosophically. The same is true of negative cardinalities and complex cardinalities given the arguments above regarding I_0, though there seems to be an important distinction, which is discussed below.

Inconsistency between Assumptions Regarding the Logarithm

It just dawned on me, after writing the article, that the discussion above presents what seem to be two independent, and inconsistent axioms regarding the logarithm. Specifically, the exponentiated equation |S| = |S_K| |S_U| requires that \log(1) = 0 . As an example, let’s assume we’re considering a set of N boxes, one of which contains a pebble, and we’re interested in the location of the pebble. As described, this system has N possible states (i.e., locations of the pebble) and, therefore I = \log(N).

Now assume you’re told (with certainty) that the pebble is not in the first box. You are now considering a system with N-1 possible states, and so your uncertainty has been reduced. However, because this information doesn’t change the underlying system in any way, and in general, |S| cannot change as a result of our knowledge of the system, it must be the case that your Knowledge is given by K = \log(N) - \log(N-1), which is non-zero. We can then reasonably assume that S_U contains N - 1 states, and that |S_K| = 2^K. Now assume you’re told that all but one box has been eliminated as a possible location for the pebble. It follows that |S_U| = 1, and that U = \log(1). If \log(1) is not zero, I = K + U fails. Because it is a tautology, and empirically true, it must be the case that \log(1) = 0, which is plainly not consistent with the arguments above regarding I_0.

Now you could say I_0 is a bunch of garbage, and that’s why we have already found a contradiction, but I think that’s lazy. I think the better answer is that I = K + U governs representations, not physical systems, and is only true with regards to representations of physical systems. We can then conclude that I = K + U applies only to representations of physical systems, as an idea. Because I_0 is rooted in a physically plausible theory of the logarithm, we can say that this other notion of the logarithm governs physical systems, but does not govern representations of physical systems, since it clearly leads to a contradiction.

The question is then, as a matter of pure mathematics, are these two systems independent? If so, then we have something like the Paris Harrington Theorem. At the risk of oversimplification, the idea is that the mathematics that governs our reality in Euclidean 3-space could be different than the Platonic mathematics that governs representations, or perhaps ideas generally.

I’ll note that I = K + U is a subjective measure of information related to a representation of a system, in that while I is an objective invariant of a system, K and U are amounts of information held by a single observer. In contrast, I_0 is rooted in the physically plausible argument that if a thing exists in Euclidean 3-space (i.e., it has some measurable quantity), then it must carry information, even if it is otherwise static in all other regards.

Interestingly, if we accept the path-dependent evaluation of \sqrt{2^{I_0}}, and we believe that I_0 is the result of a physically meaningful definition of the logarithm, then this could provide a mathematical basis for non-determinism, in that physical systems governed by I_0 (which is presumably everything, if we accept that all extant objects carry information), allow for more than one solution, mechanically, in at least some cases. And even if it’s not true non-determinism, if we view 1 in the sense of being the minimum amount of energy possible, then I_0 is definitely a very small amount of information, which would create the appearance of non-determinism from our scale of observation, in that the order of interactions would change the outcomes drastically, from -1 to 1.

In closing, I’ll add that in the exponentiated form, |S| = |S_K| |S_U|, neither set can ever be empty, otherwise we have an empty set S, which makes no sense, because again, the set can’t change given our knowledge about the set. Once we have eliminated all impossible states, S_U will contain exactly one element, and S_K will contain all other elements, which is fine. The problem is therefore when we begin with no knowledge, in which case S_U = S, in the sense that all states are possible, and so our uncertainty is maximized, and our knowledge should be zero. However, if S_K is empty, then we have no definition of \log(|S_K|).

We instead assume that S_K begins non-empty, ex ante, in that it contains the cardinality of S, which must be known to us. Once our knowledge is complete, S_K will contain all impossible states of S, which will be exactly N - 1 in number, in addition to the cardinality of S, which was known ex ante, leaving one state in S_U, preserving the tautology of both I = K + U and |S| = |S_K| |S_U|.

On the Classification of Archeological Finds

I noticed a while back that individual subspecies of archaic humans were actually heterogenous, at least with regards to their mtDNA. In particular, the Neanderthal genomes in my dataset are actually 6 completely different maternal lines. There are 10 Neanderthal genomes in total, and the breakdown is (i) genomes 1, 2, and 10 are at least a 99.5% mutual match to each other, (ii) genomes 5 and 6 are a 63.4% match to each other, (iii) genomes 8 and 9 are a 99.9% match to each other, and (iv) genomes 3, 4, and 7 are unique, and have no meaningful match to each other or the rest of the Neanderthal genomes. Further, clusters (i), (ii), and (iii) have no meaningful match to each other. The plain result is that we actually have a heterogenous group of genomes, that have nonetheless been classified as Neanderthal.

Now I’m in no position to criticize archaeological work, but you can’t ignore the fact that we have 6 completely distinct classes of genomes. Because, by definition, there must be 6 distinct maternal lines in this population, it’s probably the case that the rest of the genome also differs meaningfully, though note the number of paternal lines could be larger or smaller than 6. But the point remains, the genomes probably differ generally, not just along the maternal line.

As a result, we have to ask whether we actually have a single subspecies. If we take that view, then the subspecies is the result of the mixing of these 6 distinct maternal lines. And this makes perfect sense, because the vast majority of human populations have heterogeneous maternal lines, and the only exceptions I’m aware of are the Romani People and the Papuans, who are almost perfectly homogenous on the maternal line. It’s worth noting that Romani mtDNA is basically identical to Papuan mtDNA, so there’s probably something to that.

We could instead take the view that the archeological classification is wrong, and that mtDNA controls the definition of a subspecies. I think this is a little aggressive, given that mtDNA is a very small portion of the overall human genome. But at the same time, mtDNA conveys a lot of information about heredity and even conveys information about paternal ancestry, which is amazing. That said, I think the better view is that a given group of people is (generally speaking) the result of a heterogenous group of people that is roughly stable over some period of time, in terms of its distribution of underlying genomes. This apparently applies to archaic humans as well, who seem to be (in at least this case) heterogenous.

Interestingly, the Denisovan genomes in the dataset are all a 97% match to each other, except one, which is totally unique. All of the genomes were (based upon the provenance files) taken from Denisova Cave in Siberia. Though we can’t know, it’s at least possible Denisovans were a more insular group of people than the Neanderthals. It’s possibly unscientific, but the Finns have a lot of Denisovan mtDNA, and they speak a language that is totally different from the Swedes, Norwegians, and Russians, despite sharing large borders with all three countries, suggesting the Finns really are an insular people.

Below are links to the genomes on the NIH website:

Neanderthal Genomes

1. https://www.ncbi.nlm.nih.gov/nuccore/OM062614.1

2. https://www.ncbi.nlm.nih.gov/nuccore/MT677921.1

3. https://www.ncbi.nlm.nih.gov/nuccore/MT795654.1

4. https://www.ncbi.nlm.nih.gov/nuccore/MT921957.1

5. https://www.ncbi.nlm.nih.gov/nuccore/MT576650.1

6. https://www.ncbi.nlm.nih.gov/nuccore/MK123269.1

7. https://www.ncbi.nlm.nih.gov/nuccore/KY751400.2

8. https://www.ncbi.nlm.nih.gov/nuccore/MK033602.1

9. https://www.ncbi.nlm.nih.gov/nuccore/MK033602.1

10. https://www.ncbi.nlm.nih.gov/nuccore/KU131206.2

Denisovan Genomes

1. https://www.ncbi.nlm.nih.gov/nuccore/KX663333.1

2. https://www.ncbi.nlm.nih.gov/nuccore/KT780370.1

3. https://www.ncbi.nlm.nih.gov/nuccore/MT576653.1

4. https://www.ncbi.nlm.nih.gov/nuccore/MT576652.1

5. https://www.ncbi.nlm.nih.gov/nuccore/MT576651.1

6. https://www.ncbi.nlm.nih.gov/nuccore/NC_013993.1

7. https://www.ncbi.nlm.nih.gov/nuccore/FR695060.1

8. https://www.ncbi.nlm.nih.gov/nuccore/FN673705.1

Early Machine Learning Innovations

I’m certainly not a scholar on the topic, but I am interested in the history of Machine Learning, and this morning, I discovered a concept known as the Fisher Information. This is the same Sir Ronald Fisher that developed the Iris Dataset in 1936, which is most certainly a Machine Learning dataset, though it predates the first true computer the ENIAC which was built in 1945. The point being that the Iris Dataset itself is way ahead of its time, using measurable characteristics of various flowers to then determine the species of the flowers. This is a deep idea, in that you have the mathematical classification of species, which I would argue goes beyond the anatomical, and brings biology into the mathematical sciences.

But on top of this, and what seem to be many other achievements I don’t know much about, he had a really clever idea regarding mutual information between variables. Specifically, how much does a given probability distribution f(X,\theta) change as a function of \theta. His answer was to look at the derivative of f as a function of \theta, though the specific formula used is a bit more complicated. Nonetheless, the basic idea is, how sensitive is a distribution to one of its parameters, and what does that tell me.

This is exactly what Machine Learning engineers do all the time, which is to test the relevance of a dimension. Just imagine you had a dataset with dimensions 1 through N, and that you have a prediction function on that dataset F(x_1, \ldots, x_N). Now imagine you add a set of weights (\theta_1, \ldots \theta_N), for \theta_i \in [0,1], so that you instead consider the function F(\theta_1 x_1, \ldots, \theta_N x_N). That is, we’ve added weights that will reduce the contribution of each dimension simply by multiplying by a constant in [0,1]. This is one of the most basic things you’ll learn in Machine Learning, and the rate of change in accuracy as a function of each \theta_i will provide information about how important each dimension is to the prediction function. This is basically what Fisher did, except almost one hundred years ago, effectively discovering a fundamental tool of Machine Learning.

The point is more than just historical, I think Machine Learning is a buzzword used to cover up the fact that a lot of this stuff was known a long time ago, and that Artificial Intelligence is, generally speaking, far more advanced than the public realizes, and that as a matter of logical implication, most of what we believe to be new and exciting breakthroughs are often mundane adaptations of existing methods and technology. The fact that so much money is being poured into the market is disturbing, because I have no idea what these people do all day.

The Inheritance of Molecular Machinery

It turns out mtDNA is inherited directly from the mother to its offspring, and I just had the idea that perhaps the molecular machines responsible for replicating DNA generally, and performing other functions within cells, are also inherited directly from the mother, to its offspring, for the simple reason that females carry the young until birth in basically all mammals. I don’t know how molecular machines are encoded in our DNA, and I haven’t looked it up if I’m being perfectly honest, but the idea is not ridiculous, again, for the simple reason, that women carry the offspring. I will look this up, and revisit the idea, but I think it’s interesting, because again (if true), like mtDNA, it suggests a fundamental asymmetry between the sexes, in terms of the contribution of DNA to offspring.

In particular, molecular machines must require a lot of information to encode, as they are effectively nano-scale robots, that perform simply astonishing functions, including the production of ATP, and the transport of molecules. In contrast, the macroscopic frame of a human being is not the complicated, as it has a simple shape, organs are probably next up in terms of complexity, bones perhaps a tie, since they have to move, organelles I don’t think are much more complicated than organs themselves. But molecular machines operate at the scale of a microprocessor, transporting single digit electrons, at a scale where interference from the natural background we live in must be occurring basically constantly, which will cause acceleration, and disrupt cellular processes, in particular with respect to the transportation of electrons.

If semen becomes too complex, then it has to become either more efficient in encoding information, or larger as a molecule, there’s no way around that, since it by definition carries the information of the paternal line. And as a result, a mechanism that allows females to transmit the most complex aspects of its offspring, makes sense, because it doesn’t have to go anywhere. I note that the ATP synthase is found on the mitochondrion, which is again inherited directly from the mother.

Higher Order Relations

I was reading my favorite book on mathematics, Mathematical Problems and Proofs, in particular, a section on basic Set Theory. The book discusses the transitive relation, where if A is related to B, and B is related to C, then A is related to C. In this case, A, B, and C are abstract mathematical objects, but you can assign practical meaning by e.g., making them all integers, and considering ordinal relationships between them, where e.g., A is greater than B, B is greater than C, and therefore, A is greater than C.  Note that this example of ordinal relationships has a “therefore” clause, but relations are abstract statements of fact, not consequences of logic. That is, we simply posit relations between objects, whereas I’ve phrased the concrete example in terms of a logical conclusion, which is very different. That is, this example is consistent with the stated set of relations among A, B, and C, which are simply posited to exist, whereas the integers have properties that imply that A is greater than C as a matter of logic.

With that introduction, it dawned on me that we can consider higher order sets of relations that probably don’t have names like “transitive”. One obvious such set of relations is as follows, where A is related B, B is related to C, C is related to D, and A is related to D. All I did was add an extra object D, and extend the relations analogously. Specifically, we can express this as a graph, where A through D are connected by a path, and A is connected directly to D by an extra edge, creating what would be a circuit in an undirected graph. Though note that even if A is related to B, this does not imply that B is related to A, and as such, any graph expressing relations is directed. This is probably known, given how simple it is, and I’m certain through my own studies that people express relations using graphs.

The interesting bit is the possibility of using machines to discover meaningful higher order relations that e.g., require at least four or more objects. Because it’s at least possible for these relations to arise over any number of objects, we can’t give them all special names in a human language like “transitive”, but a machine can. The point being that, most of mathematics is probably accessible only to machines or other sentient beings capable of handling that much information, which plainly do not inhabit this planet in any appreciable number.

Later Classical Peoples

I’ve written a lot about human history based upon mtDNA, supplemented with some archeological and anecdotal evidence. I put this together into a fairly comprehensive yet approachable presentation here. The Ancient Egyptian portion of the presentation focuses on what is commonly referred to as the “Old Kingdom”, when Egyptians plainly looked Asian, and as it turns out, the Old Kingdom mtDNA genome in the dataset is a 99% match to many modern South East Asians. The other more recent genome is instead dated to 129 to 138 AD, during the Roman Period of Ancient Egypt. They are definitely different genomes, and what’s interesting, is that this later genome basically fills the gap of the European population, with a large number of people in Europe, Northern Europe in particular, being either a 99% match to the Old Kingdom genome or a roughly 87% match to the Roman Period genome. This is not terribly controversial, since it claims that many Europeans are of either Ancient Egyptian or Roman Egyptian descent, both being major Mediterranean powers.

However, the truth is much more complicated than that, and the data suggests both groups, the Old Kingdom Egyptians, and Roman Egyptians, came from Asia. That is, Europeans are probably not Ancient Egyptians, but instead, Northern Europeans descend from the same group of people in Asia, some of whom went North, becoming Scandinavians and Germans, and some of whom went South, becoming Ancient Egyptians and Tanzanians. In particular, the Old Kingdom Ancient Egyptians seem to be related to the South East Asians, both physically and in terms of their mtDNA, whereas the later Egyptians seem to be related to Middle Eastern and Indian people, again both physically and in terms of their mtDNA. Below on the left is King and Queen Menkaure (c. 2,500 BC), both seemingly of Asian origin, and on the right is Cleopatra (c. 50 BC), plainly European, and known to be Macedonian.

The thesis here is that both people come from Asia, and that the Old Kingdom Ancient Egyptians are more closely related to the modern South East Asians, whereas the Roman Period Egyptians were possibly of Indian origin, in particular the Munda people, which is consistent with their appearance, in particular their noses. Further, the Roman Period Egyptians are an 87% match to the Swedes, Icelanders, and Dubliners, plainly suggesting the Vikings were also Indo-Aryan people. None of this is that novel, it’s just interesting that mtDNA is consistent with the notion of Indo-Aryan languages, plainly suggesting that a lot of Europeans really are of Indian origin. The novel piece is that the Ancient Egyptians are another group of Asians that came earlier, and look more South East Asian than Indian. Both bloodlines are present in modern day Europeans, in particular Northern Europeans. 

mtDNA Presentation

I’ve put together a presentation summarizing some of my work on mtDNA for a Meetup event, which is available here. Because this is a summary, it’s really easy to read, and focuses on human history, as opposed to Machine Learning or genetics. In particular, I present a very credible theory of the entire history of humanity, from Africa, to Asia, and back, using mostly Machine Learning applied to mtDNA, though supplemented with archeological evidence as well.

Enjoy!

Charles

Corrections to the Proof of Cantor’s Theorem

I was reading my absolute favorite book on mathematics, Mathematical Problems and Proofs, and it mentions Cantor’s Theorem, that the cardinality of a set is always less than the cardinality of its power set. So for example, the cardinality of |\{1,2\}| = 2, which is less than |\{ \{\emptyset \}, \{1\}, \{2\}, \{1,2\}\}| = 4. There is however no proof in that book of the general case, and instead only a proof of the finite case, expressed as a counting argument. I looked up proofs, and all the proofs I could find seem to have the same hole, which I’ll discuss.

Let A be a set, and let P(A) denote the power set of A, i.e., the set of all of its subsets. Now assume that |A| \geq |P(A)|. That is, we are assuming arguendo that the cardinality of A is not less than the cardinality of its power set, in contradiction to Cantor’s Theorem. It follows that there must be some function \psi: A \rightarrow P(A) such that \psi is surjective, which means that all elements of P(A) are mapped to by \psi, and such a function must exist, because we have assumed that |A| \geq |P(A)|. That is, because |A| \geq |P(A)|, there are enough elements in A to map to every element in P(A).

Now the next step of the proof (at least the few versions I saw this morning) all universally define the set B below, without addressing the possibility that the set is empty, though it’s possible the original proof addresses this case. My issue with this, is that there doesn’t seem to be any difference between an empty set, and a set that is provably non-existent. As such, I don’t think empty sets should be used as the basis of a proof, unless the proof follows only from the non-existence of the set, and other true theorems, true axioms, or additional assumptions (in the case of a line of reasoning being considered arguendo). In this case, proving the set in question is non-empty, changes the scope of the proof, in that it only applies to sets with a cardinality of two or greater. Most importantly, consistent with this, the accepted proof fails in the case of the power set of the empty set, and in the case of the power set of a singleton, because of this hole. This is very serious, the proof is literally wrong, and fails in two cases, that are plainly intended to be covered by the proof.

The Modified Proof

Specifically, proofs of Cantor’s theorem define B = \{x \in A | x \notin \psi(x)\}. That is, because we know \psi (defined above) must exist, we know that we can define B, using \psi. However, it’s possible that B is empty, since there might not be any such x \in A. That said, a simple additional step will prove that we can always define \hat{\psi}, which will produce a non-empty set \hat{B}.

Assume that B is empty and that |A| \geq 2. Because A \subset P(A), there must be x,y \in P(A), such that x \neq y , and x,y \in A. Because \psi is surjective, there must be a,b such that \psi(a) = x and \psi(b) = y. If a \notin x or b \notin y, then B is non-empty. As such, assume that a \in x and b \in y. Now define \hat{\psi}, such that \hat{\psi}(x) = y and \hat{\psi}(y) = x , but otherwise \hat{\psi}(z) = \psi(z) for z \notin \{x,y\}. If x and y are both singletons, then x \notin y and y \notin x. If either is not a singleton (or both are not singletons), then it must be the case that either x \notin y or y \notin x, or both. This implies that \hat{B} is not empty. Because this can be done for any surjective function \psi, we are always guaranteed a non-empty set \hat{B}. Note that \hat{\psi} is still surjective.

Now we can complete the proof as it is usually stated. Because \hat{\psi} is surjective, there must be some x_0 such that \hat{\psi}(x_0) = \hat{B} \subset P(A). It must be the case that either x_0 \in \hat{B} or x_0 \notin \hat{B}. If x_0 \in \hat{B}, then x_0 fails the criteria for inclusion in \hat{B}, namely \hat{B} = \{x \in A | x \notin \hat{\psi}(x)\}, since by definition, \hat{\psi}(x_0) = \hat{B}. If x_0 \notin \hat{B}, then x_0 satisfies the criteria for inclusion in \hat{B}. In both cases, we have a contradiction. The assumption that |A| \geq |P(A)| implies the existence of \psi, which in turn implies the existence of \hat{\psi} and \hat{B}, which leads to a contradiction. In order to resolve this contradiction, we must therefore assume instead that |A| < |P(A)|, which completes the proof.

The Case of the Empty Set

Now assume that A = \emptyset, and let’s apply the proof above. Generally speaking, we would assume that the power set of the empty set contains one element, namely a set that contains the empty set as a singleton, represented as P(A) = \{\{\emptyset\}\}. Assuming we can even define \psi in this case, it must be that \psi(\emptyset) = \{\emptyset\}. Because \emptyset \in \{\emptyset\}, it must be the case that B = \emptyset. However, if we want A \neq P(A), it must be the case that \emptyset \neq \{\emptyset\}, even though \emptyset \in \{\emptyset\}. Therefore, \emptyset \notin P(A), and instead, \emptyset \in \{\emptyset\}, and as a result, the proof fails in the case of |A| = 0 since B = \emptyset \notin P(A). That is, the accepted proof assumes B is contained in the power set, which is just not true in this case, suggesting that there really are problems deriving theorems from empty sets.

The Case of a Singleton

Now assume that A = \{x\}, and let’s apply the proof above. The power set of a singleton is generally defined as P(A) = \{ \{\emptyset\}, \{x\}\}. Because the accepted proof does not explicitly define \psi, we are free to define \psi(x) = \{x\}. Because x \in \{x\}, B = \emptyset. As noted above, \emptyset \neq \{\emptyset\}, and therefore, B \notin P(A). Again, the accepted proof fails.

Because the accepted proof fails in two cases where B is empty, my axiom above requiring sets to be non-empty in order to derive theorems, must be true. Nothing else above within the proof is subject to meaningful criticism. Again, I have no idea whether Cantor’s original proof addressed these points, but it’s surprising that no one has bothered to apply these proofs to the case of the empty set and a singleton, which would make it clear it doesn’t work.