Python 3.x 将重叠的子序列合并回原始序列

Python 3.x 将重叠的子序列合并回原始序列,python-3.x,Python 3.x,我使用以下函数生成字符串的子序列 import numpy as np class SlidingKmerFragmenter: """ Slide only a single string """ def __init__(self, k_low, k_high): self.k_low = k_low self.k_high = k_high self.rng = np.random.RandomState(12

我使用以下函数生成字符串的子序列

import numpy as np
class SlidingKmerFragmenter:
    """
    Slide only a single string
    """
    def __init__(self, k_low, k_high):
        self.k_low = k_low
        self.k_high = k_high
        self.rng = np.random.RandomState(1234)
    def apply(self, seq):
        return [seq[i: i + self.rng.randint(self.k_low, self.k_high + 1)] for i in range(len(seq) - self.k_high + 1)]
例如,我可以

generator = SlidingKmerFragmenter(1, 6)
generator.apply("DHDHDDHEBENRJ")
获取此字符串的重叠子序列,其中每个子序列的范围为1到6个字符

如何从该函数的输出返回到原始字符串?我想将子序列连接在一起,但有些部分是重叠的

谢谢! 杰克

编辑:只是澄清一下,这里的解决方案似乎不适用于这个特定的示例,因为我的示例字符串中重复了Ds和Hs


如果我有一个原始序列的列表,并且想将重叠的子序列列表与原始序列列表相匹配,那该怎么做呢?

我想你做不到。我用你的碎片器尝试了两个不同的字符串,但你不能保证将输入字符串的所有字符都返回到输出中。@PatrickHaugh如果我们可以访问原始序列列表,有可能吗?我的片段分割程序通常会切断序列的结尾,但将子序列的连接(不完整)版本与原始序列匹配可能会有所帮助?