I'm trying to figure out how I can download a file that represents the complete human DNA sequence. I don't care too much about the format – I'm able to write C++ code to parse it. FASTA seems like a simple format though. What I haven't figured out yet is where I can find a complete file – I have found what appear to be subsets of genes or other sequences or single chromosomes but aren't there 46 chromosomes to include or are some of those duplicates (i.e. 22 chromosomes + 2 sex chromosomes)?

On this page, I have found this list of files under "Human > Genome assembly: GRCh38" but it appears to be broken up by chromosome or something? If so, would I merge these? My goal is to display all the letters via projector onto a wall and I want to be able to point at it and tell someone, that's all the DNA for a human (not a subset). Also, to double check, it is a "genome assembly" I want right? By the way, I don't care about allele variants right now.

Please consider in your response that I am not familiar with much of the lingo, thank you.

  • 1
    $\begingroup$ Thanks for all the great answers! They were actually ALL helpful to me. $\endgroup$
    – ABCD.ca
    Oct 6, 2014 at 22:06

5 Answers 5


The National Centre for Biotechnology Information has a link to a genomes FTP site - on that page, there is a file labelled .../genomes/H_sapiens (this a direct link to that directory).

There are numerous files therein. From the README file:

Sequence data include chromosomes, contigs, RNAs, and proteins generated through the NCBI Reference Sequence and NCBI Genome Annotation projects. Map data presented in the Map Viewer resource are also provided here.

  • $\begingroup$ Only about 770M? I expected it to be bigger $\endgroup$ Oct 2, 2014 at 20:46

Non-biologist here stepping in.

@swbarnes2 has a good point pinning the fact that (approx) 3Giga nucleotides to display "on a wall" (as you state) even with a good projector is gonna be a hard task. You'll need several projectors and a hell of a big wall. (say you take the smallest readable police setting you'll have each letter take a space of 4*6 pixels which for the whole will bring you to ~[227k x 342k] pixels so around 35k HD-projectors)

Which led me to think of why you would want to do such a thing. The most plausible of which is : it is for some sort of artistic/cultural intent. In such case, rather than showing letters (ATGC) I recommend to encode it in binary (00,01,10,11) and make this value code for a colored pixel.

That will leave you with a square matrix of around 57k pixels edge (which remains humongous) of shaded in 4 tones black to white dots.

If you want to go even farther, trichromia stands to the rescue, don't make pixels code for just one nucleotide each. Make them code for one "pseudo-codon" (triplet) each. First nucleotide defining the red shade, Second nucleotide defining the green shade, last nucleotide defining the blue shade. (plain and simple Additive color RGB stuff).

-EDIT- Knowing that the notion of codon is invalid and that any nucleotide (except the leading and trailing 2 of each chromosome) could be part of three distinct codon (depending on wether they are in an intron, exon or even alternatively spliced) we see that this grouping by 3 is not THAT right.

In such case why not take even more liberties ? Group your nucletides by 12 (3 groups of 4) giving you more depths in the color shades.


you'll get a much nicer and significantly smaller matrix of [30k x 30k] (which is still gonna take you a big wall and a few HD-projectors ~150 but at this point you can compress the output with several methods and get merged pixels, yet 150 is far less than 35000).

