Bio.SeqIO.NibIO模块

Bio.SeqIO支持UCSC nib文件格式。

Nib代表核苷序列的半字节(4位)表示。一个字节中的两个半字节各存储一个核苷酸,用数字表示如下:

  • 0 - 不

  • 1 - C

  • 2 - 一

  • 3 - G

  • 4 - N(未知)

由于如果核苷被软屏蔽,半字节中的第一位被设置,因此我们还可以:

  • 8 - 不

  • 9 - C

  • a - 一

  • b - G

  • c - n(未知)

一个nib文件仅包含一个序列记录。您需要通过Bio.SeqIO函数以格式名称“nib”使用此模块:

>>> from Bio import SeqIO
>>> record = SeqIO.read("Nib/test_even_bigendian.nib", "nib")
>>> print("%i %s..." % (len(record), record.seq[:20]))
50 nAGAAGagccgcNGgCActt...

有关文件格式的详细信息,请参阅https://genome.ucsc.edu/FAQ/FAQformat.html上的UCSC描述。

class Bio.SeqIO.NibIO.NibIterator(source)

基类:SequenceIterator

尖头文件的解析器。

modes = 'b'
__init__(source)

迭代nib文件并生成SeqRecord。

  • source -类似文件的对象或UCSC定义的nib文件格式的文件路径;文件必须以二进制模式打开。

请注意,nib文件始终只包含一个序列记录。生成的SeqRecord对象的序列应该与Jim Kent的nibFrag实用程序使用-masked选项运行生成的序列相匹配。

该函数通过Bio.SeqIO函数在内部使用:

>>> from Bio import SeqIO
>>> record = SeqIO.read("Nib/test_even_bigendian.nib", "nib")
>>> print("%s %i" % (record.seq, len(record)))
nAGAAGagccgcNGgCActtGAnTAtCGTCgcCacCaGncGncTtGNtGG 50

您也可以直接呼叫:

>>> with open("Nib/test_even_bigendian.nib", "rb") as handle:
...     for record in NibIterator(handle):
...         print("%s %i" % (record.seq, len(record)))
...
nAGAAGagccgcNGgCActtGAnTAtCGTCgcCacCaGncGncTtGNtGG 50
__next__()

迭代nib文件中的记录。

__abstractmethods__ = frozenset({})
__annotations__ = {}
__firstlineno__ = 53
__parameters__ = ()
__static_attributes__ = ('byteorder',)
class Bio.SeqIO.NibIO.NibWriter(target: IO | PathLike | str | bytes)

基类:SequenceWriter

刀尖文件编写器。

modes = 'b'
write_header()

写入文件头。

write_record(record)

将单个记录写入输出文件。

write_records(records)

将记录写入输出文件,并返回记录数。

records -返回SeqRecord对象的列表或迭代器

__abstractmethods__ = frozenset({})
__annotations__ = {}
__firstlineno__ = 122
__parameters__ = ()
__static_attributes__ = ()