我需要将2个序列(或仅2个文件)与
进行比较seq1 .tt..gcct ..
seq2 tat.cgccac。
2 45 9
2、4、5、9是存在差异的位置,我需要计算它们之间的距离。我有脚本可以比较2个序列和计数距离,但是
问题1)我想在序列的开头和结尾忽略点(。),但要考虑到中间的点。您如何在Python中做到这一点?该任务如何称呼?
问题2)如果我有一个差异在另一个差异,我需要将其作为一个区块,因此2-4距离将被忽略2、2-5,4-9签名,5-9计数和2--9将是7(将计数4和5为两个),我该怎么做?
所以我想出了一种方式,我想知道是否有更简单的东西。我将首先重新输入问题
如果您有清单 a = [1, 2, 3, 7, 10, 11, 12, 18, 20, 21]
问题1)如何删除仅连续值的领先和尾随组(由内部数字1和以21的尾声来定义),并以列表b = [7, 10, 11, 12, 18]
结束。
问题 2)如何计算这些数字之间的距离和以列表c = [3,4]结束的距离(它将连续的数字视为一个块,并执行10-7 = 3,然后将连续数量视为块,然后将连续数量视为块,然后将连续的数字视为块。我的Solytion:
consec = []
for key, group in groupby(enumerate(a), lambda i: i[0] - i[1]):
consec.append(list(map(itemgetter(1), group)))
consecHead = consec[0]
consecTail = consec[-1]
if 1 in consecHead:
consecHeadcheck = consecHead
else:
consecHeadcheck = []
if 21 in consecTail:
consecTailcheck = consecTail
else:
consecTailcheck = []
b_prior = [x for x in polPos if x not in consecTailcheck]
b = [x for x in b_prior if x not in consecHeadcheck]
print(b)
c = []
for i in range(len(b)):
if int(int(b[i+1]) - int(b[i])) !=1:
c.append(int(b[i+1]) - int(b[i])
print(c)
问题1)strip_seq1 = seq1 [1:len(seq)-1],而Seq2则在开始和结束时删除(。),同时将所有内容保留在之间。/p>
问题2)我不确定您的要求,对不起。