我有一个DNA序列,像CCG ACG GCA CTG GGC CAG TTG
我想在不改变每个子集的顺序的情况下,对这个序列进行所有可能的组合(比如说CCG应该是CCG)。 例如 修改后的序列可以是
ACG CCG GCA CTG GGC CAG TTG # Here the first two sub-sets are interchanged.
GCA ACG CCG CTG GGC CAG TTG # Here the first and third sub-sets are interchanged.
有没有简单的方法可以使用shell脚本或python代码来提供所有可能的组合
在每种可能的组合中,它都将涵盖这七个子集
使用支持长度(数组)的awk(现在应该是大多数awk):
上面包含一个GNU ism
PROCINFO[]
,但它在其他AWK中也可以正常工作,该部分将被忽略,输出将不会被排序,但如果您愿意,您可以始终将其管道传输到sort
有关如何获得组合,请参见https://stackoverflow.com/a/56916316/1745001
虽然比python版本慢得多,但一个纯
bash
脚本打印其参数的排列:它只是使用一种简单的递归方法来计算列表的所有排列
您可以使用itertools中的前提条件,例如:
我首先做了一个split(),它创建了一个由空格分隔的原始dna字符串数组,如下所示:
然后使用itertools.permutation()返回该数组索引的所有组合
相关问题 更多 >
编程相关推荐