我基本上是試圖解決這個問題,以替換字符串中的幾個字符:http://rosalind.info/problems/revc/如何使用朱莉婭
我想替換A,C,G,T所有出現的他們的讚美T,G,C ,A ..換句話說,所有的A將被替換爲T,所有的C都帶有G's等。
我以前用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")
當我提供str =「AAACCCGGT」時,此功能完美無缺,但如果我嘗試打開文件並以這種方式獲取字符串,我會在'dict'中找到getindex中未找到的錯誤。 另外,你能否詳細介紹底部的功能如何解決我的問題?索引字典如何改變我的字符串?我現在正在讀Mastering Julia,但只有幾章,並且昨天剛剛拿起了Julia,所以雖然我明白了一點,但我仍然對一些機制很陌生,這是一個。 – System
Regaridng錯誤,這可能是你從文件中讀取換行符。這些不是由字典映射,所以出現錯誤。你可以嘗試'map(translate,readchomp(s))'。 –
'map(translate,str)'將基於str返回一個新的翻譯後的字符串,同樣'replace(str,match,replacement)'也會返回一個新的字符串,即:'x =「test」; y = replace(x,'e','E'); x,y'返回'(「test」,「tEst」)'。他們將**不**更新你原來的字符串! – SalchiPapa