Analisa Genetika Dasar Menggunakan R : Unduh Data Sequence & Membuat Pohon Filogenetik
Pada kesempatan kali ini saya akan mencoba menjelaskan atau memberikan tutorial, bagaimana untuk mengunduh (download) data urutan atau sequence DNA (nukleotida) dari database seperti National Center for Biotechnology (NCBI) dan membuat pohon filogenetik sederhana dari data hasil unduhan tersebut. Analisis ini dikerjakan dengan menggunakan software R.
R package yang digunakan dalam analisis ini yaitu ape, seqinr, dplyr, ggtree, msa dan DECIPHER.
#Packages yang di butuhkan
library(ape)
library(seqinr)
library(dplyr)
library(ggtree)
library(msa)
library(DECIPHER)
Mengunduh Data Urutan atau Sequence Nukleotida dari NCBI
Saya menggunakan contoh referensi data dari hasil penelitian saya dan tim yang sudah di publikasi dalam jurnal ilmiah dan data tersebut sudah bisa di akses melalui NCBI. Disini saya hanya mengambil 5 data sequence dari accecion number yang terdaftar di NCBI. Lalu, saya membuat variabel data yang berisi accesion number dari sequence yang ingin di unduh dari NCBI.
#daftar acc. number data sequence yang ingin di unduh dari genbank NCBI
list <- c(“MT542206”, “MT542207”, “MT542209”, “MT542210”, “JN572792”)
Setelah variabel “list” terbentuk saya melakukan proses unduh data sequence dari NCBI menggunakan salah satu fungsi dari package “ape” yaitu read.GenBank untuk mengunduh semua sequence yang diperintahkan ke database NCBI.
#unduh sequence data
seq_list <- read.GenBank(list); seq_list
Saya menggunakan fungsi attributes untuk mengetahui deskripsi atau informasi data sequence dari hasil unduhan.
attributes(seq_list)
kita akan mengambil informasi penamaan data sequence hanya berdasarkan nama spesies dan acc.number.
seq_list_ID <- paste(attr(seq_list, “species”), names(seq_list)); seq_list_ID
menjadikan sequence files sebagai fasta format menggunakan fungsi write.dna.
write.dna(seq_list, file = “seq_list.fasta”, format = “fasta”)
membaca fasta file menggunakan seqinr package menggunakan fungsi read.fasta.
seq_list_fasta <- read.fasta(file = “seq_list.fasta”, seqtype = “DNA”, as.string = TRUE); seq_list_fasta
Menjadikan fasta file dari data sequence dengan attribute ID Species dan acc.number.
write.fasta(sequences = seq_list_fasta, names = seq_list_ID, file.out = “seq_list_fasta_format.fasta”)
Membaca data file fasta dengan menggunakan package seqinr
seq_list_fasta <- read.fasta(file = “seq_list_fasta_format.fasta”, seqtype = “DNA”, as.string = TRUE); seq_list_fasta
Memanggil urutan sequence data pada masing-masing individu dengan fungsi readDNAStringSet.
seq_list_fasta_format <- readDNAStringSet(“seq_list_fasta_format.fasta”); seq_list_fasta_format
Mensejajarkan atau alignment sequence data pada masing-masing individu dengan fungsi AlignSeqs.
seq_list_align <- AlignSeqs(seq_list_fasta_format); seq_list_align
Kita juga bisa melihat keseluruhan hasil sequence data dalam html, menggunakan fungsi BrowseSeqs.
BrowseSeqs(seq_list_align)
Menyimpan fasta file hasil aligment atau pensejajaran
writeXStringSet(seq_list_align, filepath = “seq_list_align.fasta”, format = “fasta”)
Membuat pohon filogenetik
Membuat pohon filogenetik menggunakan metode neighboor joining menggunakan model TN93 (Tamura and Nei, 1993), Kalian juga bisa mengubah model berdasarkan kodel berikut.
data_align <- read.alignment(file = “seq_list_align.fasta”, format = “fasta”)
data_align <- read.dna(file = “seq_list_align.fasta”, format = “fasta”)
class(data_align)data_align_distace <- dist.dna(data_align, model = “TN93”); data_align_distace
tree <- nj(data_align_distace); tree
Mengatur percabangan pohon dengan memasukkan data outgroup dengan fungsi root dan memasukkan sequence ke 5 sebagai outgroup dari data.
tree2 <- root(tree, outgroup =5)
menggunakan teknik perhitungan boostrap untuk mendapatkan nilai percabangan pohon terbaik dengan fungsi boot.phylo dan memasukkan replikasi perhitungan sebanyak 100 kali.
boots <- boot.phylo(tree, B=100, data_align, function(e) root(nj(dist.dna(e, model = “TN93”)), 1))
#Membuat pohon filogenetik sederhana
plot(tree2, edge.width = 2)
axisPhylo()
nodelabels(boots, cex = 1, frame = “none”, adj = c(1.3, 1.5))
memperindah tampilan hasil pohon dengan bantuan package ggtree dengan menambahkan snapshoot tampilan basa sequence dari masing-masing individu pada posisi 400–500 basa.
tree_edt <- ggtree(tree2, size = 1) +
geom_tiplab(hjust = -0.01, size=4, align = TRUE) +
geom_treescale(linesize = 1,width = .01, offset = .2)msaplot(tree_edt, “seq_list_align.fasta”,color = c(“green”, “blue”, “purple”, “red”), window=c(400, 500), width = 2, offset = .05)
Sekian penjelasan tutorial dari saya untuk memberikan gambaran bagaiman cara untuk mengunduh data sequence atau urutan DNA (pada artikel ini urutan nukleotida) dari database seperti NCBI dan menganalisanya sampai membuat pohon filogenetik sederhana.