Package Bio :: Package SeqIO :: Module _index
[hide private]
[frames] | no frames]

Module _index

source code

Dictionary like indexing of sequence files (PRIVATE).

You are not expected to access this module, or any of its code, directly. This is all handled internally by the Bio.SeqIO.index(...) function which is the public interface for this functionality.

The basic idea is that we scan over a sequence file, looking for new record markers. We then try and extract the string that Bio.SeqIO.parse/read would use as the record id, ideally without actually parsing the full record. We then use a subclassed Python dictionary to record the file offset for the record start against the record id.

Note that this means full parsing is on demand, so any invalid or problem record may not trigger an exception until it is accessed. This is by design.

This means our dictionary like objects have in memory ALL the keys (all the record identifiers), which shouldn't be a problem even with second generation sequencing. If this is an issue later on, storing the keys and offsets in a temp lookup file might be one idea (e.g. using SQLite or an OBDA style index).

Classes [hide private]
Random access to a Standard Flowgram Format (SFF) file.
Indexed dictionary like access to a GenBank file.
Indexed dictionary like access to an EMBL file.
Random access to a SwissProt file.
Random access to a UniProt XML file.
Random access to a IntelliGenetics file.
Random access to a simple tabbed file.
Random access to a FASTQ file (any supported variant).
Variables [hide private]
  _FormatToRandomAccess = {'ace': <class 'Bio.SeqIO._index.Seque...
  __package__ = 'Bio.SeqIO'
Variables Details [hide private]


{'ace': <class 'Bio.SeqIO._index.SequentialSeqFileRandomAccess'>,
 'embl': <class 'Bio.SeqIO._index.EmblRandomAccess'>,
 'fasta': <class 'Bio.SeqIO._index.SequentialSeqFileRandomAccess'>,
 'fastq': <class 'Bio.SeqIO._index.FastqRandomAccess'>,
 'fastq-illumina': <class 'Bio.SeqIO._index.FastqRandomAccess'>,
 'fastq-sanger': <class 'Bio.SeqIO._index.FastqRandomAccess'>,
 'fastq-solexa': <class 'Bio.SeqIO._index.FastqRandomAccess'>,
 'gb': <class 'Bio.SeqIO._index.GenBankRandomAccess'>,