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)
-
尖头文件的解析器。
- 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)
-
刀尖文件编写器。
- modes = 'b'
- write_header()
写入文件头。
- write_record(record)
将单个记录写入输出文件。
- write_records(records)
将记录写入输出文件,并返回记录数。
records -返回SeqRecord对象的列表或迭代器
- __abstractmethods__ = frozenset({})
- __annotations__ = {}
- __firstlineno__ = 122
- __parameters__ = ()
- __static_attributes__ = ()