# How much computer memory is needed to store a physical profile of all living people?

My story needs a computer program that has complete physical profiles for all 7 billion of us. By complete, I mean all basic vital signs/functions in real time. (I'm hand-waving how we'd monitor those functions or input the data for now.)

How much memory would this program take? What kind of...server(?) would be required to store it? Could you access it from your desktop computer at home? How long would it take to download it, search through it, etc. for any particular person's data?

Now to get really ridiculous...if we gained everyone's complete gene map, could we store it on the program as well?

• For the basic vital signs in real time we would need to store 4 numbers maybe once per second:

4 bytes/number * 4 vital signs * 86400 seconds/day * 365.25 days/year * 7.4E9 people = 3,750,000 TB/year (3,75 EB/year)

That would cost anywhere between 200 million and 1.9 billion US dollars, depending on the kind of storage (cheap as dirt slow spinning discs at 50 USD/TB, or deluxe high performance SSD storage arrays at 500 USD/TB). Multiply with a suitable factor to account for the IT infrastructure needed to manage this amount of storage. Still, it is within reach of a government or a large corporation.

To decrease the storage space by a factor of 10 you could decide that after a month the history of vital signs is kept with one data point per minute.

• To store the entire genome for 7.4 billion people:

6.5E9 base pairs * 3 bits/base pair / 8 bits/byte * 0.25 compression factor * 7.4E9 people = 4,500,000 TB (4.5 EB)

For comparison, Google is said to hold some 10-15 EB of data. So in order to store the complete genome of the entire world population you would need about half the storage space used by Google.

