# What is the likelihood of a single human gene to the same gene from the other human?

The human genome comprises 3,234.83 Megabases and contains ~ 19,000 genes. It has been estimated that the genomes of humans are 99.9% identical. How likely is it that any single gene might vary from one individual to another? Assume an average length for a gene of 3 kilobases.

Is it still 0.01%, the same as for the whole genome? Why then we have the number of genes in this exercise, together with an approximate length?

Assumptions

Let's assume that we can perfectly align all human genome and therefore calculate such statistics of identity.

Let's assume that the probability of identity of 99.9% is the same for neutral sequences than for coding sequences. This assumption is most likely wrong but there is no other way to answer the question with the data that are given to us.

What is the question exactly?

Your homework question is a little unclear unfortunately. I don't know what is meant exactly by

How likely is it that any single gene might vary from one individual to another?

Does it mean

You randomly sample two humans and randomly sample one gene. What is the probability of perfect identity a this gene?

or does it mean

You randomly sample one gene, what is the probability that all humans are identical for this gene?

I will assume it means the first one.

Step by step

I will go by subquestions to guide through the thought process! Try to answer the following questions one by one and you should be able to get to the final answer yourself

1. Randomly sample two individuals and randomly consider one nucleotide in their genome. What is the probability that this nucleotide is the same?

2. Randomly sample two individuals and randomly consider two nucleotides in their genome. What is the probability that these two nucleotides are the same?

3. Randomly sample two individuals and randomly consider n nucleotides in their genome. What is the probability that these n nucleotides are the same?

4. Randomly sample two individuals and randomly consider n nucleotides in their genome. What is the probability that these n nucleotides are different?

5. Randomly sample two individuals and randomly consider 3000 nucleotides in their genome. What is the probability that these 3000 nucleotides are different?

What answer did you get? If you got stuck somewhere, please let me know where!

Hints

1. No point about using a calculator, it will return Infinite or 0 at some point anyway!

2. Don't worry too much if you're not using all the numbers that are given to you!

• Hint: a modestly advanced calculator will easily calculate this without overflowing or underflowing. – mgkrebbs Oct 16 '17 at 5:28
• I don't know how many bytes modern calculator typically use for a number but I think (might be wrong, you'll correct me) that it takes about 4 kiloBytes to store the inverse of this number (neglecting the decimals)! I have never seen such number being used in computer science but I don't know what data type (and how much RAM) advanced calculator typically use. – Remi.b Oct 16 '17 at 17:56
• Remi, apparently we have completely different calculations in mind. It seemed to me (and your answer also suggested to me) that the answer would just require a simple exponentiation operation, and the numbers involved would be reasonable. – mgkrebbs Oct 17 '17 at 17:39
• Too bad we can't give the answer out loud here to further this discussion! If the OP shows effort at trying to solve the issue form my hints, we can further this discussion :) – Remi.b Oct 17 '17 at 17:43

The answer: 0.25% of genes will be different

How I got the answer is by simulating two genomes using the following code:

lengthGenome=3234.83*10^6
numGenes=19000
lengthGene=3000
fracSim=0.999

trialHolder=1:100
for(trial in 1:100){
genomeA=rep(0,lengthGenome)
genomeB=rep(0,lengthGenome)
genomeA[sample(1:lengthGenome,round((1-fracSim)*lengthGenome))]=1
genomeB[sample(1:lengthGenome,round((1-fracSim)*lengthGenome))]=1
startGenes=sample(1:lengthGenome,numGenes)
equalGene=0
for(i in 1:numGenes){
equalGene=all(genomeA[startGenes[i]:(startGenes[i]+lengthGene)]==genomeB[startGenes[i]:(startGenes[i]+lengthGene)])+equalGene
}
trialHolder[trial]=equalGene/numGenes
}
print(mean(trialHolder))


To quickly walk through the code you make a genome of the specified length, and then change 0.01% of the genome to be a mutation, and therefore not similar to the other genome at the same position. Then define the start points of the number of genes specified. For each gene region, see if the genes look exactly the same (if one does not have the mutation within). Finally just track the proportion of genes that are all equal.

I ran the code 100 times and averaged the result, it took a little while. There is likely a more direct, probabilistic way to do this but I imagine the result would be the same.