gpt4 book ai didi

string - 如何使用 Julia 替换字符串中的多个字符

转载 作者:行者123 更新时间:2023-12-04 15:09:22 25 4
gpt4 key购买 nike

我基本上是想解决这个问题:http://rosalind.info/problems/revc/

我想用他们的恭维 T、G、C、A 替换所有出现的 A、C、G、T .. 换句话说,所有 A 将替换为 T,所有 C 将替换为 G 等等。

我以前用过 replace()用 'U' 替换所有出现的 'T' 的函数,并希望替换函数将一个字符列表替换为另一个字符列表,但我无法使它工作,所以它可能没有那个功能。

我知道我可以使用 BioJulia 包轻松解决这个问题,并使用以下方法完成:

# creating complementary strand of DNA
# reverse the string
# find the complementary nucleotide
using Bio.Seq
s = dna"AAAACCCGGT"

t = reverse(complement(s))

println("$t")

但我不想依赖这个包。

这是我到目前为止的代码,如果有人能引导我朝着正确的方向前进,那就太好了。
# creating complementary strand of DNA
# reverse the string
# find the complementary nucleotide

s = open("nt.txt") # open file containing sequence

t = reverse(s) # reverse the sequence

final = replace(t, r'[ACGT]', '[TGCA]') # this is probably incorrect
# replace characters ACGT with TGCA

println("$final")

最佳答案

看来replace还没有做翻译,比如,tr在巴什。因此,这里有几种使用字典映射的方法(BioJulia 包似乎也使用了字典):

compliments = Dict('A' => 'T', 'C' => 'G', 'G' => 'C', 'T' => 'A')

那么如果 str = "AAAACCCGGT" ,您可以使用 join像这样:
julia> join([compliments[c] for c in str])
"TTTTGGGCCA"

另一种方法是使用函数和 map :
function translate(c)
compliments[c]
end

然后:
julia> map(translate, str)
"TTTTGGGCCA"

字符串是 Julia 中的可迭代对象;这些方法中的每一种依次读取一个字符, c , 并将其传递给字典以取回免费字符。一个新的字符串是由这些免费字符构成的。

Julia 的字符串也是不可变的:您不能就地交换字符,而是需要构建一个新字符串。

关于string - 如何使用 Julia 替换字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35782439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com