• Why do you need three bits to store 4 unique states? That seems like a 2 bit problem to me. Also, how can you justify 0.25 compression factor for the human genome? Still, I calculated independently and got 5 EB, so your final result seems legit. – kingledion Jan 18 '17 at 5:04
• Also, if you keep your vital signs in memory and update every second, then you need about 118 GB of memory (and bandwidth per second) and no hard drive storage. – kingledion Jan 18 '17 at 5:06
• I expect you could do really effective compression of the genetic data, since most of the genome would be common to many people. Indeed, it's widely reported that humans & chimpanzees share about 97% of their genome - and humans & cabbages around 50% :-) Similarly with vital signs: you don't need to store the values every second (heck, if you're me, your resting pulse rate is under 60 BPM), just the deltas when they change. – jamesqf Jan 18 '17 at 5:08
• Yes, I suspect you could compress the genome data by far more than 75%. For a back-of-the-envelope calculation, I would say a 99% compression rate is probably trivially achievable, and 99.99% might not be at all unreasonable, not the least because huge parts of the data are going to be identical or nearly identical for all humans (so you could store a baseline and then the differences, rather than store a full copy for each). – a CVn Jan 18 '17 at 9:06
• @MichaelKjörling I wholeheartedly agree on the compression estimate. The high degree of similarity in the data will allow for the construction of very good symbol prediction functions and combined with efficient encoding (e.g. aritmethic coding) 99% seems very credible. Heck, 7zip already does this if you create a solid archive containing highly similar files. – Durandal Feb 15 '17 at 18:15

The four vital signs are :

• Body Temperature
• Blood Pressure
• Heart Rate
• Respiratory rate

Temperature ranges from 24C to 44C. Anything outside that range is almost certainly fatal. A high quality reading would be accurate to a 10th of a degree, so there's 200 possible values. We'll give it 1 byte of data. Cor temperature changes very slowly. 1 reading every minute is probably far more than we would ever need, leading to a total usage of 1 byte/minute. I'd probably differential encode it (record changes in temperature, because they will be much smaller) and then comrpess it. I bet you can get under 1byte/hour.

Blood Pressure Blood pressure is two readings: systolic and diastolic. These numbers vary more than temperature, especially during exercise. While a 150mmHg systolic reading at rest suggests hypertension, during exercise it easily clears 200mmHg in a healthy person. Measurements can be made at most once per heartbeat, but realistically that's overkill. Taking readings once every 5 seconds is probably good enough to qualify as "real time." Once again, I would choose to do a differential coding because most of the time the change in pressure from sample to sample is small. With most readings being a change of less than 8mmHg and a typical reporting accuracy of 1mmHg, we'd average about 6 bits per reading (3 for systolic, 3 for diastolic) or 72 bits/min

Heart Rate varies similarly to blood pressure. In fact, they typically vary together. For simplicity, I'll assign the same 3 bits of differential encoded data for 36 bits/min

Respiratory Rate This is hard to measure at any high rate because things like speaking cause us to breath irregularly. We might read this once per minute. Typical values are 10-40 and we can probably measure them once every 30 seconds. At this point, I can see that the heart stats are going to dominate the data utilization, so I wont try to run down the respiratory data rate any further.

The dominating factors are the heart rate and blood pressure, for a sum total of 108bits/min or about 14bytes/min. Multiplying by 525600 minutes/year gives us 7.3MB/year per person, or 54,000TB/year for the entirety of humanity. (Note: this is far cheaper than AlexP's estimate because I'm storing data a lot less frequently and I took the time to encode/compress the data)

Using the estimate of 4.5 EB and Gigabit ethernet:

$$\frac{4.5 EB * 1,000,000 \frac{EB}{GB} * 8 \frac{b}{B}}{ 1 \frac{Gb}{s}} = 36,000,000 \text{ seconds}$$

That's a bit over a year (31.5 million seconds). Note that it is unlikely that you'd actually have a Gigabit wide pipe from server to desktop. So a year should be considered the lower bound. And of course during that year, you'd add more data, which would take a year to download. You'd never catch up.

As already noted, this is similar in size to Google (roughly half to a third of Google per year). So most searches should be feasible within a few seconds. Trying to search by vital sign or partial DNA would be more difficult though. Too much duplicate data.

• The 4.5 EB figure is for the total amount of data for all people. Let's say that the global population grows by 2% per year (that's high; I've seen the figure 1.7% for the last several decades), that's an increase in the amount of data by 0.09 EB per year. If I'm not mistaken, that would take 720,000 seconds or about 8 days to transfer over a 1 Gb/s pipe. You would definitely catch up eventually. – a CVn Jan 18 '17 at 9:03
• @MichaelKjörling You could catch up on the genetic data, but you still have the vital sign data. That's 3.75 EB each year for vital sign data. – Brythan Jan 18 '17 at 15:35
• Not if you use a reasonable encoding such as for example that proposed by Cort Ammon. There is no need to use 32 bits (range 0 to 4.3 billion) once per second to store a person's heart rate, for example. – a CVn Jan 18 '17 at 15:39

What kind of Servers

A lot depends on how you're planning on using the data. When asked about what kind of servers, I always ask the following questions:

• Where is it going to be accessed?
• How frequently are you going to access it?
• Is the data transactional or for data analysis?
• How many users will be accessing the data at all times?
• How consistent does the data need to be(i.e. can we tolerate temporarily inconsistent data as it updates?)

Example 1: the NSA

Currently, the NSA is vacuuming up all metadata they can for every data point they can (phone calls, email, social media, etc.) This is stored in a massive Data Center in Utah. Their concern is collection and retention. Limited number of queries from a limited number of users who can tolerate a slow query response time.

Google operates multiple data centers, geographically distributed throughout the world. This both reduces the lag time of a request for information by having data centers closer to the request and distributes the query load among the several centers. Each center is huge, running large banks of servers with proprietary operating systems, called , Google File System.

Could you access it from your desktop computer at home?

Yes, if so designed. Google is in the realm of what you're talking about, and it's used by millions every day.

How long would it take to download it You wouldn't. The data would reside in the data centers. You would ask a question, the data center would perform the query, and return the result.

How long would it take search through it ... for any particular person's data?

If properly indexed and designed, the results could be very fast. If you wanted to do ad-hoc queries(questions the system was not designed to give a fast answer to. Say "Show me how many people, by country, right now have a systolic blood pressure above 120?"), then that is a different matter all-together. It might take minutes or days. Another issue you may not have thought of is identifying individuals. You want to see John Smith's vitals. Fine. Which of the 10,000 John Smith's you wish to access?

Human Genome

The Human Genome has about 3 billion base pairs. These are comprised of four bases, adenine which binds to thymine and cytosine which binds to guanine. If we assume 4 possible combinations (at, ta, cg, and gc), we can represent a base-pair with 2 bits. 3 Billion tims 2 bits = about 250 MB. 250M times 7 billion equals 1.75EB. This site estimates a \$400 million cost for for a 1.8 EB data center.

Keep in mind, also, that the human brain has 100 billion + neurons. Each neuron can be connected to around 10,000 other neurons. If you're talking about recreating a (capital "p") Person, you would need to store the neuron-synaptic pattern of that person.

So, 100,000,000,000 * 10,000 = 1*10^15 possible neural connections

The location and proximity of each neuron is a non-trivial matter. So, you need to add the x, y, and z coordinates of each neuron. (you only really need to do the neurons because the rest of the body is life-support. The brain, or specifically the pattern needs to be perfect, or the person will be different.)

the average human brain is 6 inches long, so you need at least that size of a scale. because of the high degree of accuracy needed, I would suggest converting to nanometers, which 6in = 1.524 *10^8 nm (these numbers are getting out of hand).

each number digit can be shown with 2 bits (0-9 would be 00-11). SO, you are looking at 3(2(1.524*10^8))(1*10^15) = 9.144e+23 bits just for the location.

9.144e+23 bits / 8 = 1.143e+23 bytes = 14,287,500,000 terabytes

Also, each connection is either on or off. So, (1*10^15) * 2 = 2*10^15 bits = 250 terabytes

Just to capture the brain pattern, you would need 14,287,500,250 terabytes just to capture a snapshot of the person's brain.

Reasonably, you just need a map of the "wetware" part. but you need an active pattern of the brain. lets say 10 seconds (this is arbitary, but it needs to be non-zero to maintain a pattern.) The pattern would also need to be run in an emulator of the brain, but lets just bump the storage by 10x. so 2500 terabytes.

14,287,502,500 terabytes per person * 7.4 billion people = 1.0572752e+20 terabytes or 100,000,000,000 zetabytes.

This obviously is a VERY inefficient use of storage space, and could be pared down significantly with compression.

• He asked to map the genome, not the neural connections. – kingledion Jan 18 '17 at 5:07
• genome alone would be pointless for storing people though. the genome just says how to make a body. A person is the neural pattern. – Josh W Jan 19 '17 at 3:17
• @JoshW The OP didn't ask to store people either. Didn't really say what the purpose is. – Schwern Jun 28 '17 at 18:11