mehrere Zeichen zu ersetzen, ich bin im Wesentlichen um dieses Problem zu lösen versuchen: http://rosalind.info/problems/revc/Wie in einem String mit Julia
ich alle Vorkommen von A, C, G, T mit ihren Komplimenten T, G, C ersetzt werden soll , A .. mit anderen Worten werden alle A's durch T's ersetzt, alle C's durch G's und usw.
Ich hatte vorher die replace()
Funktion verwendet, um alle Vorkommen von 'T' durch 'U' zu ersetzen und hoffte, dass Die replace-Funktion würde eine Liste von Zeichen enthalten, die durch eine andere Liste von Zeichen ersetzt werden, aber ich konnte es nicht funktionieren lassen, so dass es diese Funktionalität möglicherweise nicht hat.
Ich weiß, dass ich dieses Problem lösen könnte leicht das BioJulia Paket verwenden und so mit dem folgenden getan:
# creating complementary strand of DNA
# reverse the string
# find the complementary nucleotide
using Bio.Seq
s = dna"AAAACCCGGT"
t = reverse(complement(s))
println("$t")
Aber ich möchte nicht auf das Paket verlassen haben.
Hier ist der Code, den ich bisher habe, wenn mich jemand in die richtige Richtung lenken könnte, wäre das großartig.
# 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")
Dies funktioniert perfekt, wenn ich str = "AAACCCGGT" liefern, aber wenn ich versuche, eine Datei zu öffnen und die Zeichenfolge auf diese Weise zu erhalten, bekomme ich einen 'nicht gefunden in getindex at dict' Fehler. Könnten Sie auch ein wenig darüber nachdenken, wie die Funktion unten Ihr Problem löst? Wie verändert das Indexieren des Wörterbuchs meine Zeichenfolge? Momentan lese ich Mastering Julia, aber ich bin nur ein paar Kapitel drin und habe gestern Julia abgeholt. Obwohl ich ein wenig verstanden habe, bin ich mit einigen der Mechaniken noch nicht vertraut, da es eine ist. – System
Um den Fehler zu beheben, ist es möglich, dass Sie die neuen Zeilen aus der Datei lesen. Diese werden vom Wörterbuch nicht zugeordnet, so dass der Fehler auftritt. Sie könnten 'map (übersetzen, readchomp (s))' versuchen. –
'map (translate, str)' gibt eine neue übersetzte Zeichenkette basierend auf str zurück, ähnlich wird 'replace (str, match, replacement)' auch eine neue Zeichenkette zurückgeben, zB: 'x =" test "; y = ersetzen (x, 'e', 'E'); x, y 'gibt' ("test", "tEst") zurück. Sie werden ** nicht ** Ihre ursprüngliche Zeichenfolge an Ort und Stelle aktualisieren! – SalchiPapa