26 Translasyon fonksiyonu anlatımı
Bu dersteki amacımız, bir DNA ipliğini amino asit dizisine çevirmek olacak. Bunun için codon.txt
isimli kodon tablosunu ve example.fna
içinde bulunan birinci DNA dizisini kullanacağız.
DNA dizisini okumak için, seqinr
paketini kullanacağız. Eğer bu paketi daha önce kurmadıysanız, konsola install.packages("seqinr")
yazmalınız.
Paket kurduysanız öncelikle çalışma alanımıza yükleyelim:
26.1 Ön bilgileri yükleyelim
Burada internet sitesinin github
sayfasında bulunan dosyalar internet üzerinden yüklenmektedir. Dosyaları bu şekilde de yükleyebilirsiniz. Ayrıntılı bilgi için: {Bölüm 13}
Şimdi DNA dizisini yükleyelim:
fasta <- read.fasta(file = "https://raw.githubusercontent.com/emrahkirdok/ybva/main/03-bilgisayarli-dusunme/data/example.fna", forceDNAtolower = FALSE)
Bir sonraki adımda, kodon dosyamızı yükleyelim:
kodon <- read.table(file = "https://raw.githubusercontent.com/emrahkirdok/ybva/main/03-bilgisayarli-dusunme/data/codon.txt", sep = "\t", header = TRUE)
26.2 Bir kodonu nasıl seçebiliriz?
Önce örnek bir DNA verisi oluşturalım:
ornek <- c("A", "T", "G", "A", "C" , "G", "A", "T", "T", "T", "G", "A")
Birinci kodon:
ornek[1:3]
[1] "A" "T" "G"
İkinci kodon:
ornek[4:6]
[1] "A" "C" "G"
Şimdi başlangıç pozisyonlarını oluşturalım:
Şimdi kodonları tek tek seçelim:
for (i in baslangic){
secilen_kodon <- ornek[i:(i+2)]
cat("Secilen kodon: ", secilen_kodon, "\n")
}
Secilen kodon: A T G
Secilen kodon: A C G
Secilen kodon: A T T
Secilen kodon: T G A
Ancak geri döndürdüğümüz secilen_kodon
değeri aslında bir vektör. Kodon tablosunda arama yapmak için, bunu vektöre çevirmeliyiz. Bir örnek:
paste(ornek[4:6], collapse="")
[1] "ACG"
Şimdi bunu da for
döngümüze ekleyelim:
for (i in baslangic){
secilen_kodon <- ornek[i:(i+2)]
secilen_kodon <- paste(secilen_kodon, collapse = "")
cat("Secilen kodon: ", secilen_kodon, "\n")
}
Secilen kodon: ATG
Secilen kodon: ACG
Secilen kodon: ATT
Secilen kodon: TGA
Artık, kodon
veri setinde bulunan kodon listesi içerisinde arama yapabiliriz. Şimdi seçtiğimiz kodona uygun amino asiti geri döndürelim:
for (i in baslangic){
secilen_kodon <- ornek[i:(i+2)]
secilen_kodon <- paste(secilen_kodon, collapse = "")
aa <- kodon[kodon$Codon == secilen_kodon, 2]
cat("Secilen kodon:", secilen_kodon, "kodona karsilik gelen amino asit:", aa, "\n")
}
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: ACG kodona karsilik gelen amino asit: Thr
Secilen kodon: ATT kodona karsilik gelen amino asit: Ile
Secilen kodon: TGA kodona karsilik gelen amino asit: Stp
Peki amino asit ipliğini nasıl oluşturabilriz?
aa_ipligi <- c()
for (i in baslangic){
secilen_kodon <- ornek[i:(i+2)]
secilen_kodon <- paste(secilen_kodon, collapse = "")
aa <- kodon[kodon$Codon == secilen_kodon, 2]
aa_ipligi <- c(aa_ipligi, aa)
cat("Secilen kodon:", secilen_kodon, "kodona karsilik gelen amino asit:", aa, "\n")
}
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: ACG kodona karsilik gelen amino asit: Thr
Secilen kodon: ATT kodona karsilik gelen amino asit: Ile
Secilen kodon: TGA kodona karsilik gelen amino asit: Stp
cat(aa_ipligi)
Met Thr Ile Stp
26.3 Bunu bir fonksiyona dönüştürelim
translasyon <- function(ornek, kodon){
aa_ipligi <- c()
baslangic <- seq(1,(length(ornek)-2), 3)
for (i in baslangic){
secilen_kodon <- ornek[i:(i+2)]
secilen_kodon <- paste(secilen_kodon, collapse = "")
aa <- kodon[kodon$Codon == secilen_kodon, 2]
aa_ipligi <- c(aa_ipligi, aa)
cat("Secilen kodon:", secilen_kodon, "kodona karsilik gelen amino asit:", aa, "\n")
}
return(aa_ipligi)
}
Şimdi bu fonksiyonu kullanalım:
translasyon(ornek = ornek, kodon = kodon)
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: ACG kodona karsilik gelen amino asit: Thr
Secilen kodon: ATT kodona karsilik gelen amino asit: Ile
Secilen kodon: TGA kodona karsilik gelen amino asit: Stp
[1] "Met" "Thr" "Ile" "Stp"
Derste kullandığımız DNA dizilerini kullanalım:
translasyon(ornek = fasta[[1]], kodon = kodon)
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: AGT kodona karsilik gelen amino asit: Ser
Secilen kodon: CTC kodona karsilik gelen amino asit: Leu
Secilen kodon: TCT kodona karsilik gelen amino asit: Ser
Secilen kodon: GAT kodona karsilik gelen amino asit: Asp
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: GTG kodona karsilik gelen amino asit: Val
Secilen kodon: AAA kodona karsilik gelen amino asit: Lys
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: CTA kodona karsilik gelen amino asit: Leu
Secilen kodon: TGG kodona karsilik gelen amino asit: Trp
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: AGC kodona karsilik gelen amino asit: Ser
Secilen kodon: CCC kodona karsilik gelen amino asit: Pro
Secilen kodon: AAA kodona karsilik gelen amino asit: Lys
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: GAT kodona karsilik gelen amino asit: Asp
Secilen kodon: GAT kodona karsilik gelen amino asit: Asp
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: GGC kodona karsilik gelen amino asit: Gly
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: GAA kodona karsilik gelen amino asit: Glu
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: CTC kodona karsilik gelen amino asit: Leu
Secilen kodon: GGC kodona karsilik gelen amino asit: Gly
Secilen kodon: AGA kodona karsilik gelen amino asit: Arg
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: ACC kodona karsilik gelen amino asit: Thr
Secilen kodon: GTC kodona karsilik gelen amino asit: Val
Secilen kodon: TAC kodona karsilik gelen amino asit: Tyr
Secilen kodon: CCT kodona karsilik gelen amino asit: Pro
Secilen kodon: CAG kodona karsilik gelen amino asit: Gln
Secilen kodon: ACC kodona karsilik gelen amino asit: Thr
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: ACC kodona karsilik gelen amino asit: Thr
Secilen kodon: TAC kodona karsilik gelen amino asit: Tyr
Secilen kodon: TTC kodona karsilik gelen amino asit: Phe
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: CAC kodona karsilik gelen amino asit: His
Secilen kodon: TGG kodona karsilik gelen amino asit: Trp
Secilen kodon: GAT kodona karsilik gelen amino asit: Asp
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: AGC kodona karsilik gelen amino asit: Ser
Secilen kodon: CCT kodona karsilik gelen amino asit: Pro
Secilen kodon: GGG kodona karsilik gelen amino asit: Gly
Secilen kodon: TCC kodona karsilik gelen amino asit: Ser
Secilen kodon: GGT kodona karsilik gelen amino asit: Gly
Secilen kodon: CCT kodona karsilik gelen amino asit: Pro
Secilen kodon: GTG kodona karsilik gelen amino asit: Val
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: CAT kodona karsilik gelen amino asit: His
Secilen kodon: GGC kodona karsilik gelen amino asit: Gly
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: GTT kodona karsilik gelen amino asit: Val
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: GGT kodona karsilik gelen amino asit: Gly
Secilen kodon: GCA kodona karsilik gelen amino asit: Ala
Secilen kodon: GTG kodona karsilik gelen amino asit: Val
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: GAT kodona karsilik gelen amino asit: Asp
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: GTT kodona karsilik gelen amino asit: Val
Secilen kodon: TCA kodona karsilik gelen amino asit: Ser
Secilen kodon: AAA kodona karsilik gelen amino asit: Lys
Secilen kodon: ATA kodona karsilik gelen amino asit: Ile
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: CTT kodona karsilik gelen amino asit: Leu
Secilen kodon: GTG kodona karsilik gelen amino asit: Val
Secilen kodon: GGA kodona karsilik gelen amino asit: Gly
Secilen kodon: GGT kodona karsilik gelen amino asit: Gly
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: TCC kodona karsilik gelen amino asit: Ser
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: AGC kodona karsilik gelen amino asit: Ser
Secilen kodon: GAA kodona karsilik gelen amino asit: Glu
Secilen kodon: CTT kodona karsilik gelen amino asit: Leu
Secilen kodon: CAT kodona karsilik gelen amino asit: His
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: TCC kodona karsilik gelen amino asit: Ser
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: CGT kodona karsilik gelen amino asit: Arg
Secilen kodon: GTT kodona karsilik gelen amino asit: Val
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: CCG kodona karsilik gelen amino asit: Pro
Secilen kodon: GCC kodona karsilik gelen amino asit: Ala
Secilen kodon: AAC kodona karsilik gelen amino asit: Asn
Secilen kodon: TTC kodona karsilik gelen amino asit: Phe
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: CTC kodona karsilik gelen amino asit: Leu
Secilen kodon: GCA kodona karsilik gelen amino asit: Ala
Secilen kodon: CAC kodona karsilik gelen amino asit: His
Secilen kodon: AAT kodona karsilik gelen amino asit: Asn
Secilen kodon: GTC kodona karsilik gelen amino asit: Val
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: GTG kodona karsilik gelen amino asit: Val
Secilen kodon: GTC kodona karsilik gelen amino asit: Val
Secilen kodon: ATC kodona karsilik gelen amino asit: Ile
Secilen kodon: GGC kodona karsilik gelen amino asit: Gly
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: CTC kodona karsilik gelen amino asit: Leu
Secilen kodon: TTC kodona karsilik gelen amino asit: Phe
Secilen kodon: CCT kodona karsilik gelen amino asit: Pro
Secilen kodon: GGA kodona karsilik gelen amino asit: Gly
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: TTC kodona karsilik gelen amino asit: Phe
Secilen kodon: CCC kodona karsilik gelen amino asit: Pro
Secilen kodon: CCA kodona karsilik gelen amino asit: Pro
Secilen kodon: GAG kodona karsilik gelen amino asit: Glu
Secilen kodon: GTT kodona karsilik gelen amino asit: Val
Secilen kodon: CAC kodona karsilik gelen amino asit: His
Secilen kodon: ATG kodona karsilik gelen amino asit: Met
Secilen kodon: TCA kodona karsilik gelen amino asit: Ser
Secilen kodon: GTT kodona karsilik gelen amino asit: Val
Secilen kodon: GAC kodona karsilik gelen amino asit: Asp
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: TTT kodona karsilik gelen amino asit: Phe
Secilen kodon: TTC kodona karsilik gelen amino asit: Phe
Secilen kodon: CAG kodona karsilik gelen amino asit: Gln
Secilen kodon: AAC kodona karsilik gelen amino asit: Asn
Secilen kodon: TTG kodona karsilik gelen amino asit: Leu
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: CTG kodona karsilik gelen amino asit: Leu
Secilen kodon: GCT kodona karsilik gelen amino asit: Ala
Secilen kodon: CTC kodona karsilik gelen amino asit: Leu
Secilen kodon: TCT kodona karsilik gelen amino asit: Ser
Secilen kodon: GAG kodona karsilik gelen amino asit: Glu
Secilen kodon: AAG kodona karsilik gelen amino asit: Lys
Secilen kodon: TAC kodona karsilik gelen amino asit: Tyr
Secilen kodon: CGC kodona karsilik gelen amino asit: Arg
Secilen kodon: TAA kodona karsilik gelen amino asit: Stp
[1] "Met" "Ser" "Leu" "Ser" "Asp" "Lys" "Asp" "Lys" "Ala" "Ala" "Val" "Lys"
[13] "Ala" "Leu" "Trp" "Ala" "Lys" "Ile" "Ser" "Pro" "Lys" "Ala" "Asp" "Asp"
[25] "Ile" "Gly" "Ala" "Glu" "Ala" "Leu" "Gly" "Arg" "Met" "Leu" "Thr" "Val"
[37] "Tyr" "Pro" "Gln" "Thr" "Lys" "Thr" "Tyr" "Phe" "Ala" "His" "Trp" "Asp"
[49] "Asp" "Leu" "Ser" "Pro" "Gly" "Ser" "Gly" "Pro" "Val" "Lys" "Lys" "His"
[61] "Gly" "Lys" "Val" "Ile" "Met" "Gly" "Ala" "Val" "Ala" "Asp" "Ala" "Val"
[73] "Ser" "Lys" "Ile" "Asp" "Asp" "Leu" "Val" "Gly" "Gly" "Leu" "Ala" "Ser"
[85] "Leu" "Ser" "Glu" "Leu" "His" "Ala" "Ser" "Lys" "Leu" "Arg" "Val" "Asp"
[97] "Pro" "Ala" "Asn" "Phe" "Lys" "Ile" "Leu" "Ala" "His" "Asn" "Val" "Ile"
[109] "Val" "Val" "Ile" "Gly" "Met" "Leu" "Phe" "Pro" "Gly" "Asp" "Phe" "Pro"
[121] "Pro" "Glu" "Val" "His" "Met" "Ser" "Val" "Asp" "Lys" "Phe" "Phe" "Gln"
[133] "Asn" "Leu" "Ala" "Leu" "Ala" "Leu" "Ser" "Glu" "Lys" "Tyr" "Arg" "Stp"
26.4 Fonksiyonu biraz daha güzelleştirelim
Genel olarak kodlama yaparken şu noktalara dikkat edelim:
- Değişken isimleri anlaşılır olmalı
- Kodlara açıklama ekleyelim
translasyon <- function(dna, kodon){
# oncelikle bos bir amino asit iplik vektoru olusturalim
aa_ipligi <- c()
# kodon baslangic pozisyonlarini belirleylim
baslangic <- seq(1,(length(dna)-2), 3)
# her baslangic pozisyonunu tek tek alalim
for (i in baslangic){
# o baslangic pozisyonuna gore kodon secelim
secilen_kodon <- dna[i:(i+2)]
# kodon vektorunu metine donusturelim
secilen_kodon <- paste(secilen_kodon, collapse = "")
# o kodona karsilik gelen amino asidi alalım
aa <- kodon[kodon$Codon == secilen_kodon, 2]
# bu amino asidi, amino asit iplik vektorune ekleyelim
aa_ipligi <- c(aa_ipligi, aa)
# her adimi yazalim
#cat("Secilen kodon:", secilen_kodon, "kodona karsilik gelen amino asit:", aa, "\n")
}
# amino asit ipligini geri dondurelim
return(aa_ipligi)
}
Fonksiyonu tekrar çalıştıralım:
fasta <- read.fasta(file = "https://raw.githubusercontent.com/emrahkirdok/ybva/main/03-bilgisayarli-dusunme/data/example.fna", forceDNAtolower = FALSE)
kodon <- read.table(file = "https://raw.githubusercontent.com/emrahkirdok/ybva/main/03-bilgisayarli-dusunme/data/codon.txt", sep = "\t", header = TRUE)
translasyon(dna = fasta[[2]], kodon = kodon)
[1] "Met" "Val" "Leu" "Ser" "Pro" "Ala" "Asp" "Lys" "Thr" "Asn" "Val" "Lys"
[13] "Ala" "Ala" "Trp" "Gly" "Lys" "Val" "Gly" "Ala" "His" "Ala" "Gly" "Glu"
[25] "Tyr" "Gly" "Ala" "Glu" "Ala" "Leu" "Glu" "Arg" "Met" "Phe" "Leu" "Ser"
[37] "Phe" "Pro" "Thr" "Thr" "Lys" "Thr" "Tyr" "Phe" "Pro" "His" "Phe" "Asp"
[49] "Leu" "Ser" "His" "Gly" "Ser" "Ala" "Gln" "Val" "Lys" "Gly" "His" "Gly"
[61] "Lys" "Lys" "Val" "Ala" "Asp" "Ala" "Leu" "Thr" "Asn" "Ala" "Val" "Ala"
[73] "His" "Val" "Asp" "Asp" "Met" "Pro" "Asn" "Ala" "Leu" "Ser" "Ala" "Leu"
[85] "Ser" "Asp" "Leu" "His" "Ala" "His" "Lys" "Leu" "Arg" "Val" "Asp" "Pro"
[97] "Val" "Asn" "Phe" "Lys" "Leu" "Leu" "Ser" "His" "Cys" "Leu" "Leu" "Val"
[109] "Thr" "Leu" "Ala" "Ala" "His" "Leu" "Pro" "Ala" "Glu" "Phe" "Thr" "Pro"
[121] "Ala" "Val" "His" "Ala" "Ser" "Leu" "Asp" "Lys" "Phe" "Leu" "Ala" "Ser"
[133] "Val" "Ser" "Thr" "Val" "Leu" "Thr" "Ser" "Lys" "Tyr" "Arg" "Stp"