Bio.SeqIO.NibIO模块

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

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

  • 0 -T

  • 1 -C

  • 2 -A

  • 3 -G

  • 4 -N(未知)

由于半字节中的第一位在核苷酸是软掩码的情况下被设置,因此我们还具有:

  • 8 -t

  • 9 -c

  • a -a

  • b -g

  • c -n(未知)

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

>>> 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.查看加州大学伯克利分校的描述

class Bio.SeqIO.NibIO.NibIterator(source)

基类:SequenceIterator

NIB文件的解析器。

__init__(source)

迭代NIB文件并生成SeqRecord。

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

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

此函数通过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({})
class Bio.SeqIO.NibIO.NibWriter(target)

基类:SequenceWriter

NIB文件写入器。

__init__(target)

初始化NIB编写器对象。

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

write_header()

写入文件头。

write_record(record)

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

write_file(records)

写入包含记录的完整文件,并返回记录数。