为了账号安全,请及时绑定邮箱和手机立即绑定

字符串替换中的字符。清洁(DNA)

字符串替换中的字符。清洁(DNA)

梦里花落0921 2024-01-27 14:37:37
在数据分析中,数据以脏形式传送给我们是很常见的,其中存在与转录或下载方式相关的错误。由于我们知道DNA的任何序列都必须由四个碱基组成'a','g'因此DNA中出现't'的'c'任何其他字母一定是错误的。编写一个函数clean(dna),返回一个新的 DNA 字符串,其中除 A、C、G 或 T 之外的每个字符都被替换为 N。例如,clean('goat')应返回字符串'gnat'。您可以假设 dna 全部为小写,但不要假设任何有关错误字符的性质(例如,它们甚至可能被意外转录为数字)。clean('') → ''clean('agct7ttczttctgactgcaacgggcaatatgtctctxtgtggattaaaaaaagagtgtcygatagcagcttctgaactggttacctgcc') → 'agctnttcnttctgactgcaacgggcaatatgtctctntgtggattaaaaaaagagtgtcngatagcagcttctgaactggttacctgcc'clean('gtgagtaaattaaaattttnttgacttaggtcactaaptactttaaccaatataggbatagcgcacagacagataaaaattacagagtac') → 'gtgagtaaattaaaattttnttgacttaggtcactaantactttaaccaatataggnatagcgcacagacagataaaaattacagagtac'使用for循环
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

我希望我没有替你做功课。我看到已经使用 .sub 发布了答案,但您只要求使用循环


def clean(text):

    cleaned_text=""

    for i in range(0, len(text)):

        if text[i] in "agtc":

            cleaned_text=cleaned_text+text[i]

        else:

            cleaned_text=cleaned_text+"n"

    return cleaned_text


print(clean("agct7ttczttctgactgcaacgggcaatatgtctctxtgtggattaaaaaaagagtgtcygatagcagcttctgaactggttacctgcc"))

# returns agctnttcnttctgactgcaacgggcaatatgtctctntgtggattaaaaaaagagtgtcngatagcagcttctgaactggttacctgcc



查看完整回答
反对 回复 2024-01-27
?
HUX布斯

TA贡献1876条经验 获得超6个赞

使用re.sub:


Import re

dna = 'gtgagtaaattaaaattttnttgacttaggtcactaaptactttaaccaatataggbatagcgcacagacagataaaaattacagagtac'

dna = re.sub(r'[^ACTG]','N',dna.upper())

print(dna)


查看完整回答
反对 回复 2024-01-27
  • 2 回答
  • 0 关注
  • 30 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信