33
R ile Biyoenformatik Metehan Ünal Metehan Ünal 1 Sunum genel olarak «Bioinformatics with R Cookbook (Paurush Praveen Sinhakitabını temel almaktadır.

R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

R ile Biyoenformatik

Metehan Ünal

Metehan Ünal 1

Sunum genel olarak «Bioinformatics with R Cookbook (Paurush Praveen Sinha)»

kitabını temel almaktadır.

Page 2: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Giriş

• Moleküler biyoloji alanındaki son gelişmelerle birlikte dizilim verileri

sayısında üssel bir artışa sebep olmuştur.

• Biyoenformatik, biyolojik işleyiş ve bu verilere dayanan canlı bir

sistemin organizasyonu hakkında bilgi edinmeyi amaçlamaktadır.

• Üretilen muazzam büyüklükteki veri sağlam bir istatistiksel idare

gerektirir. Bu da ancak sağlam bir hesaplama istatistik aracı ve

ortamı ile mümkün olacaktır.

Metehan Ünal 2

Page 3: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Giriş

• R dili bu tarz bir ortamı sağlar.

• R, geniş bir «community»ye sahip ücretsiz bir araçtır.

• Çeşitli analiz işlemlerini destekleyen devasa paket kütüphaneleri

aracılığı ile veri analizi yapılmasını sağlar.

• Bu bölümde ilk olarak «R nasıl yüklenir?» ve «ileride yaralı

olabilecek R fonksiyonları nasıl kullanılır?» üzerine olacaktır.

Metehan Ünal 3

Page 4: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• R'deki kütüphaneler belirli amaçlara hizmet etmek için yazılmış fonksiyonları olan paketlerdir.

• Bu fonksiyonları arasında belirli dosya biçimlerinin okunması veya belirli veritabanlarından veri alınması sayılabilir.

• Bu kütüphaneleri kullanabilmek için onların hem sistemde hem de R oturumunda yüklü olması gerekmektedir.

• Bu kütüphaneler belirli bir repository’den veya bir yerel dosyadan yüklenebilir.

Metehan Ünal 4

Page 5: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• R paket repository’lerinden en önemli ikisi Comprehensive R

Archive Network (CRAN) ve Bioconductor’dır.

• CRAN, mirror sitelerinde R'nin kodunun ve dokümantasyonunun aynı, güncel

versiyonlarını korur ve barındırır.

• Bioconductor ise yüksek verimlilikli veri analizi yapmayı sağlayan bir diğer

repository’dir.

Metehan Ünal 5

Page 6: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• http://cran.r-project.org adresinden «install R for the first time»

seçeneğine, ardından da 1Download R 3.6.* for Windows»

tıklayarak indirip kurabilirsiniz.

Metehan Ünal 6

Page 7: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• Paketleri yüklemek için,

• Araç kutusundaki Paketler menüsünden Paket Yükle seçeneğine tıklanır.

• Bu oturum sırasında bir paketi ilk kez kuruyorsanız, R sizden bir ayna/mirror

seçmenizi isteyecektir. Coğrafi olarak en yakın aynayı seçiniz.

• Kurmak istediğiniz paketin adına ve ardından Tamam düğmesini tıklayın. R,

seçilen paketleri indirir ve yükler.

Metehan Ünal 7

Page 8: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• Varsayılan olarak, R, paketleri CRAN'dan alır. İsterseniz paketler

menüsünden Depoları Seç seçeneği ile değiştirebilirsiniz.

• İstenen paketin farklı bir depoda mevcut olması durumunda,

varsayılan depoyu değiştirmeniz gerekir.

• Bir diğer paket yükleme yöntemi olarak aşağıdaki kodu

kullanabilirsiniz.

> install.packages("package_name")

Metehan Ünal 8

Page 9: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Yükleme

• Yüklü olan paketleri yada kütüphaneleri görüntülemek için

aşağıdaki komut kullanılabilir:

> library()

• Bir R oturumundan çıkmak için, R istemcisine q() yazın; bu

durumda istemci kaydedip kaydetmemek istediğiniz soracaktır.

Metehan Ünal 9

Page 10: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

• Bir R oturumu başladığında birkaç kütüphane varsayılan olarak yüklenir. R'ye bir kütüphane yüklemek için aşağıdaki komutu çalıştırın:

> load(package_name)

• Bir paketin yüklenmesi, bu paketin tüm işlevlerini R oturumuna alır. Oturumdaki varsayılan paketler aşağıdaki getOption komutunu kullanarak görüntülenebilir:

> getOption("defaultPackages")

• Şu anda bir oturumda yüklü kütüphaneler aşağıdaki komutla görülebilir:

> print(.packages())

• Bunun için alternatif, sürüm detaylarını da sağlayan sessionInfo () 'dir.

• Yüklü tüm paketler, library() aşağıdaki şekilde çalıştırılarak görüntülenebilir:

> library()

Metehan Ünal 10

Page 11: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

• Tüm bunların yanı sıra, R kapsamlı bir yardım sistemine sahiptir. R'dan çeşitli şekillerde yardım alabilirsiniz.

• Aşağıdakiler, R’de yardım almak için kullanılabilecek seçeneklerin bir listesidir:

> help.start()

> help(sum) # Sum fonksiyonu için help dosyalarına ulaş.

> ?sum # Sum fonksiyonu için help dosyalarını ara.

> example(sum) # fonksiyonu bir örnekle göster

> help.search("sum") # Help dosyalarını aramak için argüman karakterini kullanır.

Metehan Ünal 11

Page 12: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

• Önceki fonksiyonların tümü benzersiz bir şekilde yardım sağlar.

• help.start komutu, R belgelerinin hypertext sürümünü başlatmak

için kullanılan genel komuttur.

• Paketle ilgili tüm yardım dosyaları aşağıdaki komutla kontrol

edilebilir:

> help(package="package_name")

Metehan Ünal 12

Page 13: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Herhangi bir veriyi analiz etmeye başlamadan önce, onu R çalışma

alanımıza yüklemeliyiz.

• Bu, dışarından bir R nesnesi (.rda veya .Rdata olabilir) veya bir paket için

içeriden bir R nesnesi veya bir TXT, CSV veya Excel dosyası olabilir.

• Bu tarif için R Base paketlerinde bulunan iris veri setini kullanacağız.

• Bu veriseti, ilişkili üç iris çiçeği türünün morfolojik varyasyonunun nicelikli

özelliklerini taşımaktadır.

Metehan Ünal 13

Page 14: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• R’da okuma ve yazma işlemleri için aşağıdaki adımları izleyin:

1. Aşağıdaki komut ile dahili bir R verisini yükleyin:

> data(iris)

2. İris verileri hakkında daha fazla bilgi edinmek için, aşağıdaki fonksiyonu kullanın:

> ?iris

3. Dışarından bir R verisi yükleyin:

> load(file="mydata.RData")

Metehan Ünal 14

Page 15: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

4. Bir veri nesnesi (D) kaydetmek için:

> save(D, file="myData.RData")

5. Tablo verilerini read.csv veya read.table içeren bir .csv dosyası biçiminde

okumak için:

> mydata <- read.table("file.dat", header = TRUE, sep="\t", row. names

= 1)

> mydata <- read.csv("mydata.csv")

Metehan Ünal 15

Page 16: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Ayrıca bir Excel dosyasını R’da okumak da mümkündür.

• Bunu xlsx ve gdata gibi çeşitli paketlerle yapabilirsiniz.

• xlsx paketi Java ayarları gerektirir, gdata ise nispeten daha basittir.

• Ancak xlsx paketi doğal olarak daha fazla işlevsellik sunar.

• Bu örnek için, xlsx paketini kullanacağız. Bir Excel dosyasını aşağıdaki gibi okumak için read.xlsx fonksiyonunu kullanın:

> install.packages("xlsx", dependencies=TRUE)

> library(xlsx)

> results_data <- read.xlsx("Results.xlsx",1)

Metehan Ünal 16

Page 17: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Bu verileri yada tablo nesnelerini bir CSV dosyasına yazmak için aşağıdaki

komut kullanılır:

> write.table(results_data, file = "results_2.xls", append = FALSE, quote

=TRUE, sep = " ")

> write.csv(results_data, file="results_3.csv", sep=",")

Metehan Ünal 17

Page 18: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• read.csv veya write.csv komutları, eğer dizin açıkça belirtilmedi ise,

geçerli çalışma dizinindeki dosya adını alır.

• Geçerli çalışma dizinini bulmak için getwd () komutunu kullanın.

• İstediğiniz dizine değiştirmek için setwd fonksiyonunu aşağıdaki

gibi kullanın:

> setwd("D:/R_work/mywork/")

Metehan Ünal 18

Page 19: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Yüklenen veri kümesi hakkında daha fazla bilgi edinmek için, veri kümesi türünü (nesne sınıfı) almak üzere veri kümesinin class() fonksiyonunu kullanın.

> class(iris)

• İris verisi 150 satır ve 5 sütundan oluşan bir data framedir. dim komutu boyutları görmemizi sağlar.

> dim(iris)

• Data frame sınıfı bir matris gibidir, ancak içinde karakter ve sayısal değerler gibi farklı türdeki nesneleri barındırabilir.

Metehan Ünal 19

Page 20: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Head ve tail komutlarını kullanarak ilk ve son birkaç satıra

ulaşılabilir.

> head(iris), head (iris, 10)

> tail(iris)

Metehan Ünal 20

Page 21: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Veri Okuma ve Yazma

• Aşağıda görülen WriteXLS paketi, Excel dosyasına nesne yazabilmemeize olanak sağlar. Burada x veri nesnesidir:

> install.packages(«WriteXLS»)

> library(WriteXLS)

> WriteXLS(x, ExcelFileName = "R.xls")

• Paket ayrıca, bir Excel dosyasının farklı sayfalarına data frameler listesini yazmamızı sağlar. WriteXLS fonksiyonu, görevleri yerine getirmek için arka planda Perl'i kullanır.

Metehan Ünal 21

Page 22: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Önceki bölümlerde okuduğumuz veriler, R'de data frame olarak var

olurlar. Data frameler, R'deki tablo verisinin birincil yapılarıdır.

• Data framelerin sütunlarında sakladığımız veriler, sayısal veya

karakter gibi çeşitli türlerde olabilir.

• Bu kısımda data framelerin bölümlerini almak, yeni yığınlar

eklemek veya belirli koşulları sağlayan verileri filtrelemek için basit

işlemlerden bahsedeceğiz.

Metehan Ünal 22

Page 23: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Bu örnek için aşağıdaki öğeler gereklidir:

• R oturumunda değiştirilmek veya filtrelenmek üzere yüklenmiş bir data frame.

(Bizim örneğimizde Iris veri seti var.)

• 1. maddeye eklenecek bir başka veri seti veya 1. maddeden çıkarılacak bir

dizi filtre

Metehan Ünal 23

Page 24: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Data frameden bir alt kümeyi filtrelemek ve oluşturmak için

aşağıdaki adımları izleyin:

1. Daha önce anlatılan iris verisini yükleyin.

2. Türlerin adlarını ve bunlara karşılık gelen sepal boyutları (uzunluk

ve genişlik) almak için, verilerin yapısına aşağıdaki gibi göz atın:

> str(iris)

Metehan Ünal 24

Page 25: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

3. İlgili verileri myiris nesnesine almak için, aşağıdaki gibi tanımlanmış

sütunlarla data frame oluşturan data.frame işlevini kullanın:

> myiris=data.frame(Sepal.Length=iris$Sepal.Length, Sepal.Width=iris$Sepal.Width,

Species=iris$Species)

4. Alternatif olarak, ilgili sütunları alın veya alakasızları çıkartın(Ancak bu tarz

altkümelemeden kaçınılmalıdır):

> myiris2 <- iris[,c(1,2,5)]

> myiris3<-iris[,c(1,2,3,4)]

Metehan Ünal 25

Page 26: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

5. Önceki iki yöntem yerine, verileri aşağıdaki şekilde almak için

çıkarma/removing yaklaşımını da kullanabilirsiniz:

> myiris4 <- iris[,-c(3,4)]

6. Veri eklemek adına, cbind ile yeni bir sütun veya rbind ile yeni bir satır

eklenebilir. (rnorm fonksiyonu normal dağılımdan rastgele bir örnek oluşturur.)

> Stalk.Length <-c (rnorm(30,1,0.1),rnorm(30,1.3,0.1), rnorm(30,1.5,0.1),

rnorm(30,1.8,0.1), rnorm(30,2,0.1))

> myiris <- cbind(iris, Stalk.Length)

Metehan Ünal 26

Page 27: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

7. Önceki işlemi alternatif olarak, aşağıdaki gibi bir adımda yapabilirsiniz:

> myiris$Stalk.Length = c(rnorm(30,1,0.1),rnorm(30,1.3,0.1), rnorm (30,1.5,0.1),rnorm(30,1.8,0.1), rnorm(30,2,0.1))

8. Yeni data frame’i kontrol et:

> dim(myiris)

> colnames(myiris)

Metehan Ünal 27

Page 28: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

9. Gösterildiği gibi rbind kullanın:

>newdat <- data.frame(Sepal.Length=10.1, Sepal.Width=0.5, Petal.Length=2.5, Petal.Width=0.9,

Species="myspecies")

> myiris <- rbind(iris, newdat)

> dim(myiris)

> myiris[151,]

Metehan Ünal 28

Page 29: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

10. Data frameden belirli koşullara uyan bir parçayı aşağıdaki yollardan biriyle alın:

> mynew.iris <- subset(myiris, Sepal.Length == 10.1)

VEYA

> mynew.iris <- myiris[myiris$Sepal.Length == 10.1, ]

> mynew.iris

> mynew.iris <- subset(iris, Species == "setosa")

Metehan Ünal 29

Page 30: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Alınan verilerin aşağıdaki ilk satırını kontrol edin:

> mynew.iris[1,]

• Herhangi bir karşılaştırma operatörü (& (AND), | (VEYA) ve !(NOT))

kullanabilir ve hatta birden fazla şekilde de kullanılabilir.

Metehan Ünal 30

Page 31: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Bu fonksiyonlarda sütun adının ardından verinin arkasına yerleştirilen $ işareti, o sütundaki verileri belirtir.

• Data frameleri için R indeksleme sistemi, tıpkı diğer dillerdeki gibi çok basittir ve [satırlar, sütunlar] olarak temsil edilir.

• Aşağıdaki örnekte uygulandığı şekilde c operatörünü kullanarak satırlar ve sütunlar için birkaç dizin gösterebilirsiniz.

> mylength <- c(4,5,6,7,7.2)

• Satır / sütun indekslerinde eksi işareti, verilerin bu kısımlarını kaldırır.

• Daha önce kullanılan rbind fonksiyonu, verileri satırlar boyunca birleştirir cbind de aynı şeyi sütunlar boyunca yapar.

Metehan Ünal 31

Page 32: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

Verileri Filtreleme ve Bölümleme

• Verilerin bir bölümünü seçmenin diğer bir yolu da, data frame ile

%in% operatörünü aşağıdaki gibi kullanmaktır:

> mynew.iris <- myiris[myiris[,1] %in% mylength,]

• Bu, tanımlanan koşulu karşılayan verilerden tüm satırları seçer.

• Buradaki koşul, "myiris" in 1. sütunundaki değerin "mylength"

vektöründeki herhangi bir değerle aynı olduğu anlamına gelir.

Alınmış satırlar, daha sonra mynew.iris adlı nesneye atanır.

Metehan Ünal 32

Page 33: R ile Biyoenformatikcomp.eng.ankara.edu.tr/files/2019/10/Week1.pdf · 2019-10-03 · fonksiyonları olan paketlerdir. •Bu fonksiyonları arasında belirli dosya biçimlerinin okunması

FIN

Metehan Ünal 33