Post on 18-Jan-2020
transcript
Outlineday4–May30th
• GraphinginR:– basicgraphing– ggplot2package
05/2017 117
GraphinginR:basicgraphing
05/2017 118
Producinggraphs
• R-basepackagegraphicsoffersfuncAonsforproducingmanyplots,forexample:– scaFerplots–plot()– histograma–hist()– boxplots–boxplot()– barplots–barplot()– piecharts–pie()
05/2017 119
basicgraphing
ScaFerplots
Asca&erplotisatypeofplotormathema2caldiagramusingCartesiancoordinatestodisplayvaluesfortypicallytwovariablesforasetofdata.[Wikipedia]
05/2017 120
basicgraphing
BasicscaFerplot
• x<-1:10• y<-x^2• plot(x,y)
05/2017 121
basicgraphing
ScaFerplot
• plot(x,y,col="red",pch=2,type="b",main="apre?ysca?erplot")
05/2017 122
basicgraphing
ScaFerplot
• plot(x,y,col=1:10,pch=1:10,cex=1:10,type="b",main="apre?ysca?erplot")
05/2017 123
basicgraphing
Barplots
Abarchartorbargraphisachartthatpresentsgroupeddatawithrectangularbarswithlengthspropor2onaltothevaluesthattheyrepresent.[Wikipedia]
05/2017 124
basicgraphing
Barplot• x<-rep(c("geek","nerd","dork"),c(10,5,3))
• barplot(table(x))
05/2017 125
basicgraphing
Piechart
Apiechartisacircularsta2s2calgraphicwhichisdividedintoslicestoillustratenumericalpropor2on.[Wikipedia]
05/2017 126
basicgraphing
Piechart• x<-rep(c("geek","nerd","dork"),c(10,5,3))
• pie(table(x))
05/2017 127
basicgraphing
Boxplots
Indescrip2vesta2s2cs,aboxplotisaconvenientwayofgraphicallydepic2nggroupsofnumericaldatathroughtheirquar2les.
[Wikipedia]
05/2017 128
basicgraphing
Boxplots• x<-matrix(rnorm(1000),ncol=2)
05/2017 129
basicgraphing
Histograms
Ahistogramisaplotthatletsyoudiscover,andshow,theunderlyingfrequencydistribu2onofasetofcon2nuousdata.
[Wikipedia]
05/2017 130
basicgraphing
Histogram• x<-rnorm(200)• hist(x)
05/2017 131
basicgraphing
ExporAnggraphs
• Graphscanbesavedintomanyformats,including:pdf,jpeg,bmp,Dff.
• Openthefiletosaveyourplotin: pdf("my_graph.pdf")
• Produceagraph: plot(1:10)
• Andcloseit: dev.off()
05/2017 132
basicgraphing
ExporAnggraphs• FromRStudio:
05/2017 133
basicgraphing
Exercise9:Basicplots
05/2017 134
GraphinginR:IntroducDontoggplot2package
05/2017 135
ggplot2
• GraphingpackageinspiredbytheGrammarofGraphicsseminalworkofLelandWilkinson.
• Atoolthatenablestoconciselydescribethecomponentsofagraphic.
05/2017 136
graphinginR:ggplot2
ggplot2
• Flexible• Customizable• PreFy• Welldocumented
05/2017 137
graphinginR:ggplot2
ggplot2
• Baselayertoplottwovariables:
ggplot(dataframe,aes(x,y))
• Addlayerspecifyingwhatkindofplotyouwant.ExampleofascaFerplot:
ggplot(dataframe,aes(x,y))+geom_point()
05/2017 138
graphinginR:ggplot2
ScaFerplots
• df1<-data.frame(sample1=rnorm(200),sample2=rnorm(200))
• ggplot(df1,aes(x=sample1,y=sample2))+geom_point()
05/2017 139
graphinginR:ggplot2
ScaFerplots
• Storethegraphinanobject:p<-ggplot(df1,aes(x=sample1,y=sample2))+geom_point()
• addlayerstop:– AtlewithggDtle("myAtle")– verAcallinewithgeom_vline(xintercept=2)– etc.
• p+ggAtle(…)
05/2017 140
graphinginR:ggplot2
ScaFerplots
p<-ggplot(df1,aes(x=sample1,y=sample2))+geom_point()• addAtlewithggDtle
p2<-p+ggDtle("Atleoftheplot")
• drawaverAcalwithgeom_vlinep3<-p2+geom_vline(xintercept=0)
05/2017 141
graphinginR:ggplot2
ScaFerplots
• Coloraccordingtoanothercolumn:
df2<-data.frame(df1,grouping=rep(c("yes","no"),c(80,120)))p<-ggplot(df2,aes(sample1,sample2,color=grouping))+geom_point()
05/2017 142
graphinginR:ggplot2
ScaFerplots
• p<-ggplot(df2,aes(sample1,sample2,color=grouping))+geom_point()
05/2017 143
graphinginR:ggplot2
Boxplots
• ggplot(df2,aes(x=1,y=sample1))+geom_boxplot()
05/2017 144
graphinginR:ggplot2
Boxplotsggplot(df2,aes(x=grouping,y=sample1))+geom_boxplot()
05/2017 145
graphinginR:ggplot2
Boxplots
Plofngbothsample1andsample2?Needtoconvertthedataframeintoalongformat!
05/2017 146
graphinginR:ggplot2
Widevslongformats
05/2017 147
graphinginR:ggplot2
genename sample1 sample2 grouping
gene1 6 3 UP
gene2 2.7 5.1 DOWN
gene3 3.2 3.3 NONE
gene4 4.7 1.1 UP genename grouping variable value
gene1 UP sample1 6
gene2 DOWN sample1 2.7
gene3 NONE sample1 3.2
gene4 UP sample1 4.7
gene1 UP sample2 3
gene2 DOWN sample2 5.1
gene3 NONE sample2 3.3
gene4 UP sample2 1.1
library(reshape2)?melt
wide
long
Boxplots
Plofngbothsample1andsample2?Converttolongformatdf_long<-melt(df2)
05/2017 148
graphinginR:ggplot2
Boxplots
ggplot(df_long,aes(x=variable,y=value))+geom_boxplot()
05/2017 149
graphinginR:ggplot2
Boxplots
ggplot(df_long,aes(x=variable,y=value,color=grouping))+geom_boxplot()
05/2017 150
graphinginR:ggplot2
Barplots
• p<-ggplot(df2,aes(x=grouping))+geom_bar()
05/2017 151
graphinginR:ggplot2
Barplots
• p<-ggplot(df2,aes(x=grouping))+geom_bar()
• Changexaxislabelwithscale_x_discrete:p2<-p+scale_x_discrete(name=”Howmanyyesandno")
• Swappingxandyaxiswithcoord_flip():p3<-p2+coord_flip()
05/2017 152
graphinginR:ggplot2
Barplots
05/2017 153
graphinginR:ggplot2
Histograms
• ggplot(df_long,aes(x=value))+geom_histogram()
05/2017 154
graphinginR:ggplot2
Histograms
• ggplot(df_long,aes(x=value,fill=variable))+geom_histogram()
05/2017 155
graphinginR:ggplot2
default:stacked!
Histograms
• ggplot(df_long,aes(x=value,fill=variable))+geom_histogram(posiAon='idenAty')
05/2017 156
graphinginR:ggplot2
Histograms
• ggplot(df_long,aes(x=value,fill=variable))+geom_histogram(posiAon='dodge')
05/2017 157
graphinginR:ggplot2
Exercise10:IntroducDontoggplot2
05/2017 158
Wrapup:whatdidwelearninthose12hours?
• RStudio• Datastructures– Vector– Matrix– Dataframe– Lists
05/2017 159
• Input/Output• Packages• Plofng– basicplofng– ggplot2
What’snext?
• Statsnextweek!
• Loops• FuncAons• RMarkDown...Anythingyouwanttolearn?à Contactsarah.bonnin@crg.euand/ordamjana.kastelic@crg.eu
05/2017 160
RStudioCheatsheets
hFps://www.rstudio.com/resources/cheatsheets/hFps://www.rstudio.com/wp-content/uploads/2016/11/ggplot2-cheatsheet-2.1.pdf
05/2017 161
Onlinecourses
EDX/Courseracourses:hFps://www.coursera.org/learn/r-programminghFps://www.coursera.org/learn/advanced-rhFps://www.coursera.org/specializaAons/staAsAcshFps://www.edx.org/course/introducAon-r-data-science-microsos-dat204x-4hFps://www.edx.org/course/staAsAcs-r-harvardx-ph525-1x-0
05/2017 162
Forums
Rmailinglists:hFps://www.r-project.org/mail.htmlBioconductorforum:hFps://support.bioconductor.org/
05/2017 163
SarahBonnin–sarah.bonnin@crg.euCRGBioinformaAcsunitEstefaniaMancini–estefania.mancini@crg.euLabJuanValcárcel
05/2017 164
Thanks!
Moreusefulbasiccommands
05/2017 165
SomecommonarithmeAcfuncAons
naturallogarithm log(x)exponenAalfuncAon
e^x exp(x)
sine sin(x)
cosine cos(x)
tangent tan(x)
absolutevalue abs(x)
squareroot sqrt(x)
05/2017 166
Morecommands
Objectsstoredintheglobalenvironment
• LisAng:ls()orobjects()• Removingoneobjectfromenvironment:rm(x)• Removingseveralobjects:rm(x,y)
• Removingallobjectfromenvironment:rm(list=ls())
05/2017 167
Morecommands
Savingobjectsorsession
• Saveobjectsxandyinto"myobjects.RData"file– save(x,y,file="myobjects.RData")
• Loadobjectsxandyintocurrentdirectory:– load("myobjects.RData")
• Savethecurrentworkspace(allobjects):– save.image(file=".RData")
05/2017 168
Morecommands
Commandhistory
• Last25commands:– history()
• Allpreviouscommands– history(max.show=Inf)
• Savecommandhistory:– savehistory()
• Loadcommandhistory:– loadhistory()
05/2017 169
Morecommands
InformaAonaboutthecurrentsession
sessionInfo()
Rversion
Pla\ormandOSversion
Packagesa?ached
05/2017 170
Morecommands
WriDngfuncDonsinR
05/2017 171
User-wriFenfuncAons
• FuncAonsarepiecesofcodewriFentocarryoutspecifiedtasksandbeabletorepeatthemeasily.
• RallowsyoutocreateyourownfuncAons.
Func=ons
05/2017 172
FuncAons’structure
myfuncDon<-funcDon(arg1,arg2,...){ commands return(something)}
Func=ons
FuncDon’sname CreaDngthefuncDon
myfuncDon’slistofarguments
whatmyfuncDondoes
Value/objectmyfuncDonreturns
05/2017 173
ObjectsinfuncAonsmyfuncDon<-funcDon(arg1){a<-arg1return(a+1)
}
Func=ons
05/2017 174
>a<-12>myfuncAon(10)[1]11>a[1]12
>myfuncAon(10)[1]11>aError:object'a'notfound