-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.html
1402 lines (1391 loc) · 143 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
@font-face {
font-family: octicons-link;
src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff');
}
body {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
color: #333;
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
strong {
font-weight: bold;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
img {
border: 0;
}
hr {
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre {
font-family: monospace, monospace;
font-size: 1em;
}
input {
color: inherit;
font: inherit;
margin: 0;
}
html input[disabled] {
cursor: default;
}
input {
line-height: normal;
}
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
* {
box-sizing: border-box;
}
input {
font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
a {
color: #4078c0;
text-decoration: none;
}
a:hover,
a:active {
text-decoration: underline;
}
hr {
height: 0;
margin: 15px 0;
overflow: hidden;
background: transparent;
border: 0;
border-bottom: 1px solid #ddd;
}
hr:before {
display: table;
content: "";
}
hr:after {
display: table;
clear: both;
content: "";
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: 15px;
margin-bottom: 15px;
line-height: 1.1;
}
h1 {
font-size: 30px;
}
h2 {
font-size: 21px;
}
h3 {
font-size: 16px;
}
h4 {
font-size: 14px;
}
h5 {
font-size: 12px;
}
h6 {
font-size: 11px;
}
blockquote {
margin: 0;
}
ul,
ol {
padding: 0;
margin-top: 0;
margin-bottom: 0;
}
ol ol,
ul ol {
list-style-type: lower-roman;
}
ul ul ol,
ul ol ol,
ol ul ol,
ol ol ol {
list-style-type: lower-alpha;
}
dd {
margin-left: 0;
}
code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 12px;
}
pre {
margin-top: 0;
margin-bottom: 0;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}
.select::-ms-expand {
opacity: 0;
}
.octicon {
font: normal normal normal 16px/1 octicons-link;
display: inline-block;
text-decoration: none;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.octicon-link:before {
content: '\f05c';
}
.markdown-body:before {
display: table;
content: "";
}
.markdown-body:after {
display: table;
clear: both;
content: "";
}
.markdown-body>*:first-child {
margin-top: 0 !important;
}
.markdown-body>*:last-child {
margin-bottom: 0 !important;
}
a:not([href]) {
color: inherit;
text-decoration: none;
}
.anchor {
display: inline-block;
padding-right: 2px;
margin-left: -18px;
}
.anchor:focus {
outline: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: 1em;
margin-bottom: 16px;
font-weight: bold;
line-height: 1.4;
}
h1 .octicon-link,
h2 .octicon-link,
h3 .octicon-link,
h4 .octicon-link,
h5 .octicon-link,
h6 .octicon-link {
color: #000;
vertical-align: middle;
visibility: hidden;
}
h1:hover .anchor,
h2:hover .anchor,
h3:hover .anchor,
h4:hover .anchor,
h5:hover .anchor,
h6:hover .anchor {
text-decoration: none;
}
h1:hover .anchor .octicon-link,
h2:hover .anchor .octicon-link,
h3:hover .anchor .octicon-link,
h4:hover .anchor .octicon-link,
h5:hover .anchor .octicon-link,
h6:hover .anchor .octicon-link {
visibility: visible;
}
h1 {
padding-bottom: 0.3em;
font-size: 2.25em;
line-height: 1.2;
border-bottom: 1px solid #eee;
}
h1 .anchor {
line-height: 1;
}
h2 {
padding-bottom: 0.3em;
font-size: 1.75em;
line-height: 1.225;
border-bottom: 1px solid #eee;
}
h2 .anchor {
line-height: 1;
}
h3 {
font-size: 1.5em;
line-height: 1.43;
}
h3 .anchor {
line-height: 1.2;
}
h4 {
font-size: 1.25em;
}
h4 .anchor {
line-height: 1.2;
}
h5 {
font-size: 1em;
}
h5 .anchor {
line-height: 1.1;
}
h6 {
font-size: 1em;
color: #777;
}
h6 .anchor {
line-height: 1.1;
}
p,
blockquote,
ul,
ol,
dl,
table,
pre {
margin-top: 0;
margin-bottom: 16px;
}
hr {
height: 4px;
padding: 0;
margin: 16px 0;
background-color: #e7e7e7;
border: 0 none;
}
ul,
ol {
padding-left: 2em;
}
ul ul,
ul ol,
ol ol,
ol ul {
margin-top: 0;
margin-bottom: 0;
}
li>p {
margin-top: 16px;
}
dl {
padding: 0;
}
dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: bold;
}
dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
blockquote {
padding: 0 15px;
color: #777;
border-left: 4px solid #ddd;
}
blockquote>:first-child {
margin-top: 0;
}
blockquote>:last-child {
margin-bottom: 0;
}
table {
display: block;
width: 100%;
overflow: auto;
word-break: normal;
word-break: keep-all;
}
table th {
font-weight: bold;
}
table th,
table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
img {
max-width: 100%;
box-sizing: content-box;
background-color: #fff;
}
code {
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(0,0,0,0.04);
border-radius: 3px;
}
code:before,
code:after {
letter-spacing: -0.2em;
content: "\00a0";
}
pre>code {
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.highlight {
margin-bottom: 16px;
}
.highlight pre,
pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border-radius: 3px;
}
.highlight pre {
margin-bottom: 0;
word-break: normal;
}
pre {
word-wrap: normal;
}
pre code {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
pre code:before,
pre code:after {
content: normal;
}
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.pl-c {
color: #969896;
}
.pl-c1,
.pl-s .pl-v {
color: #0086b3;
}
.pl-e,
.pl-en {
color: #795da3;
}
.pl-s .pl-s1,
.pl-smi {
color: #333;
}
.pl-ent {
color: #63a35c;
}
.pl-k {
color: #a71d5d;
}
.pl-pds,
.pl-s,
.pl-s .pl-pse .pl-s1,
.pl-sr,
.pl-sr .pl-cce,
.pl-sr .pl-sra,
.pl-sr .pl-sre {
color: #183691;
}
.pl-v {
color: #ed6a43;
}
.pl-id {
color: #b52a1d;
}
.pl-ii {
background-color: #b52a1d;
color: #f8f8f8;
}
.pl-sr .pl-cce {
color: #63a35c;
font-weight: bold;
}
.pl-ml {
color: #693a17;
}
.pl-mh,
.pl-mh .pl-en,
.pl-ms {
color: #1d3e81;
font-weight: bold;
}
.pl-mq {
color: #008080;
}
.pl-mi {
color: #333;
font-style: italic;
}
.pl-mb {
color: #333;
font-weight: bold;
}
.pl-md {
background-color: #ffecec;
color: #bd2c00;
}
.pl-mi1 {
background-color: #eaffea;
color: #55a532;
}
.pl-mdr {
color: #795da3;
font-weight: bold;
}
.pl-mo {
color: #1d3e81;
}
kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.task-list-item {
list-style-type: none;
}
.task-list-item+.task-list-item {
margin-top: 3px;
}
.task-list-item input {
margin: 0 0.35em 0.25em -1.6em;
vertical-align: middle;
}
:checked+.radio-label {
z-index: 1;
position: relative;
border-color: #4078c0;
}
.sourceLine {
display: inline-block;
}
code .kw { color: #000000; }
code .dt { color: #ed6a43; }
code .dv { color: #009999; }
code .bn { color: #009999; }
code .fl { color: #009999; }
code .ch { color: #009999; }
code .st { color: #183691; }
code .co { color: #969896; }
code .ot { color: #0086b3; }
code .al { color: #a61717; }
code .fu { color: #63a35c; }
code .er { color: #a61717; background-color: #e3d2d2; }
code .wa { color: #000000; }
code .cn { color: #008080; }
code .sc { color: #008080; }
code .vs { color: #183691; }
code .ss { color: #183691; }
code .im { color: #000000; }
code .va {color: #008080; }
code .cf { color: #000000; }
code .op { color: #000000; }
code .bu { color: #000000; }
code .ex { color: #000000; }
code .pp { color: #999999; }
code .at { color: #008080; }
code .do { color: #969896; }
code .an { color: #008080; }
code .cv { color: #008080; }
code .in { color: #008080; }
</style>
<style>
body {
box-sizing: border-box;
min-width: 200px;
max-width: 980px;
margin: 0 auto;
padding: 45px;
padding-top: 0px;
}
</style>
</head>
<body>
<!-- README.md is generated from README.Rmd. Please edit that file -->
<h1 id="rgeo">rgeo</h1>
<!-- badges: start -->
<p><a href="https://github.com/Yunuuuu/rgeo/actions/workflows/R-CMD-check.yaml"><img src="data:image/svg+xml; charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTIiIGhlaWdodD0iMjAiPgogIDx0aXRsZT5SLUNNRC1jaGVjayAtIHBhc3Npbmc8L3RpdGxlPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJ3b3JrZmxvdy1maWxsIiB4MT0iNTAlIiB5MT0iMCUiIHgyPSI1MCUiIHkyPSIxMDAlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzQ0NEQ1NiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjQyOTJFIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9InN0YXRlLWZpbGwiIHgxPSI1MCUiIHkxPSIwJSIgeDI9IjUwJSIgeTI9IjEwMCUiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzREMDU4IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyOEE3NDUiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgIDxnIGZvbnQtZmFtaWx5PSImIzM5O0RlamFWdSBTYW5zJiMzOTssVmVyZGFuYSxHZW5ldmEsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMSI+CiAgICAgIDxwYXRoIGlkPSJ3b3JrZmxvdy1iZyIgZD0iTTAsMyBDMCwxLjM0MzEgMS4zNTUyLDAgMy4wMjcwMjcwMywwIEwxMDIsMCBMMTAyLDIwIEwzLjAyNzAyNzAzLDIwIEMxLjM1NTIsMjAgMCwxOC42NTY5IDAsMTcgTDAsMyBaIiBmaWxsPSJ1cmwoI3dvcmtmbG93LWZpbGwpIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgPHRleHQgZmlsbD0iIzAxMDEwMSIgZmlsbC1vcGFjaXR5PSIuMyI+CiAgICAgICAgPHRzcGFuIHg9IjIyLjE5ODE5ODIiIHk9IjE1IiBhcmlhLWhpZGRlbj0idHJ1ZSI+Ui1DTUQtY2hlY2s8L3RzcGFuPgogICAgICA8L3RleHQ+CiAgICAgIDx0ZXh0IGZpbGw9IiNGRkZGRkYiPgogICAgICAgIDx0c3BhbiB4PSIyMi4xOTgxOTgyIiB5PSIxNCI+Ui1DTUQtY2hlY2s8L3RzcGFuPgogICAgICA8L3RleHQ+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDIpIiBmb250LWZhbWlseT0iJiMzOTtEZWphVnUgU2FucyYjMzk7LFZlcmRhbmEsR2VuZXZhLHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTEiPgogICAgICA8cGF0aCBkPSJNMCAwaDQ2LjkzOUM0OC42MjkgMCA1MCAxLjM0MyA1MCAzdjE0YzAgMS42NTctMS4zNyAzLTMuMDYxIDNIMFYweiIgaWQ9InN0YXRlLWJnIiBmaWxsPSJ1cmwoI3N0YXRlLWZpbGwpIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgPHRleHQgZmlsbD0iIzAxMDEwMSIgZmlsbC1vcGFjaXR5PSIuMyIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDx0c3BhbiB4PSI0IiB5PSIxNSI+cGFzc2luZzwvdHNwYW4+CiAgICAgIDwvdGV4dD4KICAgICAgPHRleHQgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgPHRzcGFuIHg9IjQiIHk9IjE0Ij5wYXNzaW5nPC90c3Bhbj4KICAgICAgPC90ZXh0PgogICAgPC9nPgogICAgPHBhdGggZmlsbD0iIzk1OURBNSIgZD0iTTExIDNjLTMuODY4IDAtNyAzLjEzMi03IDdhNi45OTYgNi45OTYgMCAwIDAgNC43ODYgNi42NDFjLjM1LjA2Mi40ODItLjE0OC40ODItLjMzMiAwLS4xNjYtLjAxLS43MTgtLjAxLTEuMzA0LTEuNzU4LjMyNC0yLjIxMy0uNDI5LTIuMzUzLS44MjItLjA3OS0uMjAyLS40Mi0uODIzLS43MTctLjk5LS4yNDUtLjEzLS41OTUtLjQ1NC0uMDEtLjQ2My41NTItLjAwOS45NDYuNTA4IDEuMDc3LjcxOC42MyAxLjA1OCAxLjYzNi43NiAyLjAzOS41NzcuMDYxLS40NTUuMjQ1LS43NjEuNDQ2LS45MzYtMS41NTctLjE3NS0zLjE4NS0uNzc5LTMuMTg1LTMuNDU2IDAtLjc2Mi4yNzEtMS4zOTIuNzE4LTEuODgyLS4wNy0uMTc1LS4zMTUtLjg5Mi4wNy0xLjg1NSAwIDAgLjU4Ni0uMTgzIDEuOTI1LjcxOGE2LjUgNi41IDAgMCAxIDEuNzUtLjIzNiA2LjUgNi41IDAgMCAxIDEuNzUuMjM2YzEuMzM4LS45MSAxLjkyNS0uNzE4IDEuOTI1LS43MTguMzg1Ljk2My4xNCAxLjY4LjA3IDEuODU1LjQ0Ni40OS43MTcgMS4xMTIuNzE3IDEuODgyIDAgMi42ODYtMS42MzYgMy4yOC0zLjE5NCAzLjQ1Ni4yNTQuMjE5LjQ3My42MzkuNDczIDEuMjk1IDAgLjkzNi0uMDA5IDEuNjg5LS4wMDkgMS45MjUgMCAuMTg0LjEzMS40MDIuNDgxLjMzMkE3LjAxMSA3LjAxMSAwIDAgMCAxOCAxMGMwLTMuODY3LTMuMTMzLTctNy03eiI+PC9wYXRoPgogIDwvZz4KPC9zdmc+Cgo=" alt="R-CMD-check" /></a></p>
<!-- badges: end -->
<p>The goal of <code>rgeo</code> is to provide a unified interface for
most interactions between R and <a href="https://www.ncbi.nlm.nih.gov/geo/">GEO database</a>.</p>
<h2 id="features">Features</h2>
<ul>
<li>Low dependency and Consistent design, use <a href="https://github.com/jeroen/curl"><code>curl</code></a> to download
all files, and utilize <a href="https://github.com/Rdatatable/data.table"><code>data.table</code></a>
to implement all reading and preprocessing process. Reducing the
dependencies is the initial purpose of this package since I have
experienced several times of code running failure after updating
packages when using <a href="https://github.com/seandavi/GEOquery"><code>GEOquery</code></a>.</li>
<li>Provide a searching interface of <a href="https://www.ncbi.nlm.nih.gov/geo/">GEO database</a>, in this way,
we can filter the searching results using <code>R function</code>.</li>
<li>Provide a downloading interface of <a href="https://www.ncbi.nlm.nih.gov/geo/">GEO database</a>, in this way,
we can make full use of R to analyze GEO datasets.</li>
<li>Enable mapping bettween GPL id and Bioconductor annotation
package.</li>
<li>Provide some useful utils function to work with GEO datasets like
<code>parse_gsm_list</code>, <code>parse_pdata</code>,
<code>log_trans</code> and <code>show_geo</code>.</li>
</ul>
<h2 id="installation">Installation</h2>
<p>You can install the development version of rgeo from <a href="https://github.com/">GitHub</a> with:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a><span class="cf">if</span> (<span class="sc">!</span><span class="fu">requireNamespace</span>(<span class="st">"pak"</span>)) {</span>
<span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a> <span class="fu">install.packages</span>(<span class="st">"pak"</span>,</span>
<span id="cb1-3"><a href="#cb1-3" tabindex="-1"></a> <span class="at">repos =</span> <span class="fu">sprintf</span>(</span>
<span id="cb1-4"><a href="#cb1-4" tabindex="-1"></a> <span class="st">"https://r-lib.github.io/p/pak/devel/%s/%s/%s"</span>,</span>
<span id="cb1-5"><a href="#cb1-5" tabindex="-1"></a> .Platform<span class="sc">$</span>pkgType, <span class="fu">R.Version</span>()<span class="sc">$</span>os, <span class="fu">R.Version</span>()<span class="sc">$</span>arch</span>
<span id="cb1-6"><a href="#cb1-6" tabindex="-1"></a> )</span>
<span id="cb1-7"><a href="#cb1-7" tabindex="-1"></a> )</span>
<span id="cb1-8"><a href="#cb1-8" tabindex="-1"></a>}</span>
<span id="cb1-9"><a href="#cb1-9" tabindex="-1"></a>pak<span class="sc">::</span><span class="fu">pkg_install</span>(<span class="st">"Yunuuuu/rgeo"</span>)</span></code></pre></div>
<h2 id="vignettes">Vignettes</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a><span class="fu">library</span>(rgeo)</span>
<span id="cb2-2"><a href="#cb2-2" tabindex="-1"></a><span class="fu">library</span>(magrittr)</span></code></pre></div>
<h3 id="search-geo-database---search_geo">Search GEO database -
<code>search_geo</code></h3>
<p>The NCBI uses a search term syntax which can be associated with a
specific search field enclosed by a pair of square brackets. So, for
instance <code>"Homo sapiens[ORGN]"</code> denotes a search for
<code>Homo sapiens</code> in the <code>“Organism”</code> field. Details
see <a href="https://www.ncbi.nlm.nih.gov/geo/info/qqtutorial.html">https://www.ncbi.nlm.nih.gov/geo/info/qqtutorial.html</a>.
We can use the same term to query our desirable results in
<code>search_geo</code>. <code>search_geo</code> will parse the
searching results and return a <code>data.frame</code> object containing
all the records based on the search term. The internal of
<code>search_geo</code> is based on <a href="https://github.com/ropensci/rentrez"><code>rentrez</code></a>
package, which provides functions working with the <a href="http://www.ncbi.nlm.nih.gov/books/NBK25500/">NCBI Eutils</a> API,
so we can utilize <code>NCBI API key</code> to increase the downloading
speed, details see <a href="https://docs.ropensci.org/rentrez/articles/rentrez_tutorial.html#rate-limiting-and-api-keys">https://docs.ropensci.org/rentrez/articles/rentrez_tutorial.html#rate-limiting-and-api-keys</a>.</p>
<p>Providing we want <em><strong>GSE</strong></em> GEO records related
to <em><strong>human diabetes</strong></em>, we can get these records by
following code, the returned object is a <code>data.frame</code>:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb3-1"><a href="#cb3-1" tabindex="-1"></a>diabetes_gse_records <span class="ot"><-</span> <span class="fu">search_geo</span>(</span>
<span id="cb3-2"><a href="#cb3-2" tabindex="-1"></a> <span class="st">"diabetes[ALL] AND Homo sapiens[ORGN] AND GSE[ETYP]"</span></span>
<span id="cb3-3"><a href="#cb3-3" tabindex="-1"></a>)</span>
<span id="cb3-4"><a href="#cb3-4" tabindex="-1"></a><span class="fu">head</span>(diabetes_gse_records[<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>])</span>
<span id="cb3-5"><a href="#cb3-5" tabindex="-1"></a><span class="co">#> Title</span></span>
<span id="cb3-6"><a href="#cb3-6" tabindex="-1"></a><span class="co">#> 1 Neutrophil extracellular traps induce glomerular endothelial cell dysfunction and pyroptosis in diabetic kidney disease</span></span>
<span id="cb3-7"><a href="#cb3-7" tabindex="-1"></a><span class="co">#> 2 The expression of mRNA and lncRNA in peripheral blood mononuclear cells (PBMCs) of diabetes mellitus, diabetic retinopathy (DR), diabetic peripheral neuropathy (DPN) and diabetic nephropathy (DN) patients</span></span>
<span id="cb3-8"><a href="#cb3-8" tabindex="-1"></a><span class="co">#> 3 Mitochondrial DNA atlas reveals physiopathology of type 2 diabetes</span></span>
<span id="cb3-9"><a href="#cb3-9" tabindex="-1"></a><span class="co">#> 4 DNA methylation profiling in cord blood neonatal monocytes from women with pre-gestational obesity</span></span>
<span id="cb3-10"><a href="#cb3-10" tabindex="-1"></a><span class="co">#> 5 Transcriptomic signatures responding to PKM2 activator TEPP-46 in the hyperglycemic human renal proximal epithelial tubular cells</span></span>
<span id="cb3-11"><a href="#cb3-11" tabindex="-1"></a><span class="co">#> 6 Global microRNA and protein expression in human term placenta.</span></span>
<span id="cb3-12"><a href="#cb3-12" tabindex="-1"></a><span class="co">#> Summary</span></span>
<span id="cb3-13"><a href="#cb3-13" tabindex="-1"></a><span class="co">#> 1 Diabetic kidney disease (DKD) is the leading cause of end-stage renal disease. Neutrophil extracellular traps (NETs) are a network structure composed of loose chromatin and embedded with multiple proteins. Here, we observed increased NETs deposition in the glomeruli of DKD patients and diabetic mice (streptozotocin-induced or db/db mice). After degrading NETs with DNase I, diabetic mice exhibited attenuated glomerulopathy and glomerular endothelial cell (GEC) injury. more...</span></span>
<span id="cb3-14"><a href="#cb3-14" tabindex="-1"></a><span class="co">#> 2 DR, DPN and DN are common complications in diabetes, and the differentially expressed mRNAs and lncRNAs in these diabetic complications may help to identify the molecular markers for the onset and progression of diseases. In our study, high-throughput sequencing technique was used to analyze the expression profile of mRNA and lncRNA in the peripheral blood of health control, T2DM, DR, DPN and DN patients, in order to determine the differentially expressed transcriptomic profiles changes in diabetic complications and identify the shared and specific biological signaling pathways related to DR, DPN and DN.</span></span>
<span id="cb3-15"><a href="#cb3-15" tabindex="-1"></a><span class="co">#> 3 Type 2 diabetes (T2D), one of the most common metabolic diseases, is the result of insulin resistance or impaired insulin secretion by mitochondrial dysfunctions. Mitochondrial DNA (mtDNA) polymorphisms play an important role in physiological and pathological characteristics of T2D, however, their mechanism is poorly understood. To directly identify candidate mtDNA variants associated with T2D at the genome-wide level, we constructed forty libraries from ten patients with T2D and thirty control individuals for deep sequencing. more...</span></span>
<span id="cb3-16"><a href="#cb3-16" tabindex="-1"></a><span class="co">#> 4 Obesity represents a global burden with an increasing worldwide prevalence, especially in women of reproductive age. Obesity in women, defined as a body mass index (BMI) > 30 kg/m2, has a worldwide prevalence ~21%, however, it exceeds 30% in countries such as Chile, Mexico, United States, and the United Kingdom. Growing evidence support the notion that pre-gestational obesity confers an increased risk for the development of diabetes, obesity and chronic inflammatory diseases in the offspring later in life. more...</span></span>
<span id="cb3-17"><a href="#cb3-17" tabindex="-1"></a><span class="co">#> 5 Pyruvate kinase M2 (PKM2), as the terminal and last rate-limiting enzyme of the glycolytic pathway, is an ideal enzyme for regulating metabolic phenotype. PKM2 tetramer activation has shown a protective role against diabetic kidney disease (DKD). However, the molecular mechanisms involved in diabetic tubular has not been investigated so far. In this study, we performed transcriptome gene expression profiling in human renal proximal tubular epithelial cell line (HK-2 cells) treated with high D-glucose (HG) for 7 days before the addition of 10-μM TEPP-46, an activator of PKM2 tetramerization, for a further 1 day in the presence of HG. more...</span></span>
<span id="cb3-18"><a href="#cb3-18" tabindex="-1"></a><span class="co">#> 6 Description of the global expression of microRNAs (miRNAs) and proteins in healthy human term placentas may increase our knowledge of molecular biological pathways that are important for normal fetal growth and development in term pregnancy. The aim of this study was to explore the global expression of miRNAs and proteins, and to point out functions of importance in healthy term placentas. Placental samples (n = 19) were identified in a local biobank. more...</span></span>
<span id="cb3-19"><a href="#cb3-19" tabindex="-1"></a><span class="co">#> Organism Type</span></span>
<span id="cb3-20"><a href="#cb3-20" tabindex="-1"></a><span class="co">#> 1 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb3-21"><a href="#cb3-21" tabindex="-1"></a><span class="co">#> 2 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb3-22"><a href="#cb3-22" tabindex="-1"></a><span class="co">#> 3 Homo sapiens Genome variation profiling by high throughput sequencing</span></span>
<span id="cb3-23"><a href="#cb3-23" tabindex="-1"></a><span class="co">#> 4 Homo sapiens Methylation profiling by genome tiling array</span></span>
<span id="cb3-24"><a href="#cb3-24" tabindex="-1"></a><span class="co">#> 5 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb3-25"><a href="#cb3-25" tabindex="-1"></a><span class="co">#> 6 Homo sapiens Non-coding RNA profiling by high throughput sequencing</span></span>
<span id="cb3-26"><a href="#cb3-26" tabindex="-1"></a><span class="co">#> FTP download</span></span>
<span id="cb3-27"><a href="#cb3-27" tabindex="-1"></a><span class="co">#> 1 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE189nnn/GSE189875/</span></span>
<span id="cb3-28"><a href="#cb3-28" tabindex="-1"></a><span class="co">#> 2 GEO (GTF, TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE185nnn/GSE185011/</span></span>
<span id="cb3-29"><a href="#cb3-29" tabindex="-1"></a><span class="co">#> 3 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE136nnn/GSE136892/</span></span>
<span id="cb3-30"><a href="#cb3-30" tabindex="-1"></a><span class="co">#> 4 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE212nnn/GSE212174/</span></span>
<span id="cb3-31"><a href="#cb3-31" tabindex="-1"></a><span class="co">#> 5 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE205nnn/GSE205674/</span></span>
<span id="cb3-32"><a href="#cb3-32" tabindex="-1"></a><span class="co">#> 6 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE211nnn/GSE211791/</span></span></code></pre></div>
<p>Then, we can use whatever we’re famaliar to filter the searching
results. Providing we want GSE datasets with at least 6 diabetic
nephropathy samples containing expression profiling. Here is the example
code:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb4-1"><a href="#cb4-1" tabindex="-1"></a>diabetes_nephropathy_gse_records <span class="ot"><-</span> diabetes_gse_records <span class="sc">%>%</span></span>
<span id="cb4-2"><a href="#cb4-2" tabindex="-1"></a> dplyr<span class="sc">::</span><span class="fu">mutate</span>(</span>
<span id="cb4-3"><a href="#cb4-3" tabindex="-1"></a> <span class="at">number_of_samples =</span> stringr<span class="sc">::</span><span class="fu">str_match</span>(</span>
<span id="cb4-4"><a href="#cb4-4" tabindex="-1"></a> Contains, <span class="st">"(</span><span class="sc">\\</span><span class="st">d+) Samples?"</span></span>
<span id="cb4-5"><a href="#cb4-5" tabindex="-1"></a> )[, 2L, <span class="at">drop =</span> <span class="cn">TRUE</span>],</span>
<span id="cb4-6"><a href="#cb4-6" tabindex="-1"></a> <span class="at">number_of_samples =</span> <span class="fu">as.integer</span>(number_of_samples)</span>
<span id="cb4-7"><a href="#cb4-7" tabindex="-1"></a> ) <span class="sc">%>%</span></span>
<span id="cb4-8"><a href="#cb4-8" tabindex="-1"></a> dplyr<span class="sc">::</span><span class="fu">filter</span>(</span>
<span id="cb4-9"><a href="#cb4-9" tabindex="-1"></a> dplyr<span class="sc">::</span><span class="fu">if_any</span>(</span>
<span id="cb4-10"><a href="#cb4-10" tabindex="-1"></a> <span class="fu">c</span>(Title, Summary),</span>
<span id="cb4-11"><a href="#cb4-11" tabindex="-1"></a> <span class="sc">~</span> stringr<span class="sc">::</span><span class="fu">str_detect</span>(.x, <span class="st">"(?i)diabetes|diabetic"</span>)</span>
<span id="cb4-12"><a href="#cb4-12" tabindex="-1"></a> ),</span>
<span id="cb4-13"><a href="#cb4-13" tabindex="-1"></a> dplyr<span class="sc">::</span><span class="fu">if_any</span>(</span>
<span id="cb4-14"><a href="#cb4-14" tabindex="-1"></a> <span class="fu">c</span>(Title, Summary),</span>
<span id="cb4-15"><a href="#cb4-15" tabindex="-1"></a> <span class="sc">~</span> stringr<span class="sc">::</span><span class="fu">str_detect</span>(.x, <span class="st">"(?i)nephropathy"</span>)</span>
<span id="cb4-16"><a href="#cb4-16" tabindex="-1"></a> ),</span>
<span id="cb4-17"><a href="#cb4-17" tabindex="-1"></a> stringr<span class="sc">::</span><span class="fu">str_detect</span>(Type, <span class="st">"(?i)expression profiling"</span>),</span>
<span id="cb4-18"><a href="#cb4-18" tabindex="-1"></a> number_of_samples <span class="sc">>=</span> 6L</span>
<span id="cb4-19"><a href="#cb4-19" tabindex="-1"></a> )</span>
<span id="cb4-20"><a href="#cb4-20" tabindex="-1"></a><span class="fu">head</span>(diabetes_nephropathy_gse_records[<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>])</span>
<span id="cb4-21"><a href="#cb4-21" tabindex="-1"></a><span class="co">#> Title</span></span>
<span id="cb4-22"><a href="#cb4-22" tabindex="-1"></a><span class="co">#> 1 The expression of mRNA and lncRNA in peripheral blood mononuclear cells (PBMCs) of diabetes mellitus, diabetic retinopathy (DR), diabetic peripheral neuropathy (DPN) and diabetic nephropathy (DN) patients</span></span>
<span id="cb4-23"><a href="#cb4-23" tabindex="-1"></a><span class="co">#> 2 Secretory Leukocyte Peptidase Inhibitor (SLPI) is a Novel Predictor of Tubulointerstitial Injury and Renal Outcome in Patients with Diabetic Nephropathy</span></span>
<span id="cb4-24"><a href="#cb4-24" tabindex="-1"></a><span class="co">#> 3 Bulk RNA-seq on mouse model of diabetic nephropathy and in vitro model of SRSF7 knockdown</span></span>
<span id="cb4-25"><a href="#cb4-25" tabindex="-1"></a><span class="co">#> 4 RNA-seq profiling of tubulointerstitial tissue reveals a potential therapeutic role of dual anti-phosphatase 1 in kidney diseases</span></span>
<span id="cb4-26"><a href="#cb4-26" tabindex="-1"></a><span class="co">#> 5 Human Tubular Epithelial Cells Activate a Coordinated Stress Response after Serum Exposure [RNAseq-pid2019]</span></span>
<span id="cb4-27"><a href="#cb4-27" tabindex="-1"></a><span class="co">#> 6 Human Tubular Epithelial Cells Activate a Coordinated Stress Response after Serum Exposure [RNAseq-pid1830]</span></span>
<span id="cb4-28"><a href="#cb4-28" tabindex="-1"></a><span class="co">#> Summary</span></span>
<span id="cb4-29"><a href="#cb4-29" tabindex="-1"></a><span class="co">#> 1 DR, DPN and DN are common complications in diabetes, and the differentially expressed mRNAs and lncRNAs in these diabetic complications may help to identify the molecular markers for the onset and progression of diseases. In our study, high-throughput sequencing technique was used to analyze the expression profile of mRNA and lncRNA in the peripheral blood of health control, T2DM, DR, DPN and DN patients, in order to determine the differentially expressed transcriptomic profiles changes in diabetic complications and identify the shared and specific biological signaling pathways related to DR, DPN and DN.</span></span>
<span id="cb4-30"><a href="#cb4-30" tabindex="-1"></a><span class="co">#> 2 Tubulointerstitial injury plays an important role in diabetic nephropathy (DN) progression; however, no reliable urinary molecule has been used to predict tubulointerstitial injury and renal outcome of DN clinically. In this study, based on tubulointerstitial transcriptome, we identified secretory leukocyte peptidase inhibitor (SLPI) as the molecule associated with renal fibrosis and prognosis of DN. more...</span></span>
<span id="cb4-31"><a href="#cb4-31" tabindex="-1"></a><span class="co">#> 3 In this dataset, we utilized the db/db, uninephrectomy and renin-hypertension mouse model. We performed bulk RNA-seq and compared vehicle to ACE inhibitor, Rosiglitizone, SGLT2 inhibitor, ACEi + Rosiglitizone and ACEi + SGLT2i at two time points (2 days and 2 weeks). To study the mechanism, we also performed bulk RNA-seq on human primary tubular epithelial cells with or without SRSF7 siRNA knockdown.</span></span>
<span id="cb4-32"><a href="#cb4-32" tabindex="-1"></a><span class="co">#> 4 We profiled manually microdissected tubulointerstitial tissue from 43 IgA nephropathy, 3 diabetes mellitus nephropathy, 3 focal segmental glomerulosclerosis, 3 lupus nephritis, 4 membranous nephropathy, and 9 minimal change disease biopsy cores and 22 nephrectomy controls by RNA sequencing. The 3 outliers which were not included in our main analysis were also uploaded in this database.</span></span>
<span id="cb4-33"><a href="#cb4-33" tabindex="-1"></a><span class="co">#> 5 Proteinuria, the spillage of serum proteins into the urine, is a feature of glomerulonephritides, podocyte disorders and diabetic nephropathy. However, the response of tubular epithelial cells to serum protein exposure has not been systematically characterized. Using transcriptomic profiling we studied serum-induced changes in primary human tubular epithelial cells cultured in 3D microphysiological devices. more...</span></span>
<span id="cb4-34"><a href="#cb4-34" tabindex="-1"></a><span class="co">#> 6 Proteinuria, the spillage of serum proteins into the urine, is a feature of glomerulonephritides, podocyte disorders and diabetic nephropathy. However, the response of tubular epithelial cells to serum protein exposure has not been systematically characterized. Using transcriptomic profiling we studied serum-induced changes in primary human tubular epithelial cells cultured in 3D microphysiological devices. more...</span></span>
<span id="cb4-35"><a href="#cb4-35" tabindex="-1"></a><span class="co">#> Organism Type</span></span>
<span id="cb4-36"><a href="#cb4-36" tabindex="-1"></a><span class="co">#> 1 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-37"><a href="#cb4-37" tabindex="-1"></a><span class="co">#> 2 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-38"><a href="#cb4-38" tabindex="-1"></a><span class="co">#> 3 Mus musculus; Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-39"><a href="#cb4-39" tabindex="-1"></a><span class="co">#> 4 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-40"><a href="#cb4-40" tabindex="-1"></a><span class="co">#> 5 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-41"><a href="#cb4-41" tabindex="-1"></a><span class="co">#> 6 Homo sapiens Expression profiling by high throughput sequencing</span></span>
<span id="cb4-42"><a href="#cb4-42" tabindex="-1"></a><span class="co">#> FTP download</span></span>
<span id="cb4-43"><a href="#cb4-43" tabindex="-1"></a><span class="co">#> 1 GEO (GTF, TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE185nnn/GSE185011/</span></span>
<span id="cb4-44"><a href="#cb4-44" tabindex="-1"></a><span class="co">#> 2 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE158nnn/GSE158230/</span></span>
<span id="cb4-45"><a href="#cb4-45" tabindex="-1"></a><span class="co">#> 3 GEO (CSV) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE199nnn/GSE199437/</span></span>
<span id="cb4-46"><a href="#cb4-46" tabindex="-1"></a><span class="co">#> 4 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE175nnn/GSE175759/</span></span>
<span id="cb4-47"><a href="#cb4-47" tabindex="-1"></a><span class="co">#> 5 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE159nnn/GSE159586/</span></span>
<span id="cb4-48"><a href="#cb4-48" tabindex="-1"></a><span class="co">#> 6 GEO (TXT) ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE159nnn/GSE159554/</span></span></code></pre></div>
<p>After filtering, we got 19 candidate datasets. This can reduce a lot
of time of us comparing with refining datasets by reading the summary
records.</p>
<h3 id="download-data-from-geo-database---get_geo">Download data from
GEO database - <code>get_geo</code></h3>
<p>GEO database mainly provides SOFT (Simple Omnibus Format in Text)
formatted files for GPL, GSM and GDS entity. SOFT is designed for rapid
batch submission and download of data. SOFT is a simple line-based,
plain text format, meaning that SOFT files may be readily generated from
common spreadsheet and database applications. A single SOFT file can
hold both data tables and accompanying descriptive information for
multiple, concatenated Platforms, Samples, and/or Series records.
<code>rgeo</code> provide a <code>GEOSoft</code> class object to store
SOFT file contents, <code>GEOSoft</code> object contains four slots
(“accession”, “meta”, “datatable”, and “columns”).
<code>accession</code> slot stores the GEO accession ID,
<code>meta</code> slot contains the metadata header in the SOFT
formatted file, and <code>datatable</code> slot contains the the data
table in SOFT file which is the main data for us to use, along with a
<code>columns</code> slot providing descriptive column header for the
<code>datatable</code> data. We can use the function with the same name
of these slots to extract the data.</p>
<p><code>get_geo</code> can download SOFT files and preprocess them
well, here is some example code to get soft file from <code>GPL</code>,
<code>GSM</code> and <code>GDS</code> entity respectively.</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb5-1"><a href="#cb5-1" tabindex="-1"></a>gpl <span class="ot"><-</span> <span class="fu">get_geo</span>(<span class="st">"gpl98"</span>, <span class="fu">tempdir</span>())</span>
<span id="cb5-2"><a href="#cb5-2" tabindex="-1"></a><span class="co">#> Downloading GPL98.txt from GEO Accession Site:</span></span>
<span id="cb5-3"><a href="#cb5-3" tabindex="-1"></a>gpl</span>
<span id="cb5-4"><a href="#cb5-4" tabindex="-1"></a><span class="co">#> An object of GEOSoft</span></span>
<span id="cb5-5"><a href="#cb5-5" tabindex="-1"></a><span class="co">#> datatable: a 8934 * 16 data.frame</span></span>
<span id="cb5-6"><a href="#cb5-6" tabindex="-1"></a><span class="co">#> columns: a 16 * 1 data.frame</span></span>
<span id="cb5-7"><a href="#cb5-7" tabindex="-1"></a><span class="co">#> columnsData: labelDescription</span></span>
<span id="cb5-8"><a href="#cb5-8" tabindex="-1"></a><span class="co">#> meta: Platform_contact_address Platform_contact_city</span></span>
<span id="cb5-9"><a href="#cb5-9" tabindex="-1"></a><span class="co">#> Platform_contact_country ... Platform_title Platform_web_link (26</span></span>
<span id="cb5-10"><a href="#cb5-10" tabindex="-1"></a><span class="co">#> total)</span></span>
<span id="cb5-11"><a href="#cb5-11" tabindex="-1"></a><span class="co">#> accession: GPL98</span></span>
<span id="cb5-12"><a href="#cb5-12" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">datatable</span>(gpl))</span>
<span id="cb5-13"><a href="#cb5-13" tabindex="-1"></a><span class="co">#> ID GB_ACC SPOT_ID Species Scientific Name</span></span>
<span id="cb5-14"><a href="#cb5-14" tabindex="-1"></a><span class="co">#> AA000993_at AA000993_at AA000993 Homo sapiens</span></span>
<span id="cb5-15"><a href="#cb5-15" tabindex="-1"></a><span class="co">#> AA001296_s_at AA001296_s_at AA001296 Homo sapiens</span></span>
<span id="cb5-16"><a href="#cb5-16" tabindex="-1"></a><span class="co">#> AA002245_at AA002245_at AA002245 Homo sapiens</span></span>
<span id="cb5-17"><a href="#cb5-17" tabindex="-1"></a><span class="co">#> AA004231_at AA004231_at AA004231 Homo sapiens</span></span>
<span id="cb5-18"><a href="#cb5-18" tabindex="-1"></a><span class="co">#> AA004333_at AA004333_at AA004333 Homo sapiens</span></span>
<span id="cb5-19"><a href="#cb5-19" tabindex="-1"></a><span class="co">#> AA004987_at AA004987_at AA004987 Homo sapiens</span></span>
<span id="cb5-20"><a href="#cb5-20" tabindex="-1"></a><span class="co">#> Annotation Date Sequence Type Sequence Source</span></span>
<span id="cb5-21"><a href="#cb5-21" tabindex="-1"></a><span class="co">#> AA000993_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-22"><a href="#cb5-22" tabindex="-1"></a><span class="co">#> AA001296_s_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-23"><a href="#cb5-23" tabindex="-1"></a><span class="co">#> AA002245_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-24"><a href="#cb5-24" tabindex="-1"></a><span class="co">#> AA004231_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-25"><a href="#cb5-25" tabindex="-1"></a><span class="co">#> AA004333_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-26"><a href="#cb5-26" tabindex="-1"></a><span class="co">#> AA004987_at Mar 11, 2009 Exemplar sequence GenBank</span></span>
<span id="cb5-27"><a href="#cb5-27" tabindex="-1"></a><span class="co">#> Target Description</span></span>
<span id="cb5-28"><a href="#cb5-28" tabindex="-1"></a><span class="co">#> AA000993_at ze46h10.r1 Soares retina N2b4HR Homo sapiens cDNA clone 362083 5'.</span></span>
<span id="cb5-29"><a href="#cb5-29" tabindex="-1"></a><span class="co">#> AA001296_s_at zh82b09.r1 Soares fetal liver spleen 1NFLS S1 Homo sapiens cDNA clone 427769 5'.</span></span>
<span id="cb5-30"><a href="#cb5-30" tabindex="-1"></a><span class="co">#> AA002245_at zh85f01.r1 Soares fetal liver spleen 1NFLS S1 Homo sapiens cDNA clone 428089 5'.</span></span>
<span id="cb5-31"><a href="#cb5-31" tabindex="-1"></a><span class="co">#> AA004231_at zh92a03.r1 Soares fetal liver spleen 1NFLS S1 Homo sapiens cDNA clone 428716 5'.</span></span>
<span id="cb5-32"><a href="#cb5-32" tabindex="-1"></a><span class="co">#> AA004333_at zh91a01.r1 Soares fetal liver spleen 1NFLS S1 Homo sapiens cDNA clone 428616 5'.</span></span>
<span id="cb5-33"><a href="#cb5-33" tabindex="-1"></a><span class="co">#> AA004987_at zh94b01.r1 Soares fetal liver spleen 1NFLS S1 Homo sapiens cDNA clone 428905 5'.</span></span>
<span id="cb5-34"><a href="#cb5-34" tabindex="-1"></a><span class="co">#> Representative Public ID</span></span>
<span id="cb5-35"><a href="#cb5-35" tabindex="-1"></a><span class="co">#> AA000993_at AA000993</span></span>
<span id="cb5-36"><a href="#cb5-36" tabindex="-1"></a><span class="co">#> AA001296_s_at AA001296</span></span>
<span id="cb5-37"><a href="#cb5-37" tabindex="-1"></a><span class="co">#> AA002245_at AA002245</span></span>
<span id="cb5-38"><a href="#cb5-38" tabindex="-1"></a><span class="co">#> AA004231_at AA004231</span></span>
<span id="cb5-39"><a href="#cb5-39" tabindex="-1"></a><span class="co">#> AA004333_at AA004333</span></span>
<span id="cb5-40"><a href="#cb5-40" tabindex="-1"></a><span class="co">#> AA004987_at AA004987</span></span>
<span id="cb5-41"><a href="#cb5-41" tabindex="-1"></a><span class="co">#> Gene Title</span></span>
<span id="cb5-42"><a href="#cb5-42" tabindex="-1"></a><span class="co">#> AA000993_at PR domain containing 8</span></span>
<span id="cb5-43"><a href="#cb5-43" tabindex="-1"></a><span class="co">#> AA001296_s_at PHD finger protein 23</span></span>
<span id="cb5-44"><a href="#cb5-44" tabindex="-1"></a><span class="co">#> AA002245_at zinc finger CCCH-type containing 11A</span></span>
<span id="cb5-45"><a href="#cb5-45" tabindex="-1"></a><span class="co">#> AA004231_at </span></span>
<span id="cb5-46"><a href="#cb5-46" tabindex="-1"></a><span class="co">#> AA004333_at </span></span>
<span id="cb5-47"><a href="#cb5-47" tabindex="-1"></a><span class="co">#> AA004987_at BMP2 inducible kinase, mRNA (cDNA clone MGC:33000 IMAGE:5272264)</span></span>
<span id="cb5-48"><a href="#cb5-48" tabindex="-1"></a><span class="co">#> Gene Symbol ENTREZ_GENE_ID RefSeq Transcript ID</span></span>
<span id="cb5-49"><a href="#cb5-49" tabindex="-1"></a><span class="co">#> AA000993_at PRDM8 56978 NM_001099403 /// NM_020226</span></span>
<span id="cb5-50"><a href="#cb5-50" tabindex="-1"></a><span class="co">#> AA001296_s_at PHF23 79142 NM_024297</span></span>
<span id="cb5-51"><a href="#cb5-51" tabindex="-1"></a><span class="co">#> AA002245_at ZC3H11A 9877 NM_014827</span></span>
<span id="cb5-52"><a href="#cb5-52" tabindex="-1"></a><span class="co">#> AA004231_at </span></span>
<span id="cb5-53"><a href="#cb5-53" tabindex="-1"></a><span class="co">#> AA004333_at </span></span>
<span id="cb5-54"><a href="#cb5-54" tabindex="-1"></a><span class="co">#> AA004987_at BMP2K 55589 NM_017593 /// NM_198892</span></span>
<span id="cb5-55"><a href="#cb5-55" tabindex="-1"></a><span class="co">#> Gene Ontology Biological Process</span></span>
<span id="cb5-56"><a href="#cb5-56" tabindex="-1"></a><span class="co">#> AA000993_at 0006350 // transcription // inferred from electronic annotation /// 0006355 // regulation of transcription, DNA-dependent // inferred from electronic annotation</span></span>
<span id="cb5-57"><a href="#cb5-57" tabindex="-1"></a><span class="co">#> AA001296_s_at </span></span>
<span id="cb5-58"><a href="#cb5-58" tabindex="-1"></a><span class="co">#> AA002245_at </span></span>
<span id="cb5-59"><a href="#cb5-59" tabindex="-1"></a><span class="co">#> AA004231_at </span></span>
<span id="cb5-60"><a href="#cb5-60" tabindex="-1"></a><span class="co">#> AA004333_at </span></span>
<span id="cb5-61"><a href="#cb5-61" tabindex="-1"></a><span class="co">#> AA004987_at 0006468 // protein amino acid phosphorylation // inferred from electronic annotation</span></span>
<span id="cb5-62"><a href="#cb5-62" tabindex="-1"></a><span class="co">#> Gene Ontology Cellular Component</span></span>
<span id="cb5-63"><a href="#cb5-63" tabindex="-1"></a><span class="co">#> AA000993_at 0005622 // intracellular // inferred from electronic annotation /// 0005634 // nucleus // inferred from electronic annotation</span></span>
<span id="cb5-64"><a href="#cb5-64" tabindex="-1"></a><span class="co">#> AA001296_s_at </span></span>
<span id="cb5-65"><a href="#cb5-65" tabindex="-1"></a><span class="co">#> AA002245_at </span></span>
<span id="cb5-66"><a href="#cb5-66" tabindex="-1"></a><span class="co">#> AA004231_at </span></span>
<span id="cb5-67"><a href="#cb5-67" tabindex="-1"></a><span class="co">#> AA004333_at </span></span>
<span id="cb5-68"><a href="#cb5-68" tabindex="-1"></a><span class="co">#> AA004987_at 0005634 // nucleus // inferred from electronic annotation</span></span>
<span id="cb5-69"><a href="#cb5-69" tabindex="-1"></a><span class="co">#> Gene Ontology Molecular Function</span></span>
<span id="cb5-70"><a href="#cb5-70" tabindex="-1"></a><span class="co">#> AA000993_at 0003677 // DNA binding // inferred from electronic annotation /// 0008270 // zinc ion binding // inferred from electronic annotation /// 0046872 // metal ion binding // inferred from electronic annotation</span></span>
<span id="cb5-71"><a href="#cb5-71" tabindex="-1"></a><span class="co">#> AA001296_s_at 0005515 // protein binding // inferred from electronic annotation /// 0008270 // zinc ion binding // inferred from electronic annotation /// 0046872 // metal ion binding // inferred from electronic annotation</span></span>
<span id="cb5-72"><a href="#cb5-72" tabindex="-1"></a><span class="co">#> AA002245_at 0003676 // nucleic acid binding // inferred from electronic annotation /// 0008270 // zinc ion binding // inferred from electronic annotation /// 0046872 // metal ion binding // inferred from electronic annotation</span></span>
<span id="cb5-73"><a href="#cb5-73" tabindex="-1"></a><span class="co">#> AA004231_at </span></span>
<span id="cb5-74"><a href="#cb5-74" tabindex="-1"></a><span class="co">#> AA004333_at </span></span>
<span id="cb5-75"><a href="#cb5-75" tabindex="-1"></a><span class="co">#> AA004987_at 0000166 // nucleotide binding // inferred from electronic annotation /// 0004672 // protein kinase activity // inferred from electronic annotation /// 0004674 // protein serine/threonine kinase activity // inferred from electronic annotation /// 0005524 // ATP binding // inferred from electronic annotation /// 0016301 // kinase activity // inferred from electronic annotation /// 0016740 // transferase activity // inferred from electronic annotation</span></span>
<span id="cb5-76"><a href="#cb5-76" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">columns</span>(gpl))</span>
<span id="cb5-77"><a href="#cb5-77" tabindex="-1"></a><span class="co">#> labelDescription</span></span>
<span id="cb5-78"><a href="#cb5-78" tabindex="-1"></a><span class="co">#> ID Affymetrix Probe Set ID LINK_PRE:"https://www.affymetrix.com/LinkServlet?array=U35K&probeset="</span></span>
<span id="cb5-79"><a href="#cb5-79" tabindex="-1"></a><span class="co">#> GB_ACC GenBank Accession Number LINK_PRE:"http://www.ncbi.nlm.nih.gov/nuccore/?term="</span></span>
<span id="cb5-80"><a href="#cb5-80" tabindex="-1"></a><span class="co">#> SPOT_ID <NA></span></span>
<span id="cb5-81"><a href="#cb5-81" tabindex="-1"></a><span class="co">#> Species Scientific Name The genus and species of the organism represented by the probe set.</span></span>
<span id="cb5-82"><a href="#cb5-82" tabindex="-1"></a><span class="co">#> Annotation Date The date that the annotations for this probe array were last updated. It will generally be earlier than the date when the annotations were posted on the Affymetrix web site.</span></span>
<span id="cb5-83"><a href="#cb5-83" tabindex="-1"></a><span class="co">#> Sequence Type Indicates whether the sequence is an Exemplar, Consensus or Control sequence. An Exemplar is a single nucleotide sequence taken directly from a public database. This sequence could be an mRNA or EST. A Consensus sequence, is a nucleotide sequence assembled by Affymetrix, based on one or more sequence taken from a public database.</span></span></code></pre></div>
<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a>gsm <span class="ot"><-</span> <span class="fu">get_geo</span>(<span class="st">"GSM1"</span>, <span class="fu">tempdir</span>())</span>
<span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a><span class="co">#> Downloading GSM1.txt from GEO Accession Site:</span></span>
<span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a>gsm</span>
<span id="cb6-4"><a href="#cb6-4" tabindex="-1"></a><span class="co">#> An object of GEOSoft</span></span>
<span id="cb6-5"><a href="#cb6-5" tabindex="-1"></a><span class="co">#> datatable: a 5494 * 3 data.frame</span></span>
<span id="cb6-6"><a href="#cb6-6" tabindex="-1"></a><span class="co">#> columns: a 3 * 1 data.frame</span></span>
<span id="cb6-7"><a href="#cb6-7" tabindex="-1"></a><span class="co">#> columnsData: labelDescription</span></span>
<span id="cb6-8"><a href="#cb6-8" tabindex="-1"></a><span class="co">#> meta: Sample_anchor Sample_channel_count Sample_contact_address ...</span></span>
<span id="cb6-9"><a href="#cb6-9" tabindex="-1"></a><span class="co">#> Sample_title Sample_type (29 total)</span></span>
<span id="cb6-10"><a href="#cb6-10" tabindex="-1"></a><span class="co">#> accession: GSM1</span></span>
<span id="cb6-11"><a href="#cb6-11" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">datatable</span>(gsm))</span>
<span id="cb6-12"><a href="#cb6-12" tabindex="-1"></a><span class="co">#> TAG COUNT TPM</span></span>
<span id="cb6-13"><a href="#cb6-13" tabindex="-1"></a><span class="co">#> AAAAAAAAAA AAAAAAAAAA 17 1741.98</span></span>
<span id="cb6-14"><a href="#cb6-14" tabindex="-1"></a><span class="co">#> AAAAAAATCA AAAAAAATCA 1 102.47</span></span>
<span id="cb6-15"><a href="#cb6-15" tabindex="-1"></a><span class="co">#> AAAAAAATTT AAAAAAATTT 1 102.47</span></span>
<span id="cb6-16"><a href="#cb6-16" tabindex="-1"></a><span class="co">#> AAAAAACAAA AAAAAACAAA 1 102.47</span></span>
<span id="cb6-17"><a href="#cb6-17" tabindex="-1"></a><span class="co">#> AAAAAACTCC AAAAAACTCC 1 102.47</span></span>
<span id="cb6-18"><a href="#cb6-18" tabindex="-1"></a><span class="co">#> AAAAAATAAA AAAAAATAAA 1 102.47</span></span>
<span id="cb6-19"><a href="#cb6-19" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">columns</span>(gsm))</span>
<span id="cb6-20"><a href="#cb6-20" tabindex="-1"></a><span class="co">#> labelDescription</span></span>
<span id="cb6-21"><a href="#cb6-21" tabindex="-1"></a><span class="co">#> TAG Ten base SAGE tag,</span></span>
<span id="cb6-22"><a href="#cb6-22" tabindex="-1"></a><span class="co">#> COUNT TAG NUMBER</span></span>
<span id="cb6-23"><a href="#cb6-23" tabindex="-1"></a><span class="co">#> TPM tags per million</span></span></code></pre></div>
<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb7-1"><a href="#cb7-1" tabindex="-1"></a>gds <span class="ot"><-</span> <span class="fu">get_geo</span>(<span class="st">"GDS10"</span>, <span class="fu">tempdir</span>())</span>
<span id="cb7-2"><a href="#cb7-2" tabindex="-1"></a><span class="co">#> Downloading GDS10.soft.gz from FTP site:</span></span>
<span id="cb7-3"><a href="#cb7-3" tabindex="-1"></a>gds</span>
<span id="cb7-4"><a href="#cb7-4" tabindex="-1"></a><span class="co">#> An object of GEOSoft</span></span>
<span id="cb7-5"><a href="#cb7-5" tabindex="-1"></a><span class="co">#> datatable: a 39114 * 30 data.frame</span></span>
<span id="cb7-6"><a href="#cb7-6" tabindex="-1"></a><span class="co">#> columns: a 30 * 4 data.frame</span></span>
<span id="cb7-7"><a href="#cb7-7" tabindex="-1"></a><span class="co">#> columnsData: labelDescription subset_dataset_id subset_description</span></span>
<span id="cb7-8"><a href="#cb7-8" tabindex="-1"></a><span class="co">#> subset_type</span></span>
<span id="cb7-9"><a href="#cb7-9" tabindex="-1"></a><span class="co">#> meta: Database_email Database_institute Database_name ...</span></span>
<span id="cb7-10"><a href="#cb7-10" tabindex="-1"></a><span class="co">#> dataset_update_date dataset_value_type (21 total)</span></span>
<span id="cb7-11"><a href="#cb7-11" tabindex="-1"></a><span class="co">#> accession: GDS10</span></span>
<span id="cb7-12"><a href="#cb7-12" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">datatable</span>(gds))</span>
<span id="cb7-13"><a href="#cb7-13" tabindex="-1"></a><span class="co">#> ID_REF IDENTIFIER GSM582 GSM589 GSM583 GSM590 GSM584 GSM591 GSM585 GSM592</span></span>
<span id="cb7-14"><a href="#cb7-14" tabindex="-1"></a><span class="co">#> 1 1 1200011I18Rik 101 54 111 55 87 30 99 43</span></span>
<span id="cb7-15"><a href="#cb7-15" tabindex="-1"></a><span class="co">#> 2 2 2 26 23 30 27 19 22 32 19</span></span>
<span id="cb7-16"><a href="#cb7-16" tabindex="-1"></a><span class="co">#> 3 3 Ccdc28b NA NA NA NA NA NA NA NA</span></span>
<span id="cb7-17"><a href="#cb7-17" tabindex="-1"></a><span class="co">#> 4 4 AA014405 233 162 252 178 214 144 238 147</span></span>
<span id="cb7-18"><a href="#cb7-18" tabindex="-1"></a><span class="co">#> 5 5 Crebrf NA NA NA NA NA NA NA NA</span></span>
<span id="cb7-19"><a href="#cb7-19" tabindex="-1"></a><span class="co">#> 6 6 6 691 661 696 652 609 665 684 672</span></span>
<span id="cb7-20"><a href="#cb7-20" tabindex="-1"></a><span class="co">#> GSM586 GSM593 GSM587 GSM594 GSM588 GSM595 GSM596 GSM603 GSM597 GSM604 GSM598</span></span>
<span id="cb7-21"><a href="#cb7-21" tabindex="-1"></a><span class="co">#> 1 105 56 43 14 112 43 97 36 117 40 125</span></span>
<span id="cb7-22"><a href="#cb7-22" tabindex="-1"></a><span class="co">#> 2 24 25 14 49 32 29 31 22 26 26 35</span></span>
<span id="cb7-23"><a href="#cb7-23" tabindex="-1"></a><span class="co">#> 3 NA NA NA 7 NA 4 10 22 NA 15 NA</span></span>
<span id="cb7-24"><a href="#cb7-24" tabindex="-1"></a><span class="co">#> 4 250 166 86 22 236 139 216 112 241 130 270</span></span>
<span id="cb7-25"><a href="#cb7-25" tabindex="-1"></a><span class="co">#> 5 NA NA NA NA NA 3 NA NA NA NA NA</span></span>
<span id="cb7-26"><a href="#cb7-26" tabindex="-1"></a><span class="co">#> 6 644 679 631 596 609 606 601 557 596 580 601</span></span>
<span id="cb7-27"><a href="#cb7-27" tabindex="-1"></a><span class="co">#> GSM605 GSM599 GSM606 GSM600 GSM607 GSM601 GSM608 GSM602 GSM609</span></span>
<span id="cb7-28"><a href="#cb7-28" tabindex="-1"></a><span class="co">#> 1 45 99 1 109 38 87 18 72 16</span></span>
<span id="cb7-29"><a href="#cb7-29" tabindex="-1"></a><span class="co">#> 2 26 18 13 25 32 28 40 14 41</span></span>
<span id="cb7-30"><a href="#cb7-30" tabindex="-1"></a><span class="co">#> 3 23 NA 29 9 25 11 40 NA 22</span></span>
<span id="cb7-31"><a href="#cb7-31" tabindex="-1"></a><span class="co">#> 4 144 239 148 211 139 208 16 174 15</span></span>
<span id="cb7-32"><a href="#cb7-32" tabindex="-1"></a><span class="co">#> 5 NA NA NA NA NA NA NA NA NA</span></span>
<span id="cb7-33"><a href="#cb7-33" tabindex="-1"></a><span class="co">#> 6 554 562 561 580 568 519 562 497 564</span></span>
<span id="cb7-34"><a href="#cb7-34" tabindex="-1"></a><span class="fu">head</span>(<span class="fu">columns</span>(gds))</span>
<span id="cb7-35"><a href="#cb7-35" tabindex="-1"></a><span class="co">#> labelDescription subset_dataset_id</span></span>
<span id="cb7-36"><a href="#cb7-36" tabindex="-1"></a><span class="co">#> ID_REF Platform reference identifier <NA></span></span>
<span id="cb7-37"><a href="#cb7-37" tabindex="-1"></a><span class="co">#> IDENTIFIER identifier <NA></span></span>
<span id="cb7-38"><a href="#cb7-38" tabindex="-1"></a><span class="co">#> GSM582 Value for GSM582: NOD_S1; src: Spleen GDS10; GDS10; GDS10</span></span>
<span id="cb7-39"><a href="#cb7-39" tabindex="-1"></a><span class="co">#> GSM589 Value for GSM589: NOD_S2; src: Spleen GDS10; GDS10; GDS10</span></span>
<span id="cb7-40"><a href="#cb7-40" tabindex="-1"></a><span class="co">#> GSM583 Value for GSM583: Idd3_S1; src: Spleen GDS10; GDS10; GDS10</span></span>
<span id="cb7-41"><a href="#cb7-41" tabindex="-1"></a><span class="co">#> GSM590 Value for GSM590: Idd3_S2; src: Spleen GDS10; GDS10; GDS10</span></span>
<span id="cb7-42"><a href="#cb7-42" tabindex="-1"></a><span class="co">#> subset_description subset_type</span></span>
<span id="cb7-43"><a href="#cb7-43" tabindex="-1"></a><span class="co">#> ID_REF <NA> <NA></span></span>
<span id="cb7-44"><a href="#cb7-44" tabindex="-1"></a><span class="co">#> IDENTIFIER <NA> <NA></span></span>
<span id="cb7-45"><a href="#cb7-45" tabindex="-1"></a><span class="co">#> GSM582 spleen; NOD; diabetic tissue; strain; disease state</span></span>
<span id="cb7-46"><a href="#cb7-46" tabindex="-1"></a><span class="co">#> GSM589 spleen; NOD; diabetic tissue; strain; disease state</span></span>
<span id="cb7-47"><a href="#cb7-47" tabindex="-1"></a><span class="co">#> GSM583 spleen; Idd3; diabetic-resistant tissue; strain; disease state</span></span>
<span id="cb7-48"><a href="#cb7-48" tabindex="-1"></a><span class="co">#> GSM590 spleen; Idd3; diabetic-resistant tissue; strain; disease state</span></span></code></pre></div>
<p>For GSE entity, there is also a soft file associated with it. But the
structure is different with <code>GPL</code>, <code>GSM</code> and
<code>GDS</code> entity, <code>rgeo</code> provide
<code>GEOSeries</code> class to keep contents in GSE soft file.
Actually, a GSE soft file contains almost all contents in its subsets
soft file including both <code>GPL</code> and <code>GSM</code>, so
<code>GEOSeries</code> class provides both <code>gpl</code> and
<code>gsm</code> slots as a list of <code>GEOSoft</code>. To download
GSE soft file, we just set <code>gse_matrix</code> to <code>FALSE</code>
in <code>get_geo</code> function.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1" tabindex="-1"></a>gse <span class="ot"><-</span> <span class="fu">get_geo</span>(<span class="st">"GSE10"</span>, <span class="fu">tempdir</span>(), <span class="at">gse_matrix =</span> <span class="cn">FALSE</span>)</span>
<span id="cb8-2"><a href="#cb8-2" tabindex="-1"></a><span class="co">#> Downloading GSE10_family.soft.gz from FTP site:</span></span>
<span id="cb8-3"><a href="#cb8-3" tabindex="-1"></a><span class="co">#> Found 5 entities...</span></span>
<span id="cb8-4"><a href="#cb8-4" tabindex="-1"></a><span class="co">#> GPL4 (1 of 5 entities)</span></span>
<span id="cb8-5"><a href="#cb8-5" tabindex="-1"></a><span class="co">#> GSM571 (2 of 5 entities)</span></span>
<span id="cb8-6"><a href="#cb8-6" tabindex="-1"></a><span class="co">#> GSM572 (3 of 5 entities)</span></span>
<span id="cb8-7"><a href="#cb8-7" tabindex="-1"></a><span class="co">#> GSM573 (4 of 5 entities)</span></span>
<span id="cb8-8"><a href="#cb8-8" tabindex="-1"></a><span class="co">#> GSM574 (5 of 5 entities)</span></span>
<span id="cb8-9"><a href="#cb8-9" tabindex="-1"></a>gse</span>
<span id="cb8-10"><a href="#cb8-10" tabindex="-1"></a><span class="co">#> An object of GEOSeries</span></span>
<span id="cb8-11"><a href="#cb8-11" tabindex="-1"></a><span class="co">#> gsm: GSM571 GSM572 GSM573 GSM574</span></span>
<span id="cb8-12"><a href="#cb8-12" tabindex="-1"></a><span class="co">#> gpl: GPL4</span></span>
<span id="cb8-13"><a href="#cb8-13" tabindex="-1"></a><span class="co">#> meta: Database_email Database_institute Database_name ... Series_title</span></span>
<span id="cb8-14"><a href="#cb8-14" tabindex="-1"></a><span class="co">#> Series_type (31 total)</span></span>
<span id="cb8-15"><a href="#cb8-15" tabindex="-1"></a><span class="co">#> accession: GSE10</span></span></code></pre></div>
<p>It’s more common to use a series matrix file in our usual analysis
workflow, we can also handle it easily in <code>rgeo</code>, as what we
need to do is just set <code>gse_matrix</code> to <code>TRUE</code> in
<code>get_geo</code> function, which is also the default value. When
<code>gse_matrix</code> is <code>TRUE</code>, <code>get_geo</code> will
return a <code>ExpressionSet</code> object which can interact with lots
of Bioconductor packages. There are two parameters controling the
processing details when parsing series matrix file. When parsing
phenoData from series matrix files directly, it’s common to fail to
discern <code>characteristics_ch*</code> columns, which contain the
important traits informations of corresponding samples, since many
<code>characteristics_ch*</code> columns in series matrix files often
lacks separate strings. <code>pdata_from_soft</code>, which indicates
whether retrieve phenoData from GEO Soft file, can help handle this
problem well. When the soft file is large and we don’t want to use it,
we can set <code>pdata_from_soft</code> to <code>FALSE</code> and use
<code>parse_pdata</code> function to parse it manully. Another important
parameter is <code>add_gpl</code>, where <code>FALSE</code> indicates
<code>get_geo</code> will try to map the current GPL accession id into a
Bioconductor annotation package, then we can use the latest bioconductor
annotation package to get the up-to-date featureData, otherwise,
<code>get_geo</code> will add featureData from GPL soft file
directly.</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb9-1"><a href="#cb9-1" tabindex="-1"></a>gse_matix <span class="ot"><-</span> <span class="fu">get_geo</span>(<span class="st">"GSE10"</span>, <span class="fu">tempdir</span>())</span>
<span id="cb9-2"><a href="#cb9-2" tabindex="-1"></a><span class="co">#> Downloading GSE10_series_matrix.txt.gz from FTP site:</span></span>
<span id="cb9-3"><a href="#cb9-3" tabindex="-1"></a><span class="co">#> Downloading GSE10_family.soft.gz from FTP site:</span></span>
<span id="cb9-4"><a href="#cb9-4" tabindex="-1"></a><span class="co">#> Cannot map GPL4 to a Bioconductor annotation package</span></span>
<span id="cb9-5"><a href="#cb9-5" tabindex="-1"></a><span class="co">#> • Setting `add_gpl` to `TRUE`</span></span>
<span id="cb9-6"><a href="#cb9-6" tabindex="-1"></a><span class="co">#> Downloading GPL4.annot.gz from FTP site:</span></span>
<span id="cb9-7"><a href="#cb9-7" tabindex="-1"></a><span class="co">#> </span></span>
<span id="cb9-8"><a href="#cb9-8" tabindex="-1"></a><span class="co">#> annot file in FTP site for GPL4 is not available, so will use data amount of SOFT file from GEO Accession Site instead.</span></span>
<span id="cb9-9"><a href="#cb9-9" tabindex="-1"></a><span class="co">#> Downloading GPL4.txt from GEO Accession Site:</span></span>
<span id="cb9-10"><a href="#cb9-10" tabindex="-1"></a>gse_matix</span>
<span id="cb9-11"><a href="#cb9-11" tabindex="-1"></a><span class="co">#> ExpressionSet (storageMode: lockedEnvironment)</span></span>
<span id="cb9-12"><a href="#cb9-12" tabindex="-1"></a><span class="co">#> assayData: 96903 features, 4 samples </span></span>
<span id="cb9-13"><a href="#cb9-13" tabindex="-1"></a><span class="co">#> element names: exprs </span></span>
<span id="cb9-14"><a href="#cb9-14" tabindex="-1"></a><span class="co">#> protocolData: none</span></span>
<span id="cb9-15"><a href="#cb9-15" tabindex="-1"></a><span class="co">#> phenoData</span></span>
<span id="cb9-16"><a href="#cb9-16" tabindex="-1"></a><span class="co">#> sampleNames: GSM571 GSM572 GSM573 GSM574</span></span>
<span id="cb9-17"><a href="#cb9-17" tabindex="-1"></a><span class="co">#> varLabels: anchor channel_count ... type (32 total)</span></span>
<span id="cb9-18"><a href="#cb9-18" tabindex="-1"></a><span class="co">#> varMetadata: labelDescription</span></span>
<span id="cb9-19"><a href="#cb9-19" tabindex="-1"></a><span class="co">#> featureData</span></span>
<span id="cb9-20"><a href="#cb9-20" tabindex="-1"></a><span class="co">#> featureNames: AAAAAAAAAA AAAAAAAAAC ... TTTTTTTTTT (96903 total)</span></span>
<span id="cb9-21"><a href="#cb9-21" tabindex="-1"></a><span class="co">#> fvarLabels: TAG GI</span></span>
<span id="cb9-22"><a href="#cb9-22" tabindex="-1"></a><span class="co">#> fvarMetadata: labelDescription</span></span>
<span id="cb9-23"><a href="#cb9-23" tabindex="-1"></a><span class="co">#> experimentData: use 'experimentData(object)'</span></span>
<span id="cb9-24"><a href="#cb9-24" tabindex="-1"></a><span class="co">#> pubMedIds: 11756676 </span></span>
<span id="cb9-25"><a href="#cb9-25" tabindex="-1"></a><span class="co">#> Annotation: GPL4</span></span></code></pre></div>
<div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb10-1"><a href="#cb10-1" tabindex="-1"></a>gse_matrix_with_pdata <span class="ot"><-</span> <span class="fu">get_geo</span>(</span>
<span id="cb10-2"><a href="#cb10-2" tabindex="-1"></a> <span class="st">"gse53987"</span>, <span class="fu">tempdir</span>(),</span>