Analisa Genetika Dasar Menggunakan R : Unduh Data Sequence & Membuat Pohon Filogenetik

M. Danie Al Malik
4 min readDec 26, 2020

--

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

Sequence sebelum di sejajarkan

Mensejajarkan atau alignment sequence data pada masing-masing individu dengan fungsi AlignSeqs.

seq_list_align <- AlignSeqs(seq_list_fasta_format); seq_list_align

Hasil sequence yang telah di sejajarkan

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.

--

--

M. Danie Al Malik
M. Danie Al Malik

Written by M. Danie Al Malik

0 Followers

Writing about the ocean as my hobby and research | My focus research on ecology and genetic conservation.

No responses yet