本文整理汇总了Python中Bio.SeqIO.QualityIO.solexa_quality_from_phred方法的典型用法代码示例。如果您正苦于以下问题:Python QualityIO.solexa_quality_from_phred方法的具体用法?Python QualityIO.solexa_quality_from_phred怎么用?Python QualityIO.solexa_quality_from_phred使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bio.SeqIO.QualityIO
的用法示例。
在下文中一共展示了QualityIO.solexa_quality_from_phred方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_sanger_to_solexa
# 需要导入模块: from Bio.SeqIO import QualityIO [as 别名]
# 或者: from Bio.SeqIO.QualityIO import solexa_quality_from_phred [as 别名]
def test_sanger_to_solexa(self):
"""Mapping check for FASTQ Sanger (0 to 93) to Solexa (-5 to 62)"""
# The point of this test is the writing code doesn't actually use the
# solexa_quality_from_phred function directly. For speed it uses a
# cached dictionary of the mappings.
seq = "N"*94
qual = "".join(chr(33+q) for q in range(0, 94))
expected_sol = [min(62, int(round(QualityIO.solexa_quality_from_phred(q))))
for q in range(0, 94)]
in_handle = StringIO("@Test\n%s\n+\n%s" % (seq, qual))
out_handle = StringIO()
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always", BiopythonWarning)
SeqIO.write(SeqIO.parse(in_handle, "fastq-sanger"),
out_handle, "fastq-solexa")
self.assertTrue(len(w) <= 1, w)
out_handle.seek(0)
record = SeqIO.read(out_handle, "fastq-solexa")
self.assertEqual(str(record.seq), seq)
self.assertEqual(record.letter_annotations["solexa_quality"],
expected_sol)
示例2: test_sanger_to_solexa
# 需要导入模块: from Bio.SeqIO import QualityIO [as 别名]
# 或者: from Bio.SeqIO.QualityIO import solexa_quality_from_phred [as 别名]
def test_sanger_to_solexa(self):
"""Mapping check for FASTQ Sanger (0 to 93) to Solexa (-5 to 62)"""
#The point of this test is the writing code doesn't actually use the
#solexa_quality_from_phred function directly. For speed it uses a
#cached dictionary of the mappings.
seq = "N"*94
qual = "".join(chr(33+q) for q in range(0,94))
expected_sol = [min(62,int(round(QualityIO.solexa_quality_from_phred(q))))
for q in range(0,94)]
in_handle = StringIO("@Test\n%s\n+\n%s" % (seq,qual))
out_handle = StringIO("")
#Want to ignore the data loss warning
#(on Python 2.6 we could check for it!)
warnings.simplefilter('ignore', BiopythonWarning)
SeqIO.write(SeqIO.parse(in_handle, "fastq-sanger"),
out_handle, "fastq-solexa")
warnings.filters.pop()
out_handle.seek(0)
record = SeqIO.read(out_handle, "fastq-solexa")
self.assertEqual(str(record.seq), seq)
self.assertEqual(record.letter_annotations["solexa_quality"],
expected_sol)
示例3: test_solexa_quality_from_phred
# 需要导入模块: from Bio.SeqIO import QualityIO [as 别名]
# 或者: from Bio.SeqIO.QualityIO import solexa_quality_from_phred [as 别名]
def test_solexa_quality_from_phred(self):
"""Mapping check for function solexa_quality_from_phred"""
self.assertEqual(-5, round(QualityIO.solexa_quality_from_phred(0)))
self.assertEqual(-5, round(QualityIO.solexa_quality_from_phred(1)))
self.assertEqual(-2, round(QualityIO.solexa_quality_from_phred(2)))
self.assertEqual(0, round(QualityIO.solexa_quality_from_phred(3)))
self.assertEqual(2, round(QualityIO.solexa_quality_from_phred(4)))
self.assertEqual(3, round(QualityIO.solexa_quality_from_phred(5)))
self.assertEqual(5, round(QualityIO.solexa_quality_from_phred(6)))
self.assertEqual(6, round(QualityIO.solexa_quality_from_phred(7)))
self.assertEqual(7, round(QualityIO.solexa_quality_from_phred(8)))
self.assertEqual(8, round(QualityIO.solexa_quality_from_phred(9)))
for i in range(10,100):
self.assertEqual(i, round(QualityIO.solexa_quality_from_phred(i)))
示例4: compare_record
# 需要导入模块: from Bio.SeqIO import QualityIO [as 别名]
# 或者: from Bio.SeqIO.QualityIO import solexa_quality_from_phred [as 别名]
def compare_record(old, new, truncate=None):
"""Quality aware SeqRecord comparison.
This will check the mapping between Solexa and PHRED scores.
It knows to ignore UnknownSeq objects for string matching (i.e. QUAL files).
"""
if old.id != new.id:
raise ValueError("'%s' vs '%s' " % (old.id, new.id))
if old.description != new.description \
and (old.id+" "+old.description).strip() != new.description:
raise ValueError("'%s' vs '%s' " % (old.description, new.description))
if len(old.seq) != len(new.seq):
raise ValueError("%i vs %i" % (len(old.seq), len(new.seq)))
if isinstance(old.seq, UnknownSeq) or isinstance(new.seq, UnknownSeq):
pass
elif str(old.seq) != str(new.seq):
if len(old.seq) < 200:
raise ValueError("'%s' vs '%s'" % (old.seq, new.seq))
else:
raise ValueError("'%s...' vs '%s...'" % (old.seq[:100], new.seq[:100]))
if "phred_quality" in old.letter_annotations \
and "phred_quality" in new.letter_annotations \
and old.letter_annotations["phred_quality"] != new.letter_annotations["phred_quality"]:
if truncate and [min(q,truncate) for q in old.letter_annotations["phred_quality"]] == \
[min(q,truncate) for q in new.letter_annotations["phred_quality"]]:
pass
else:
raise ValuerError("Mismatch in phred_quality")
if "solexa_quality" in old.letter_annotations \
and "solexa_quality" in new.letter_annotations \
and old.letter_annotations["solexa_quality"] != new.letter_annotations["solexa_quality"]:
if truncate and [min(q,truncate) for q in old.letter_annotations["solexa_quality"]] == \
[min(q,truncate) for q in new.letter_annotations["solexa_quality"]]:
pass
else:
raise ValueError("Mismatch in phred_quality")
if "phred_quality" in old.letter_annotations \
and "solexa_quality" in new.letter_annotations:
#Mapping from Solexa to PHRED is lossy, but so is PHRED to Solexa.
#Assume "old" is the original, and "new" has been converted.
converted = [round(QualityIO.solexa_quality_from_phred(q))
for q in old.letter_annotations["phred_quality"]]
if truncate:
converted = [min(q,truncate) for q in converted]
if converted != new.letter_annotations["solexa_quality"]:
print
print(old.letter_annotations["phred_quality"])
print(converted)
print(new.letter_annotations["solexa_quality"])
raise ValueError("Mismatch in phred_quality vs solexa_quality")
if "solexa_quality" in old.letter_annotations \
and "phred_quality" in new.letter_annotations:
#Mapping from Solexa to PHRED is lossy, but so is PHRED to Solexa.
#Assume "old" is the original, and "new" has been converted.
converted = [round(QualityIO.phred_quality_from_solexa(q))
for q in old.letter_annotations["solexa_quality"]]
if truncate:
converted = [min(q,truncate) for q in converted]
if converted != new.letter_annotations["phred_quality"]:
print(old.letter_annotations["solexa_quality"])
print(converted)
print(new.letter_annotations["phred_quality"])
raise ValueError("Mismatch in solexa_quality vs phred_quality")
return True