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

在数据分析中,数据以脏形式传送给我们是很常见的,其中存在与转录或下载方式相关的错误。由于我们知道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循环


梦里花落0921
浏览 34回答 2
2回答

HUH函数

我希望我没有替你做功课。我看到已经使用 .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_textprint(clean("agct7ttczttctgactgcaacgggcaatatgtctctxtgtggattaaaaaaagagtgtcygatagcagcttctgaactggttacctgcc"))# returns agctnttcnttctgactgcaacgggcaatatgtctctntgtggattaaaaaaagagtgtcngatagcagcttctgaactggttacctgcc

HUX布斯

使用re.sub:Import redna = 'gtgagtaaattaaaattttnttgacttaggtcactaaptactttaaccaatataggbatagcgcacagacagataaaaattacagagtac'dna = re.sub(r'[^ACTG]','N',dna.upper())print(dna)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python