Clustal格式 (skbio.io.format.clustal
)¶
Clustal格式 (clustal
)存储多个序列对齐。这种格式最初是在Clustal包中引入的 [1].
格式支持¶
有嗅探员:是的
读者 |
writer |
对象类 |
---|---|---|
是的 |
是的 |
格式规范¶
clustal格式的文件是纯文本格式。它可以选择有一个头,它声明clustal版本号。接下来是多序列比对,以及关于比对中每个位置保存程度的可选信息 [2].
定线断面¶
对齐中的每个序列被分成子序列,每个子序列的长度最多为60个字符。每个序列的序列标识符位于每个子序列之前。每个子序列后面可以有选择地跟在完整序列中直到该点为止的非间隙字符的累积数量(不包括在下面的示例中)。包含路线中每个位置的守恒信息的线可以选择跟随所有子序列(不包括在下面的示例中)。
备注
scikit-bio在读取保护信息时忽略保护信息,不支持写入保护信息。
备注
将clustal格式的文件读入 skbio.alignment.TabularMSA
对象,序列标识符/标签存储为 TabularMSA
索引标签 (index
属性)。
在编写 skbio.alignment.TabularMSA
对象作为clustal格式的文件, TabularMSA
索引标签将转换为字符串,并作为序列标识符/标签写入。
格式参数¶
唯一支持的格式参数是 constructor
,指定要将每个对齐序列读入的内存序列对象的类型。这必须是 GrammaredSequence
(例如, DNA
, RNA
, Protein
)是必需的格式参数。例如,如果您知道正在读取的clustal文件包含DNA序列,那么您将通过 constructor=DNA
给读者打电话。
示例
假设我们有一个clustal格式的RNA序列文件:
CLUSTAL W (1.82) multiple sequence alignment
abc GCAUGCAUCUGCAUACGUACGUACGCAUGCAUCA
def ----------------------------------
xyz ----------------------------------
abc GUCGAUACAUACGUACGUCGUACGUACGU-CGAC
def ---------------CGCGAUGCAUGCAU-CGAU
xyz -----------CAUGCAUCGUACGUACGCAUGAC
我们可以使用以下代码将clustal文件读入 TabularMSA
:
>>> from skbio import TabularMSA, RNA
>>> clustal_f = ['CLUSTAL W (1.82) multiple sequence alignment\n',
... '\n',
... 'abc GCAUGCAUCUGCAUACGUACGUACGCAUGCA\n',
... 'def -------------------------------\n',
... 'xyz -------------------------------\n',
... '\n',
... 'abc GUCGAUACAUACGUACGUCGGUACGU-CGAC\n',
... 'def ---------------CGUGCAUGCAU-CGAU\n',
... 'xyz -----------CAUUCGUACGUACGCAUGAC\n']
>>> msa = TabularMSA.read(clustal_f, constructor=RNA)
>>> msa
TabularMSA[RNA]
--------------------------------------------------------------
Stats:
sequence count: 3
position count: 62
--------------------------------------------------------------
GCAUGCAUCUGCAUACGUACGUACGCAUGCAGUCGAUACAUACGUACGUCGGUACGU-CGAC
----------------------------------------------CGUGCAUGCAU-CGAU
------------------------------------------CAUUCGUACGUACGCAUGAC
>>> msa.index
Index(['abc', 'def', 'xyz'], dtype='object')
我们可以使用以下代码编写 TabularMSA
对于clustal格式的文件:
>>> from io import StringIO
>>> from skbio import DNA
>>> seqs = [DNA('ACCGTTGTA-GTAGCT', metadata={'id': 'seq1'}),
... DNA('A--GTCGAA-GTACCT', metadata={'id': 'sequence-2'}),
... DNA('AGAGTTGAAGGTATCT', metadata={'id': '3'})]
>>> msa = TabularMSA(seqs, minter='id')
>>> msa
TabularMSA[DNA]
----------------------
Stats:
sequence count: 3
position count: 16
----------------------
ACCGTTGTA-GTAGCT
A--GTCGAA-GTACCT
AGAGTTGAAGGTATCT
>>> msa.index
Index(['seq1', 'sequence-2', '3'], dtype='object')
>>> fh = StringIO()
>>> _ = msa.write(fh, format='clustal')
>>> print(fh.getvalue())
CLUSTAL
seq1 ACCGTTGTA-GTAGCT
sequence-2 A--GTCGAA-GTACCT
3 AGAGTTGAAGGTATCT
引用