第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python將字符串中的多個(gè)位置分別切換為多個(gè)字母

Python將字符串中的多個(gè)位置分別切換為多個(gè)字母

蕪湖不蕪 2023-12-09 16:01:53
我正在嘗試編寫(xiě)一個(gè)Python代碼來(lái)查找DNA序列中的限制性?xún)?nèi)切酶位點(diǎn)。限制性?xún)?nèi)切酶切割特定的 DNA 序列,但有些限制性酶不是那么嚴(yán)格,例如 XmnI 切割此序列:甘南NTTC其中 N 可以是任何核苷酸(A、C、G 或 T)。如果我的數(shù)學(xué)正確的話,那就是 4^4 = 256 個(gè)可以剪切的獨(dú)特序列。我想列出這 256 個(gè)短序列,然后對(duì)照(較長(zhǎng))輸入 DNA 序列檢查每個(gè)序列。然而,我很難生成 256 個(gè)序列。這是我到目前為止所擁有的:cutsequencequery = "GAANNNNTTC"Nseq = ["A", "C", "G", "T"]querylist = []if "N" in cutsequencequery:    Nlist = [cutsequencequery.replace("N", t) for t in Nseq]    for j in list(Nlist):        querylist.append(j)for i in querylist:    print(i)print(len(querylist))這是輸出:GAAAAAATTCGAACCCCTTCGAAGGGGTTCGAATTTTTTC4所以它將每個(gè) N 切換到 A、C、G 和 T,但我認(rèn)為我需要另一個(gè)循環(huán)(或 3?)來(lái)生成所有 256 種組合。有沒(méi)有一種我沒(méi)有看到的有效方法來(lái)做到這一點(diǎn)?
查看完整描述

1 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

也許你應(yīng)該看看python 的 itertools 庫(kù),其中包括product它使用可迭代的每個(gè)組合創(chuàng)建一個(gè)可迭代,因此:


from itertools import product


cutsequencequery = "GAANNNNTTC"

nseq = ["A", "C", "G", "T"]


size = cutsequencequery.count('N')


possibilities = product(*[nseq for i in range(size)])?

# = ('A', 'A', 'A', 'A'), ... , ('T', 'T', 'T', 'T')?

# len(list(possibilities)) = 256 = 4^4, as expected


s = set()

for n in possibilities:

? ? print(''.join(n)) # = 'AAAA', ..., 'TTTT'

? ? new_sequence = cutsequencequery.replace('N' * size, ''.join(n))

? ??

? ? s.add(new_sequence)

? ? print(new_sequence) # = 'GAAAAAATTC', ..., 'GAATTTTTTC'

print(len(s)) # 256 unique sequences


查看完整回答
反對(duì) 回復(fù) 2023-12-09
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)