This function performs principal component analysis (PCA) on a given matrix.
Usage
prot.pca(
mat,
metadata = NULL,
center = TRUE,
scale = FALSE,
rank = NULL,
removeVar = NULL,
transposed = FALSE,
BSPARAM = BiocSingular::ExactParam(),
in_workflow = FALSE
)
Arguments
- mat
A numeric matrix.
- metadata
An optional data frame with rownames matching 'colnames(mat)'.
- center
A logical indicating whether to center the data before PCA.
- scale
A logical indicating whether to scale the data before PCA.
- rank
An integer indicating the number of principal components to calculate.
- removeVar
A numeric value between 0 and 1 indicating the fraction of variables to remove based on variance.
- transposed
A logical indicating whether the matrix is transposed.
- BSPARAM
An object of class
ExactParam
orApproxParam
.- in_workflow
Indicated whether this function is called from within
prot.workflow
.
Value
A list with components rotated
, loadings
, variance
, sdev
, metadata
, xvars
, yvars
, and components
.
Examples
mat <- matrix(rnorm(1000), nrow = 100, ncol = 10)
prot.pca(mat)
#> $rotated
#> PC1 PC2 PC3 PC4 PC5 PC6
#> 1 -7.7882388 -0.5254519 1.6739757 3.83904244 1.90269251 -2.0836401
#> 2 1.8697534 2.4163623 4.5412498 -2.52082728 2.19234578 5.4016162
#> 3 -0.8920437 7.4705499 3.1181134 -0.24563105 0.09361523 -3.2751975
#> 4 -1.4711416 -5.1074580 -1.4538136 -2.70141409 5.34427512 -0.5095835
#> 5 3.0531687 3.8242136 -7.0336074 1.27723841 -0.66185608 -1.0622737
#> 6 -0.5296023 -1.2213262 2.4226898 -4.96082437 -5.12159401 -1.7612813
#> 7 5.8581849 -1.0708300 -0.9164211 -1.03361657 2.93444215 -2.6381760
#> 8 4.3719559 -2.3519837 3.1316591 6.61512880 -1.39831623 1.5878050
#> 9 -4.0789010 1.7844429 -4.7393355 -0.24982989 -1.30730927 4.7395143
#> 10 -0.3931356 -5.2185188 -0.7445102 -0.01926638 -3.97829519 -0.3987834
#> PC7 PC8 PC9 PC10
#> 1 -1.7005220 -2.32438881 2.3392548 7.581903e-16
#> 2 1.4919279 -1.97503936 2.3820398 7.581903e-16
#> 3 2.3769281 3.26402990 -1.5054030 7.581903e-16
#> 4 2.2915666 -0.03576356 -3.6026367 7.581903e-16
#> 5 2.0224340 -3.88135212 0.1725159 7.581903e-16
#> 6 -2.7569745 -2.60565922 -1.8174345 7.581903e-16
#> 7 -4.3976835 2.13574611 2.7276855 7.581903e-16
#> 8 -0.6660052 -0.04577688 -2.9739330 7.581903e-16
#> 9 -2.9907856 3.05018608 -0.9634042 7.581903e-16
#> 10 4.3291141 2.41801786 3.2413154 7.581903e-16
#>
#> $loadings
#> PC1 PC2 PC3 PC4 PC5
#> 1 0.1037756196 -0.0063718043 -0.1978008672 0.0770237662 -0.120045661
#> 2 -0.0201352304 0.0018077957 0.0737887019 -0.0194047994 -0.145770180
#> 3 0.1303429428 -0.1435996041 -0.0007388896 -0.0861014410 -0.061910337
#> 4 0.0558745054 -0.0435378270 -0.1497819497 -0.0312160496 0.088648714
#> 5 -0.1136626041 -0.1757592403 -0.0793929155 0.0796960252 0.052638847
#> 6 -0.1329122082 -0.0509807613 0.0817490625 0.0302375689 -0.053928515
#> 7 0.0510141050 -0.0416619571 -0.1002021640 -0.1280040286 -0.058746964
#> 8 0.0933060911 -0.1320719355 -0.1162795675 -0.0503518548 0.024929254
#> 9 -0.0133120422 -0.2541846175 0.0044450030 -0.0328514469 -0.043347346
#> 10 0.0091259306 0.1270409223 0.2360883808 -0.0499968925 -0.153864083
#> 11 0.0523751784 -0.0556426440 -0.0084713830 0.2258013617 -0.057532091
#> 12 -0.1998347756 -0.0175220258 0.0097036704 -0.0180295988 -0.349151180
#> 13 -0.2890931304 0.0547636160 -0.0101316865 -0.0657830024 0.047578755
#> 14 0.0985499730 0.0362229952 0.0070061034 -0.0050530372 -0.059630250
#> 15 -0.0776585250 0.0638560961 -0.0867813423 0.0021417610 -0.015603232
#> 16 0.1717926056 0.0514952299 0.0307147397 0.0080098956 0.036664466
#> 17 0.0809071951 -0.0076603496 0.0145133406 -0.2145893308 0.101551878
#> 18 -0.0701185865 -0.0217573048 0.0913112762 0.0109994282 -0.028159769
#> 19 0.0505122032 0.0088997156 -0.0765765573 0.1134422063 0.063797124
#> 20 -0.0454434510 0.0991396542 0.0428774699 -0.2599250198 -0.035555900
#> 21 0.0120698971 0.0558336661 -0.0661404301 0.0338458905 0.155325727
#> 22 -0.1619185942 -0.0104967300 -0.0664959043 -0.0870131129 -0.050909888
#> 23 0.1014884657 -0.0506419820 -0.0706590903 -0.1280186770 0.013816846
#> 24 0.0169760049 -0.1096929798 0.1295862198 0.0595639293 -0.050081413
#> 25 -0.1877121879 -0.2201632428 0.1960309046 -0.0403869819 0.143834590
#> 26 -0.0009929752 0.1710674912 0.0224817119 0.0802237074 -0.053823853
#> 27 0.0096849771 0.0169554665 0.0157730189 -0.0601149466 0.007887527
#> 28 -0.0120088365 -0.0626602292 0.0047751848 0.0957358624 0.316006811
#> 29 0.0731737829 0.0961146248 0.0541357042 0.0151144900 0.161382550
#> 30 0.1636171744 -0.0291459399 -0.1099114623 0.0005717268 0.129570713
#> 31 -0.1011632971 -0.0247497663 -0.1117368682 0.0620777228 0.061412592
#> 32 -0.0804264240 0.0078885958 0.0414505661 -0.0441874334 -0.167978322
#> 33 -0.1170621723 0.0554630494 -0.0870187865 -0.0953369989 0.086715659
#> 34 -0.0069408990 -0.0986773386 -0.0640944075 0.1392753655 -0.008626486
#> 35 0.0489617995 -0.1586384466 0.0512031968 0.0946528508 -0.103982248
#> 36 -0.0509860452 -0.1191297864 0.0277126242 -0.0417399242 -0.045598653
#> 37 0.0828728991 -0.0144862481 0.0742240021 0.0162316099 -0.140871238
#> 38 -0.0263133288 0.0629172940 0.0674797452 0.0746554884 -0.082897764
#> 39 -0.0996368194 0.0935589766 -0.0669966729 -0.1227936456 -0.063535657
#> 40 -0.0922123289 -0.1902300049 0.0545844682 -0.1427849912 0.044332060
#> 41 -0.0033889859 -0.0667315057 0.0929391765 -0.1351173496 -0.030695477
#> 42 -0.0318914280 0.0230571656 -0.1075651266 -0.0950862949 0.088659987
#> 43 0.0632878757 0.0427191783 0.2603546438 -0.1480761387 0.043555595
#> 44 0.1011786475 0.1099902211 0.2089559109 0.1573033605 -0.011669165
#> 45 0.0092009367 0.0066079315 -0.0645082893 -0.0356551693 0.003633938
#> 46 -0.1858147239 0.0170937497 0.0687931047 0.0404971880 0.202505764
#> 47 -0.0144591679 -0.1072485518 0.0451457935 0.0343069958 -0.034075514
#> 48 -0.1262252750 0.0090258736 0.0450139076 -0.0802291858 -0.060165673
#> 49 -0.0629524303 0.0165266266 -0.1369384650 0.0710058599 -0.185630468
#> 50 0.1798360755 0.0177496838 0.0444381126 -0.0882578179 0.124531305
#> 51 -0.0267300153 0.0554287984 -0.1074638075 0.1131907273 0.006402089
#> 52 -0.0191346140 0.0093901378 -0.0947107539 -0.0156326289 0.023934808
#> 53 0.0184804425 -0.2163466310 0.0297865571 -0.0348448252 -0.156221453
#> 54 -0.0882085886 -0.2096822295 0.0181526114 -0.1177277281 0.010431022
#> 55 0.0167396180 0.0055260910 0.0927203811 -0.0384324936 0.075290224
#> 56 -0.0083563072 -0.1871267022 0.1333101096 -0.0161637266 0.181241850
#> 57 0.1279200316 -0.0504407732 0.0226043136 -0.0668515082 -0.169195055
#> 58 -0.3151113897 -0.0553073505 -0.1056261172 -0.0193953891 0.131874476
#> 59 0.1081344348 -0.0084736252 0.0165124314 -0.0742514811 -0.105109350
#> 60 -0.0089998143 0.1232063464 0.0363802022 -0.0195211876 0.028390220
#> 61 -0.0935748604 0.0456705999 -0.0675175271 0.1193138014 -0.084008036
#> 62 0.1416053160 -0.1402462158 0.0426932911 0.0135297510 0.101539587
#> 63 0.0345905446 -0.0903614713 -0.0838628645 0.1584700223 0.080613420
#> 64 -0.0262182209 -0.0949986323 0.0203427897 -0.2570086601 0.079699558
#> 65 0.0806833696 -0.0606880462 -0.0304919608 0.1274154079 0.139283677
#> 66 0.0250372100 -0.1137187795 -0.0824002216 0.0528961575 0.089501311
#> 67 -0.0463377959 0.1773814118 0.1177834843 0.1818358365 0.008527666
#> 68 0.0690640537 -0.0419924741 0.0490861444 0.1124967011 0.004171269
#> 69 0.0143278829 -0.0812784620 -0.0711773389 0.0255738016 -0.019987091
#> 70 0.1701982386 0.0413227338 -0.1100119202 -0.0902441226 0.029816680
#> 71 -0.0926932195 0.0849701475 -0.0548425329 -0.1228466758 0.021886356
#> 72 -0.0499654913 -0.1213306766 -0.1127106437 0.0423211254 0.014100855
#> 73 -0.0172070170 0.0349387515 0.1744616285 0.1371041520 0.080597840
#> 74 -0.0278990275 -0.0246699204 0.2010279629 0.0630973343 -0.018959024
#> 75 -0.0750560246 -0.0437858362 0.1661295094 -0.0236398875 -0.015323636
#> 76 0.0048974692 0.0973473997 0.1494977165 -0.0049008683 0.164346055
#> 77 -0.1272041836 0.1517718255 0.0941104860 -0.1357410923 0.005852503
#> 78 0.0623694707 0.0001323082 -0.0093272896 0.0882196569 0.018397686
#> 79 -0.0204380956 0.0063211791 -0.0161962373 -0.0080595550 -0.062819648
#> 80 -0.0268757517 -0.0956510851 0.1772996247 -0.0054151321 0.064027119
#> 81 -0.2359073695 0.0646375566 -0.0311401906 0.0889080545 0.028038233
#> 82 -0.1635493333 -0.0528422028 -0.0915703339 0.0944319907 -0.124967682
#> 83 -0.0895434120 0.0509980461 -0.1433462020 0.1844383227 0.072766712
#> 84 -0.0445699730 0.1218405469 -0.0253887134 -0.0577240322 0.065411686
#> 85 0.1447010570 -0.0326656424 -0.0160502663 -0.0230613175 -0.027051533
#> 86 0.0337628233 0.0783851203 0.1694385423 -0.0820423568 0.100556502
#> 87 0.2742957553 -0.0747441802 -0.0632125419 -0.1126813427 -0.038078730
#> 88 -0.0763821996 0.0725273433 0.0033858069 -0.2876791703 0.028597725
#> 89 0.0376670302 0.2209939032 -0.0139211577 0.0559115164 0.048081572
#> 90 0.0267124292 -0.1448448567 0.1988974009 0.0507936425 -0.011488795
#> 91 -0.0004171455 -0.0251576789 0.1083556961 0.0240246307 -0.145039060
#> 92 -0.0978522850 -0.0851100680 -0.0141694721 0.1147996901 0.006937206
#> 93 -0.0281196092 -0.1373798223 -0.0072470882 0.0468521286 0.170846100
#> 94 -0.0315468985 0.0078665691 0.0608462274 0.1131824199 -0.045972806
#> 95 -0.0220072660 0.1218934911 0.1987285141 0.1079128004 0.079762185
#> 96 -0.0778420332 -0.2255236041 0.0417929175 0.0452746077 0.111287236
#> 97 0.0459595514 -0.0987299930 0.1589575234 0.1991857592 -0.137302241
#> 98 0.0095300870 -0.0255732886 0.0926667238 -0.0224017764 0.094754823
#> 99 0.0180858186 0.0073390773 0.1738839429 0.0692869257 0.016548273
#> 100 0.0509169893 0.2151806742 -0.0297521649 0.0594382805 0.127413748
#> PC6 PC7 PC8 PC9 PC10
#> 1 0.1155608821 0.069066181 0.1012438864 0.005373035 -0.1680491998
#> 2 -0.1713780049 0.021738815 0.1809447831 0.136300328 -0.3224450055
#> 3 -0.0434790684 0.086871595 0.2044455180 -0.157251743 -0.2625803545
#> 4 -0.0811228698 -0.126139229 0.0429896481 -0.031944355 0.1093335770
#> 5 0.0371662904 -0.105647898 0.0407379185 0.025023948 0.2174264308
#> 6 -0.0883475120 0.069602207 0.0113109523 0.078832073 -0.1916118273
#> 7 0.0347091243 0.051821571 -0.1003721227 -0.158970554 0.0946706333
#> 8 -0.1692894000 0.168212798 -0.1830629854 -0.044093545 0.3849833495
#> 9 0.1362860268 0.047599796 -0.0800794227 -0.130468597 -0.3938803952
#> 10 -0.0285116939 -0.004219328 0.2116703404 0.044296532 0.1116209588
#> 11 0.1832297269 0.036200141 -0.0075623079 -0.111191882 -0.0234987303
#> 12 0.0377680344 -0.107281314 -0.0606105330 -0.169180188 0.0713143678
#> 13 0.0328178465 0.050399094 0.0344574639 0.064990106 -0.0088140046
#> 14 0.0479124272 -0.076225031 -0.0574304521 0.015235847 -0.0640658697
#> 15 0.0672456474 0.124189987 -0.0424409339 0.007428247 0.0117956838
#> 16 0.2280669943 0.133232184 0.0008931586 -0.031173769 -0.0276188727
#> 17 -0.1912741807 0.064618529 -0.0710822978 0.058288539 0.0043953762
#> 18 -0.1367688704 -0.023135696 0.0818024424 -0.120133293 0.0312326739
#> 19 0.0506536498 -0.072689358 -0.1151466797 0.188623560 -0.0250931296
#> 20 -0.0272145413 0.190302504 -0.1027944135 0.011945042 0.0078199095
#> 21 0.2835076527 -0.151511999 0.0324460318 0.012415913 0.0241938720
#> 22 0.1197052678 0.129088703 0.0616495964 0.082634932 -0.0452269717
#> 23 0.1409695001 0.051442718 0.0898281500 -0.028647697 0.0529451175
#> 24 -0.0193545421 -0.003812713 0.0668416150 0.069950820 0.0877322250
#> 25 -0.0105051473 -0.026193351 -0.0433210588 -0.082325536 0.1315752033
#> 26 -0.0249200205 0.089579566 -0.0353603114 0.007715955 -0.0974299444
#> 27 0.1347131307 -0.025609079 0.1255601738 -0.099645427 0.0204974918
#> 28 0.0950903411 -0.071887148 0.2224666259 -0.064014560 0.0350397336
#> 29 -0.1245791426 0.055267627 -0.0944868384 -0.180025979 -0.0962504873
#> 30 0.1041920896 -0.081089078 -0.0738388943 -0.091309087 -0.1110372959
#> 31 -0.0576814894 0.024807982 0.0592984199 -0.057837509 0.0214746148
#> 32 0.1774552189 -0.075523531 -0.0645052162 0.172214916 0.0418486048
#> 33 -0.0040585066 0.141370951 0.0110981154 -0.030425630 -0.0004719654
#> 34 -0.1578674515 -0.073754614 -0.2426449482 0.061046682 0.0413624234
#> 35 -0.0869892750 0.006298899 0.1531433233 -0.007606105 0.0385459357
#> 36 0.1120485545 0.086398302 -0.0287587785 -0.116413813 0.0246316801
#> 37 0.0692713356 -0.086518541 -0.0137179427 -0.214702519 -0.0772538123
#> 38 0.0005589875 0.109776571 0.0359176704 -0.011110581 0.0603105655
#> 39 0.1460255631 0.054154441 0.1662809986 0.023404809 0.0921113865
#> 40 -0.0236844281 -0.139910015 -0.0252279408 0.128863835 -0.0328390193
#> 41 -0.0533978921 -0.219048700 -0.0613303958 -0.003829272 0.0243168253
#> 42 -0.0899115873 0.118344498 0.0971837783 -0.204666927 -0.0022915868
#> 43 -0.0645778638 -0.001352208 -0.0736200465 0.049399391 -0.0238755654
#> 44 -0.0172750109 0.086155758 -0.0627723760 -0.045934196 -0.0316424294
#> 45 0.0983622522 -0.105212053 -0.0801403595 0.271598716 -0.0304780142
#> 46 0.0095973586 0.070999373 0.0316081536 0.065039420 0.0094454268
#> 47 -0.1114252109 0.051600807 0.1538964884 0.071800660 0.0919233651
#> 48 0.0829979465 -0.039486014 0.0272849655 0.065398295 -0.0019589782
#> 49 -0.0554616899 0.079856241 -0.0131807157 -0.119427087 -0.0240157931
#> 50 0.0637205564 0.145662666 -0.0292696863 -0.027234041 -0.0753551751
#> 51 0.0853228955 0.035101449 -0.1885286842 0.080613827 -0.0034559907
#> 52 0.0678634008 0.051549185 0.0310347868 0.101445715 -0.0042736952
#> 53 -0.0718288831 -0.062958629 0.0157146050 -0.059888202 0.0320592784
#> 54 -0.0341397205 0.095682226 0.1080659355 0.002324813 -0.0343962587
#> 55 -0.0127427628 0.124494682 0.0424207871 -0.091582998 -0.0712687297
#> 56 0.0099866349 0.036670362 0.0750644987 0.081233203 -0.0242114873
#> 57 -0.0040255593 0.243997166 0.0997062634 0.021751798 0.2538675426
#> 58 0.0532331605 -0.026573953 -0.0143801932 -0.004351352 -0.0912887621
#> 59 -0.0292507710 -0.024329271 -0.2021072137 0.063738367 -0.0897441442
#> 60 -0.0010951819 0.009305754 0.1448035747 0.157550194 -0.0132347704
#> 61 -0.1355549019 -0.048880579 -0.1445644484 -0.164909501 -0.0055479190
#> 62 0.0921415807 -0.027524034 -0.0589902605 -0.027472659 -0.0070856001
#> 63 -0.1447043419 0.257201179 -0.0359363867 0.194125365 -0.0304912506
#> 64 -0.0801887748 -0.022058055 -0.0079776136 -0.020302799 -0.0635315435
#> 65 -0.0771966800 0.059030445 0.0988744109 -0.034153073 -0.0911394796
#> 66 0.1215564179 -0.015866128 -0.0695648305 -0.183527389 0.0655944331
#> 67 -0.1612052912 -0.082102883 0.0432204261 -0.056894112 -0.0424524970
#> 68 0.0402801483 -0.006221484 -0.0685578952 0.100825189 0.0191086814
#> 69 -0.0631900312 0.059499587 -0.0493394348 -0.023092716 -0.1003617447
#> 70 0.0550064912 -0.093644518 0.1942605975 0.093315671 0.0548643936
#> 71 0.1374181905 0.106479744 0.0570933955 -0.134983153 0.0615686030
#> 72 0.0546133970 -0.086779312 0.0818473107 0.214409410 0.0839826514
#> 73 0.0602014492 -0.022839254 -0.1060969568 0.105140048 0.0695115173
#> 74 0.1012101372 0.031577704 0.0979110516 0.092842799 0.0162621323
#> 75 -0.0250294062 -0.037658191 -0.0440972817 0.113594462 0.0483699358
#> 76 -0.0253868069 -0.041533833 0.0043757102 -0.186679856 0.1930661587
#> 77 -0.1481233710 -0.096253494 -0.0219205424 -0.227421840 0.0055963937
#> 78 -0.1635431573 -0.005121722 0.1500676954 0.056454228 0.0671089523
#> 79 -0.1018152990 0.144225932 0.0350140401 0.089225103 0.0005793992
#> 80 0.2153234356 0.214275924 -0.0355805964 -0.039446571 0.0288727039
#> 81 -0.0375263578 0.011930227 0.0435265008 -0.083214205 0.0043504156
#> 82 -0.0128702400 0.102267913 -0.1207927213 0.034450322 0.0127515750
#> 83 -0.0795679672 0.128272625 0.1099139062 0.030104159 0.0025877213
#> 84 0.1171878594 -0.035386539 -0.1057062742 0.027764752 -0.1096863403
#> 85 -0.1005026596 0.149231029 -0.0567952924 0.091700989 0.0177106977
#> 86 0.0020793013 -0.226871882 -0.0135498220 0.061107703 -0.0582891823
#> 87 -0.0272151971 -0.096301922 0.0463420698 -0.010478560 0.1084654490
#> 88 0.1301735607 0.149900413 -0.1704642955 0.080984232 -0.0111666247
#> 89 0.0096897805 -0.008968166 -0.1348272967 -0.023863731 -0.0095188832
#> 90 0.1272845172 0.145414815 0.0890371270 0.017476670 0.0460104539
#> 91 0.0928025374 0.004700018 -0.1331249036 -0.031316738 0.0443703243
#> 92 0.0539483869 0.028731023 0.0347541083 -0.084623094 0.0115030774
#> 93 -0.0742880600 -0.107005819 -0.0686999589 -0.124015728 -0.0519362387
#> 94 0.0634089532 -0.075030449 0.1927275537 -0.070019553 -0.0922209176
#> 95 0.1092324918 0.134154238 -0.0460495314 -0.112871179 0.0667399431
#> 96 -0.0456599377 0.129576468 -0.1772686266 0.029651115 -0.0875452507
#> 97 0.1521274988 0.102192803 -0.1024933737 -0.021811247 0.0837736741
#> 98 -0.0935643506 0.145343516 -0.0762589772 0.068320158 -0.0911074550
#> 99 -0.0206689744 -0.047221503 -0.0881191039 0.040029529 -0.0673586985
#> 100 -0.0459306407 0.167177192 0.0529125334 0.046462072 0.0374878355
#>
#> $variance
#> PC1 PC2 PC3 PC4 PC5 PC6
#> 1.672110e+01 1.607051e+01 1.414087e+01 1.133215e+01 1.044278e+01 9.199186e+00
#> PC7 PC8 PC9 PC10
#> 8.555075e+00 7.001531e+00 6.536796e+00 6.541593e-31
#>
#> $sdev
#> [1] 4.040617e+00 3.961230e+00 3.715809e+00 3.326376e+00 3.193180e+00
#> [6] 2.997022e+00 2.890195e+00 2.614639e+00 2.526374e+00 7.992028e-16
#>
#> $metadata
#> NULL
#>
#> $xvars
#> NULL
#>
#> $yvars
#> NULL
#>
#> $components
#> [1] "PC1" "PC2" "PC3" "PC4" "PC5" "PC6" "PC7" "PC8" "PC9" "PC10"
#>
#> attr(,"class")
#> [1] "pca"