NCBI SRA file format

→ Install SRA-tools (fastq_dump, prefetch,... )

Converting SRA files to fastq

update 2018: consider using the new version → fasterq-dump

fastq-dump can be used for local .sra files or for direct download from NCBI

# local use (path to .sra file)

fastq-dump --split-spot path/to/local/file/SRR649944.sra


# direct download from NCBI/SRA (only accession number, no path)

fastq-dump --split-3 SRR649944



A .sra file copy will be saved to a local cache/archive folder, used for repeated fastq-dump calls without re-download


Download only

A) fasterq-dump

B) prefetch

Alternatively, prefetch can be used for only downloading the .sra file for later use by fastq-dump

prefetch SRR649944 # stores .sra file in $HOME/ncbi/public/sra/

fastq-dump --split-3 SRR649944 # takes file from $HOME/ncbi/public/sra/ (without download again)



C) wget (not recommended)

Download error

In case of download error, a cache and/or lock file may need to be removed, before trying again

rm $HOME/ncbi/public/sra/SRR649944.sra.cache

rm $HOME/ncbi/public/sra/SRR649944.sra.cache.lock

rm $HOME/ncbi/public/sra/SRR649944.sra.tmp.23569.tmp # prefetch

fastq-dump options

Extracting fastq files from SRA files, for paired-end reads

fastq-dump --split-3 SAMPLE




SAMPLE.fastq (only if .sra contains single reads / single-end sequencing)

--split-3 splits paired reads into files *_1.fastq and *_2.fastq; single read (if any) into *.fastq

SAMPLE can be a SRA-id (download from NCBI or local ncbi/public/sra/ archive) or direct path to local .sra file

fastq-dump --split-3 SRR649944

fastq-dump --split-3 path/to/local/file/SRR649944.sra

Converting SRA files into a single fastq file

fastq-dump --split-spot SAMPLE




--split-spot split paired-end reads, but writes all to a single fastq file

To use in a pipe

fastq-dump -Z --split-spot SAMPLE | bowtie2 ...


-Z writes sequences to standard output

Filter read length of SRA samples

fastq-dump --minReadLen 80 --split-3 SAMPLE

fastq-dump --minReadLen 80 --split-spot -Z SAMPLE | bowtie2 ...


--minReadLen 80 extracts only reads >= 80bp from SRA file

read more

fastq-dump --help


fastq-dump [options] <path> [<path>...]

fastq-dump [options] <accession>


-A|--accession <accession> Replaces accession derived from <path> in

filename(s) and deflines (only for single

table dump)

--table <table-name> Table name within cSRA object, default is



Read Splitting Sequence data may be used in raw form or

split into individual reads

--split-spot Split spots into individual reads

Full Spot Filters Applied to the full spot independently

of --split-spot

-N|--minSpotId <rowid> Minimum spot id

-X|--maxSpotId <rowid> Maximum spot id

--spot-groups <[list]> Filter by SPOT_GROUP (member): name[,...]

-W|--clip Apply left and right clips

Common Filters Applied to spots when --split-spot is not

set, otherwise - to individual reads

-M|--minReadLen <len> Filter by sequence length >= <len>

-R|--read-filter <[filter]> Split into files by READ_FILTER value

optionally filter by value:


-E|--qual-filter Filter used in early 1000 Genomes data: no

sequences starting or ending with >= 10N

--qual-filter-1 Filter used in current 1000 Genomes data

Filters based on alignments Filters are active when alignment

data are present

--aligned Dump only aligned sequences

--unaligned Dump only unaligned sequences

--aligned-region <name[:from-to]> Filter by position on genome. Name can

either be accession.version (ex:

NC_000001.10) or file specific name (ex:

"chr1" or "1"). "from" and "to" are 1-based


--matepair-distance <from-to|unknown> Filter by distance beiween matepairs.

Use "unknown" to find matepairs split

between the references. Use from-to to limit

matepair distance on the same reference

Filters for individual reads Applied only with --split-spot set

--skip-technical Dump only biological reads


-O|--outdir <path> Output directory, default is working

directory '.' )

-Z|--stdout Output to stdout, all split data become

joined into single stream

--gzip Compress output using gzip

--bzip2 Compress output using bzip2

Multiple File Options Setting these options will produce more

than 1 file, each of which will be suffixed

according to splitting criteria.

--split-files Dump each read into separate file.Files

will receive suffix corresponding to read


--split-3 Legacy 3-file splitting for mate-pairs:

First biological reads satisfying dumping

conditions are placed in files *_1.fastq and

*_2.fastq If only one biological read is

present it is placed in *.fastq Biological

reads and above are ignored.

-G|--spot-group Split into files by SPOT_GROUP (member name)

-R|--read-filter <[filter]> Split into files by READ_FILTER value

optionally filter by value:


-T|--group-in-dirs Split into subdirectories instead of files

-K|--keep-empty-files Do not delete empty files



-C|--dumpcs <[cskey]> Formats sequence using color space (default

for SOLiD),"cskey" may be specified for


-B|--dumpbase Formats sequence using base space (default

for other than SOLiD).


-Q|--offset <integer> Offset to use for quality conversion,

default is 33

--fasta <[line width]> FASTA only, no qualities, optional line

wrap width (set to zero for no wrapping)


-F|--origfmt Defline contains only original sequence name

-I|--readids Append read id after spot id as

'' on defline

--helicos Helicos style defline

--defline-seq <fmt> Defline format specification for sequence.

--defline-qual <fmt> Defline format specification for quailty.

<fmt> is string of characters and/or

variables. The variables can be one of: $ac

- accession, $si spot id, $sn spot

name, $sg spot group (barcode), $sl spot

length in bases, $ri read number, $rn

read name, $rl read length in bases. '[]'

could be used for an optional output: if

all vars in [] yield empty values whole

group is not printed. Empty value is empty

string or for numeric variables. Ex:

@$sn[_$rn]/$ri '_$rn' is omitted if name

is empty


--disable-multithreading disable multithreading

-h|--help Output brief explanation of program usage

-V|--version Display the version of the program

-L|--log-level <level> Logging level as number or enum string One

of (fatal|sys|int|err|warn|info) or (0-5)

Current/default is warn

-v|--verbose Increase the verbosity level of the program

Use multiple times for more verbosity

--ncbi_error_report Control program execution environment

report generation (if implemented). One of

(never|error|always). Default is error

--legacy-report use legacy style 'Written spots' for tool

fastq-dump : 2.3.4