skbio.alignment.TabularMSA¶
- class skbio.alignment.TabularMSA(sequences, metadata=None, positional_metadata=None, minter=None, index=None)[源代码]¶
以表格(行/列)形式存储多序列对齐方式。
- 参数:
sequences (iterable of GrammaredSequence, TabularMSA) -- MSA中的对齐序列。序列的类型和长度必须相同。例如, sequences 可能是
DNA
,RNA
或Protein
序列。如果 sequences 是一个TabularMSA
它的 metadata , positional_metadata 和 index 除非被参数重写,否则将使用 metadata , positional_metadata 和 minter /分别为索引。metadata (dict, optional) -- 适用于整个MSA的任意元数据。一份浅显的
dict
将被制作。positional_metadata (pd.DataFrame consumable, optional) -- 适用于MSA中每个位置的任意元数据。必须能够直接传递给
pd.DataFrame
建造师。每个元数据列的长度必须与MSA中的位置数相同。将生成位置元数据的浅拷贝。minter (callable or metadata key, optional) -- 如果提供,则为中的每个序列定义索引标签 sequences . 可以是接受单个参数(每个序列)的可调用函数,也可以是每个序列的键
metadata
属性。请注意 minter 不能与 index .index (pd.Index consumable, optional) -- 包含标签的索引 sequences . 长度必须与 sequences . 必须能够直接传递给
pd.Index
建造师。请注意 index 不能与 minter 以及 index 必须是散列的。
- 抛出:
ValueError -- 如果 minter 和 index 都提供了。
ValueError -- 如果 index 长度不同于 sequences .
TypeError -- 如果 sequences 包含的对象不是
GrammaredSequence
.TypeError -- 如果 sequences 不包含完全相同类型的
GrammaredSequence
物体。ValueError -- 如果 sequences 不包含
GrammaredSequence
长度相同的对象。
参见
skbio.sequence.DNA
,skbio.sequence.RNA
,skbio.sequence.Protein
,pandas.DataFrame
,pandas.Index
,reassign_index
备注
如果既不 minter 也不 index 将使用默认索引标签:
pd.RangeIndex(start=0, stop=len(sequences), step=1)
.示例
创建一个
TabularMSA
有三个DNA序列和四个位置的物体:>>> from skbio import DNA, TabularMSA >>> seqs = [ ... DNA('ACGT'), ... DNA('AG-T'), ... DNA('-C-T') ... ] >>> msa = TabularMSA(seqs) >>> msa TabularMSA[DNA] --------------------- Stats: sequence count: 3 position count: 4 --------------------- ACGT AG-T -C-T
自从 minter 或 index 未提供,MSA具有默认索引标签:
>>> msa.index RangeIndex(start=0, stop=3, step=1)
使用元数据、位置元数据和非默认索引标签创建MSA:
>>> msa = TabularMSA(seqs, index=['seq1', 'seq2', 'seq3'], ... metadata={'id': 'msa-id'}, ... positional_metadata={'prob': [3, 4, 2, 2]}) >>> msa TabularMSA[DNA] -------------------------- Metadata: 'id': 'msa-id' Positional metadata: 'prob': <dtype: int64> Stats: sequence count: 3 position count: 4 -------------------------- ACGT AG-T -C-T >>> msa.index Index(['seq1', 'seq2', 'seq3'], dtype='object')
属性
default_write_format
dtype
存储序列的数据类型。
iloc
在任意一个轴上按索引位置切片MSA。
index
沿序列轴包含标签的索引。
loc
在第一个轴上按索引标签切片,在第二个轴上按位置切片。
metadata
dict
包含应用于整个对象的元数据。positional_metadata
pd.DataFrame
包含沿轴的元数据。shape
序列(行)和位置(列)的数量。
内嵌函数
__bool__
\()指示MSA是否为空的布尔值。
__contains__
\(标签)确定索引标签是否在此MSA中。
__copy__
\()这个MSA的一份报告。
__deepcopy__
\(备忘录)返回此MSA的深度副本。
__eq__
(其他)确定这个MSA是否等于另一个MSA。
__ge__
(value, /)返回self>=值。
__getitem__
\(可编入索引的)在任一轴上切片MSA。
__getstate__
\()泡菜的帮手。
__gt__
(value, /)返回self>值。
__iter__
\()在MSA中迭代序列。
__le__
(value, /)返回self<=value。
__len__
\()MSA中的序列数。
__lt__
(value, /)返回self<value。
__ne__
(其他)确定此MSA是否不等于另一个MSA。
__reversed__
\()以相反的顺序在MSA中的序列上迭代。
__str__
\()此MSA的字符串摘要。
方法
append
(sequence[, minter, index, reset_index])在不重新计算对齐的情况下将序列追加到MSA。
consensus
\()计算此MSA的多数一致性序列。
conservation
([metric, degenerate_mode, gap_mode])应用度量计算所有路线位置的守恒
extend
(sequences[, minter, index, reset_index])在不重新计算对齐的情况下用序列扩展此MSA。
from_dict
\(词典)创建一个
TabularMSA
从Adict
.gap_frequencies
([axis, relative])计算轴上间隙字符的频率。
has_metadata
\()确定对象是否具有元数据。
确定对象是否具有位置元数据。
iter_positions
([reverse, ignore_metadata])迭代MSA中的位置(列)。
join
(other[, how])按顺序(水平)将此MSA与另一个MSA连接。
read
(file[, format])创建新的
TabularMSA
实例。reassign_index
([mapping, minter])将索引标签重新分配给此MSA中的序列。
sort
([level, ascending])按索引标签就地排序序列。
to_dict
\()创建一个
dict
由此TabularMSA
.write
(file[, format])写一个实例
TabularMSA
一个文件。