我正在试图解决这个问题:http://rosalind.info/problems/revc/
我想用T、G、C、A替换所有出现的A、C、G、T,换句话说,所有的A将被替换成T,所有的C将被替换成G等等。
我以前使用过
我知道我可以使用BioJulia软件包轻松解决这个问题,并已经这样做了,如下所示:
我以前使用过
replace()
函数将所有出现的'T'替换为'U',希望它能接受一个字符列表并替换为另一个字符列表,但我无法使它工作,所以它可能没有这个功能。我知道我可以使用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")
map(translate, readchomp(s))
。 - Alex Rileymap(translate, str)
会根据str返回一个新的已翻译字符串,类似地,replace(str, match, replacement)
也会返回一个新字符串,例如:x =“test”;y = replace(x,'e','E');x,y
将返回(“test”,“tEst”)
。它们不会直接更新您原来的字符串! - HarmonicaMuseMutableStrings.jl
和Strings.jl
这两个库,它们提供了一种符合习惯的方法来完成这个任务!:D - HarmonicaMuse