[BioC] PCA-3D Plot

James W. MacDonald jmacdon at uw.edu
Mon Jul 1 19:57:27 CEST 2013


Hmmm. I generally use prcomp() for this sort of thing, so you could do

pc <- prcomp(t(Expresso))
scatterplot3D(pc$x[,1:3])

or you could use the rgl package if you want to be able to rotate the plot.

Best,

Jim



On 7/1/2013 1:48 PM, Veera Venkata Satyanarayana wrote:
>  I am thankful to You Mr. James W. MacDonald. But It didn't worked 
> with function "princomp" when I use as
>
> > PCA_3d<-princomp(t(Expresso), cor=TRUE)
> Error in princomp.default(t(Normalized_Expresso), cor = TRUE) :
>   'princomp' can only be used with more units than variables
>
>
>
>
> On Mon, Jul 1, 2013 at 7:35 PM, James W. MacDonald <jmacdon at uw.edu 
> <mailto:jmacdon at uw.edu>> wrote:
>
>
>
>     On 7/1/2013 8:28 AM, Chevala V V S Narayana [guest] wrote:
>
>         Dear All,
>
>         I request help in generating "Sample-based 3D-PCA plot"
>         (Principal component analysis). I used function "princomp"
>         from package:stats to create a PCA object on the data-set. the
>         data dimensions are 600 * 7.
>
>         While genetaring, the plot were created on Genes with both
>         "plot3d" and "scatterplot3d" functions, and I want the PCA-3d
>         plot according to the samples.
>
>         The code I used is,
>
>             dim(Expresso)
>
>         [1] 618   7
>
>             PCA_3d<-princomp(Expresso, cor=TRUE)
>
>
>     Both princomp() and prcomp() expect the data to be in a
>     conventional format (with samples in rows and observations in
>     columns). Microarray data are in general transposed from this
>     format (with observations in rows and samples in columns), so you
>     need to do
>
>     princomp(t(Expresso), cor = TRUE)
>
>     Best,
>
>     Jim
>
>
>             plot3d(PCA_3d$scores[,1:7],xlab="Component 1",main="My 3D
>
>         + PCA",ylab="Component 2", zlab="Component 3", type="h",
>         box=F, axes=F)
>
>             spheres3d(PCA_3d$scores[,1:7], radius=0.1, col="pink")
>             grid3d(side="z", at=list(z=0))
>             text3d(PCA_3d$scores[,1:7], text=rownames(PCA_3d$scores),
>             adj=1.3)
>
>         I also tried to plot with function "scatterplot3d"
>
>             scatterplot3d(PCA_3d$scores[,1:3],xlab="Component 1
>             (26.9%)",main="My 3D PCA",ylab="Component 2(17.9%)",
>             zlab="Component 3 (12.4%)",type="h",box=FALSE,pch=21)
>             scatterplot3d(PCA_3d$scores [,1:3],xlab="Component 1
>             (26.9%)",main="My 3D PCA",ylab="Component 2(17.9%)",
>             zlab="Component 3 (12.4%)",type="h",box=FALSE,pch=21,bg=color)
>
>
>
>
>
>
>
>           -- output of sessionInfo():
>
>             sessionInfo()
>
>         R version 2.15.1 (2012-06-22)
>         Platform: x86_64-redhat-linux-gnu (64-bit)
>
>         locale:
>           [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>           [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>           [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>           [7] LC_PAPER=C                 LC_NAME=C
>           [9] LC_ADDRESS=C               LC_TELEPHONE=C
>         [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
>         attached base packages:
>         [1] stats     graphics  grDevices utils     datasets  methods
>           base
>
>         other attached packages:
>         [1] ggplot2_0.9.3        reshape2_1.2.2       scatterplot3d_0.3-33
>         [4] rgl_0.93.935         DESeq_1.10.1         lattice_0.20-13
>         [7] locfit_1.5-8         Biobase_2.18.0       BiocGenerics_0.4.0
>
>         loaded via a namespace (and not attached):
>           [1] annotate_1.36.0      AnnotationDbi_1.20.3 colorspace_1.2-1
>           [4] DBI_0.2-5            dichromat_2.0-0      digest_0.6.2
>           [7] genefilter_1.40.0    geneplotter_1.36.0   grid_2.15.1
>         [10] gtable_0.1.2         IRanges_1.16.5       labeling_0.1
>         [13] MASS_7.3-23          munsell_0.4          parallel_2.15.1
>         [16] plyr_1.8             proto_0.3-10         RColorBrewer_1.0-5
>         [19] RSQLite_0.11.2       scales_0.2.3         splines_2.15.1
>         [22] stats4_2.15.1        stringr_0.6.2        survival_2.37-2
>         [25] tcltk_2.15.1         tools_2.15.1         XML_3.95-0.1
>         [28] xtable_1.7-0
>
>
>         --
>         Sent via the guest posting facility at bioconductor.org
>         <http://bioconductor.org>.
>
>         _______________________________________________
>         Bioconductor mailing list
>         Bioconductor at r-project.org <mailto:Bioconductor at r-project.org>
>         https://stat.ethz.ch/mailman/listinfo/bioconductor
>         Search the archives:
>         http://news.gmane.org/gmane.science.biology.informatics.conductor
>
>
>     -- 
>     James W. MacDonald, M.S.
>     Biostatistician
>     University of Washington
>     Environmental and Occupational Health Sciences
>     4225 Roosevelt Way NE, # 100
>     Seattle WA 98105-6099
>
>
>
>
> -- 
> Chevala. V V S Narayana
> Junior Research Fellow,
> NIPGR.
>

-- 
James W. MacDonald, M.S.
Biostatistician
University of Washington
Environmental and Occupational Health Sciences
4225 Roosevelt Way NE, # 100
Seattle WA 98105-6099



More information about the Bioconductor mailing list