I know I don't bring actual solutions to the asked question (but I really think @Omen did it pretty well) but I sensed that there maybe here some insight worth handing (at the risk of making a fool of myself)

  • 1
    $\begingroup$ id think a dynamic display might work, showing segments at a time... $\endgroup$
    – shigeta
    Oct 2, 2014 at 13:51
  • 1
    $\begingroup$ I also considered advising to have a dynamic display (to save even more money on projectors ;p) but it seemed either self-evident or out of what I understand to be the required scope. Yet it IS probably the smartest way of displaying it all. It's like displaying a whole book, one should consider displaying it page by page not all of it in a bloated block. $\endgroup$
    – Ar3s
    Oct 2, 2014 at 14:37
  • $\begingroup$ A small niggle...we generally don't call three nucleotides together a codon unless they are actually in the coding region of a gene, and are in the frame that's actually being translated. Most of the genome would not be in "codons". $\endgroup$
    – swbarnes2
    Oct 3, 2014 at 18:10
  • $\begingroup$ As I stated in my message, I'm not a biologist, at most I am a bio-enthusiast. But that is true indeed. If nucleotides are in an intron (that is not interpreted in alternative splicing) then yes it is not part of a codon. I'll amend my post. Yet for the purpose that I described, it can still be part of a non-semantic triplet. After all, if the assumption I stated is right, then grouping nucletides by any numbers, in any way (as long as they are consecutive) would not really matter as it won't be anymore relevant. The DNA in itself is not THAT relevant, it's the way it's gonna be transcripted. $\endgroup$
    – Ar3s
    Oct 3, 2014 at 18:18
  • $\begingroup$ Thank you, this is my favourite answer as it gets to the heart of how I want to use the data. I marked another one as the most direct answer for what I asked. I guess I had a few questions in one. $\endgroup$
    – ABCD.ca
    Oct 6, 2014 at 22:06

but aren't there 46 chromosomes to include or are some of those duplicates

First of all, while each person has 2 copies of each chromosome, those copies are 99% identical. So it would be a waste to repeat the whole thing twice.

Second, the technology is such that it's not easy to generate, say, the whole sequence of a chromosome that came from their mother. You either get sanger traces which show the two sequences superimposed on each other, or very short reads that are not mixed, but you can't tell which parent generated which fragment.

So in general, a reference genome will just have one consensus letter at every position, even though that's not biologically realistic. It doesn't much matter what the reference is, as long as everyone knows that it's just a reference.

My goal is to display all the letters via projector onto a wall and I want to be able to point at it and tell someone, that's all the DNA for a human (not a subset).

Can you really display 3 billion characters like that?

  • 3
    $\begingroup$ Can you really display 3 billion characters like that? No: assuming a character is ~0.03 sq. in. (about 12pt), it would take 14.35 acres of wall to display 3 billion characters. $\endgroup$ Oct 2, 2014 at 2:11
  • $\begingroup$ For us "metric" readers who wonder, 14.35 acres ~= 58072m² which in turn is a bit more than 5 "large" (internationnal cups) soccer fields. $\endgroup$
    – Ar3s
    Oct 2, 2014 at 14:43

If I understand your question correctly, you want a single file, i.e. a single string, which represents the sequence of an entire human genome. However, there is no such thing. The human genome is stored in 46 different strings (chromosome), and these strings have no natural order.

The numbers used to refer to the genomes are based on their order when arranged by size.

All operations on the genome (such as copying it before mitosis) happen in parallel, with proteins operating on each chromosome individually.

If you want to represent an entire human genome "honestly", I would say your best bet is to put 46 separate strings on the projector, perhaps running parallel to one another like the code in the Matrix.

If you want to display one big long string, any sequence of concatenation is as (in)correct as any other, so just open the files in alphabetical order and concatenate them all.


If you want to merge all the sequences as a single sequence then download the sequence of all the chromosomes and then concatenate them. Simple command for that if you use linux:

grep -v ">" chromosome*.fa > entire_genome.txt

Now it makes sense to separate the genome chromosome-wise because there is no physical connection between one chromosome and the other. Moreover there are many orders by which you can concatenate the chromosomes together which will give you 23! number of genome sequences.

Now you should note that all of this can give you serious errors if you are trying to do study genomic context of any gene. So better go chromosome wise.

If I have interpreted you wrong and what you meant is to have all the chromosome fasta sequences in a single file, yet not merge the sequences then it is a pretty straightforward command.

cat chromosome*.fa > genome.fa

Now, what you download is a reference sequence. You have to find variants etc for your data by controlling your alignment parameters.

And I really don't understand why you want to project it on the wall. There are easier and better ways of analyzing the genome.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .