生成随机DNA序列并找出CpG岛



我正试图生成一个随机的DNA序列与给定数量的aG,,TC的年代;使用Python中的random函数。

我如何洗牌列表中的这些单独的字符串?

我想遍历这个列表中的10个序列,但我被困在这里:

import random
finalList = ['AGTCTTTGTGT', 'ACGCGTAAACG', 'AGGGTCTC',...]
for items in finalList:
random.sample(items, k=len(items)) #how can I fix this?

可以使用random模块中的sample()或shuffle函数对A、G、T、C进行随机洗牌,同时保持每个字母的数量不变(例如AGT>手枪)。注意,您需要将结果字符连接起来以创建一个新字符串。

import random
final_list = ['AGTCTTTGTGT', 'ACGCGTAAACG', 'AGGGTCTC']
for s in final_list :
result = "".join(random.sample(s, k=len(s)))
print(s, ">", result)

输出:

AGTCTTTGTGT > TGTCGGATTTT
ACGCGTAAACG > AGAGCCATCGA
AGGGTCTC > GCTGCGTA

使用列表推导式创建一个新的序列列表:

result = ["".join(random.sample(s, k=len(s))) for s in final_list]
print("orig_list", seq_list)
print("new_list ", result)

输出:

orig_list ['AGTCTTTGTGT', 'ACGCGTAAACG', 'AGGGTCTC']
new_list  ['ATGTCGTTTTG', 'CCAGAACAGGT', 'GGATCTCG']

最新更新