Bio.SeqIO.NibIO 模块

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

Nib 代表核苷酸序列的 nibble(4 位)表示。字节中的两个 nibble 分别存储一个核苷酸,以数字方式表示如下:

  • 0 - T

  • 1 - C

  • 2 - A

  • 3 - G

  • 4 - N(未知)

由于 nibble 中的第一个位在核苷酸软屏蔽时被设置,因此我们还有:

  • 8 - t

  • 9 - c

  • a - 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...

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

class Bio.SeqIO.NibIO.NibIterator(source)

基类:SequenceIterator

nib 文件解析器。

__init__(source)

遍历 nib 文件并生成 SeqRecord。

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

请注意,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
parse(handle)

开始解析文件,并返回一个 SeqRecord 生成器。

iterate(handle, byteorder)

遍历 nib 文件中的记录。

__abstractmethods__ = frozenset({})
__parameters__ = ()
class Bio.SeqIO.NibIO.NibWriter(target)

基类:SequenceWriter

Nib 文件写入器。

__init__(target)

初始化 Nib 写入器对象。

参数
  • target - 以二进制模式打开的输出流,或指向文件的路径。

write_header()

写入文件头。

write_record(record)

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

write_file(records)

使用记录写入完整文件,并返回记录数量。