skbio.sequence.GrammaredSequence.concat¶
- classmethod GrammaredSequence.concat(sequences, how='strict')[源代码]¶
连接的iterable
Sequence
物体。状态:从0.4.1开始试验。
- 参数:
sequences (iterable (Sequence)) -- 相当于
Sequence
对象或适当的子类。how ({'strict', 'inner', 'outer'}, optional) -- 如何与 positional_metadata 顺序的。如果“严格”:则 positional_metadata 必须具有完全相同的列;“inner”:列的内部联接(只使用共享的一组列);“outer”:列的外部联接(使用所有列:缺少的值将用NaN填充)。
- 返回:
返回的序列将是调用此类方法的类的实例。
- 返回类型:
- 抛出:
ValueError -- 如果 how 不是“strict”、“inner”或“outer”之一。
ValueError -- 如果 how 是“严格”和 positional_metadata 每个序列的列不相同。
TypeError -- 如果序列不能转换为调用类。
备注
序列范围元数据 (
Sequence.metadata
)在连接期间不保留。只有当新类型是原始类型的祖先或子类型时,序列对象才能强制转换为其他类型。不允许在兄弟类型之间进行转换,例如。
DNA
>RNA
不允许,但是DNA
>Sequence
或Sequence
>DNA
会的。示例
将两个DNA序列连接成一个新的DNA对象:
>>> from skbio import DNA, Sequence >>> s1 = DNA("ACGT") >>> s2 = DNA("GGAA") >>> DNA.concat([s1, s2]) DNA -------------------------- Stats: length: 8 has gaps: False has degenerates: False has definites: True GC-content: 50.00% -------------------------- 0 ACGTGGAA
将DNA序列连接到序列对象中(类型强制):
>>> Sequence.concat([s1, s2]) Sequence ------------- Stats: length: 8 ------------- 0 ACGTGGAA
保存位置元数据:
>>> s1 = DNA('AcgT', lowercase='one') >>> s2 = DNA('GGaA', lowercase='one', ... positional_metadata={'two': [1, 2, 3, 4]}) >>> result = DNA.concat([s1, s2], how='outer') >>> result DNA --------------------------- Positional metadata: 'one': <dtype: bool> 'two': <dtype: float64> Stats: length: 8 has gaps: False has degenerates: False has definites: True GC-content: 50.00% --------------------------- 0 ACGTGGAA >>> result.positional_metadata one two 0 False NaN 1 True NaN 2 True NaN 3 False NaN 4 False 1.0 5 False 2.0 6 True 3.0 7 False 4.0