Package Bio :: Package SeqIO :: Module QualityIO :: Class FastqSolexaWriter
[hide private]
[frames] | no frames]

Class FastqSolexaWriter

source code

                     object --+        
      Interfaces.SequenceWriter --+    
Interfaces.SequentialSequenceWriter --+

Write old style Solexa/Illumina FASTQ format files (with Solexa qualities) (OBSOLETE).

This outputs FASTQ files like those from the early Solexa/Illumina pipeline, using Solexa scores and an ASCII offset of 64. These are NOT compatible with the standard Sanger style PHRED FASTQ files.

If your records contain a "solexa_quality" entry under letter_annotations, this is used, otherwise any "phred_quality" entry will be used after conversion using the solexa_quality_from_phred function. If neither style of quality scores are present, an exception is raised.

Although you can use this class directly, you are strongly encouraged to use the as_fastq_solexa function, or top-level Bio.SeqIO.write() function instead. For example, this code reads in a FASTQ file and re-saves it as another FASTQ file:

>>> from Bio import SeqIO
>>> record_iterator = SeqIO.parse("Quality/solexa_example.fastq", "fastq-solexa")
>>> with open("Quality/temp.fastq", "w") as out_handle:
...     SeqIO.write(record_iterator, out_handle, "fastq-solexa")

You might want to do this if the original file included extra line breaks, which (while valid) may not be supported by all tools. The output file from Biopython will have each sequence on a single line, and each quality string on a single line (which is considered desirable for maximum compatibility).

This code is also called if you use the .format("fastq-solexa") method of a SeqRecord. For example,

>>> record ="Quality/sanger_faked.fastq", "fastq-sanger")
>>> print(record.format("fastq-solexa"))
@Test PHRED qualities from 40 to 0 inclusive

Note that Solexa FASTQ files have an upper limit of Solexa quality 62, which is encoded as ASCII 126, the tilde. If your quality scores must be truncated to fit, a warning is issued.

P.S. Don't forget to delete the temp file if you don't need it anymore:

>>> import os
>>> os.remove("Quality/temp.fastq")
Instance Methods [hide private]
write_record(self, record)
Write a single FASTQ record to the file.
source code

Inherited from Interfaces.SequentialSequenceWriter: __init__, write_file, write_footer, write_header, write_records

Inherited from Interfaces.SequenceWriter: clean

Inherited from Interfaces.SequenceWriter (private): _get_seq_string

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

write_record(self, record)

source code 
Write a single FASTQ record to the file.
Overrides: Interfaces.SequentialSequenceWriter.write_record