rotifer.db.ncbi.SequenceCursor#

class rotifer.db.ncbi.SequenceCursor(readers=['entrez'], writers=[], database='protein', progress=True, tries=3, sleep_between_tries=1, batch_size=None, threads=None, *args, **kwargs)[source]#

Bases: SequenceCursor, SequentialDelegatorCursor

Fetch annotated sequences from NCBI.

Sequences are downloaded and parsed in GenBank format, the most richly annotated format NCBI provides.

Parameters:
readerslist of str, default ['entrez']

Backend reader modules, tried in order.

writerslist of str, default []

Backend writer modules.

databasestr, default ‘protein’

A valid NCBI sequence database name, such as protein or nucleotide.

progressbool, default True

Whether to print a progress bar.

triesint, default 3

Number of attempts to download data.

sleep_between_triesint, default 1

Number of seconds to wait between download attempts.

batch_sizeint, optional

Number of accessions per batch.

threadsint, optional

Number of simultaneous threads.

See also

FastaCursor

faster download without annotations

rotifer.db.ncbi.entrez.SequenceCursor

the default backend

Examples

Fetch a protein sequence:

>>> from rotifer.db import ncbi
>>> sc = ncbi.SequenceCursor(database="protein")
>>> seqrec = sc.fetchall("YP_009724395.1")

Fetch several nucleotide entries:

>>> import sys
>>> from Bio import SeqIO
>>> query = ['CP084314.1', 'NC_019757.1', 'AAHROG010000026.1']
>>> sc = ncbi.SequenceCursor(database="nucleotide")
>>> for seqrec in sc.fetchone(query):
...     SeqIO.write(seqrec, sys.stdout, "genbank")