I am looking for a large collection (>1000) of sequence files (eg. FASTA) from any real organism or a tool to create such a collection.

The sequence files would be used for teaching and for testing automation methods.

Students would be assigned one unique sequence file and asked to look at it (eg. using gORF) and to identify it (using BLASTn).

The sequence file would thus need to contain only the sequence data (no meta data about species or gene).

I would need an associated answer sheet.


There are a couple key words in this question - anonymous and teaching. Yes, NCBI is a source for sequence data, but it is not anonymous (it is annotated, which means a student could also find it and copy/paste that annotation without doing the actual analysis). Notice, I am not assuming that the request is for human data. Now, if anonymous human data are needed, most available sequence data are anonymous but there remains that annotation issue: If it is annotated already, what will they learn?

A good alternate source for some human genome data would be from Complete Genomics. They have released anonymized (de-identified) data for at least 69 subjects. The question asks about 1000 sequences, but how large? This is an important consideration. Other details are also lacking in the question.

Another source may be the 1000 Genomes data, also human. If you're interested in plants, there are sequence data out there from ~98 different Arabidopsis thaliana accessions/cultivars/strains.


Here is the approach I ended up using, in part thanks to all the contributions here.

The associated R script is below or can be downloaded from:


This creates 999 unique sequence files in plain text, with each sequence being identified to species level and few species being found across more than one sequence.

It also creates the matching answer key.

You can start at a random location to so that files change every year/group.

I used R to query the BOLDS database (Barcode of Life), to download a file and to split this huge file into separate sequences.

Here is the R script


write(complete, file="your location on disk")


sequences.id<-data.frame("file.name", "recordID", "genus_name", "species_name")
write.table(x=sequences.id, file="sequences_id.csv", append=F, sep = ",", row.names=F, col.names=F)

start<-sample(1:1000, size=1)


while(k < 1000){

  sequences<-read.delim(file=complete, skip=i, nrows=1, header=F)
  sequence.compare<-read.csv(file="sequences_id.csv", skip=k-1, nrows=1, header=F)

  if(! is.na(sequences$V24)){
      writeLines(text=as.character(sequences$V55), con=paste(k, ".txt", sep=""))
      sequences.id<-c(k, sequences[,c("V3","V22", "V24")])
      write.table(x=sequences.id, file="sequences_id.csv", append=T, sep = ",", row.names=F, col.names=F)
  print(paste(k,"/", i))

This is probably not the most elegant way but you could go to NCBI and search for nucleotide sequences from a given organism (eg., txid9606[Organism:exp] gives all sequences from Homo sapiens). Then you could use the Send to dropdown to download all the results as a compiled FASTA file.

  • 2
    $\begingroup$ NCBI also offers some APIs, which would make the process cleaner and allow better filtering. $\endgroup$ – nico Feb 27 '12 at 6:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.