我有一個序列串列(為簡單起見,如下所示)
seqList=["ACCTGCCSSSTTTCCT","ACCTGCCFFFTTTCCT"]
我想用回圈來用“N”替換除 ["A","C","G","T"] 之外的每個核苷酸實體
到目前為止我的代碼
seqList=["ACCTGCCSSSTTTCCT","ACCTGCCFFFTTTCCT"]
for x in range(len(seqList)):
for i in range(len(seqList[x])):
if seqList[x][i] not in ["A","C","G","T"]:
seqList[x][i].replace(seqList[x][i],"N")
print(seqList)
問題是,核苷酸沒有被替換,原始序列沒有任何變化,我想不出原因!!!
uj5u.com熱心網友回復:
python中的字串是不可變的。你可以像這樣作業
seqList= ["ACCTGCCSSSTTTCCT","ACCTGCCFFFTTTCCT"]
for x in range(len(seqList)):
stringl=list(seqList[x])
for i in range(len(seqList[x])):
if seqList[x][i] not in ["A","C","G","T"]:
stringl[i]="N"
seqList[x]="".join(stringl)
uj5u.com熱心網友回復:
不回圈所有字母的 aprouch 將替換所有不回圈的字母 ACGT
def replace_bad(seq):
unique = [
letter
for letter in set(seq)
if letter not in "ACGT"
]
for each in unique:
seq = seq.replace(each, "N")
return seq
if __name__ == '__main__':
for seq in seqList:
print(replace_bad(seq))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/402094.html
