生信小白开始接活——文本处理(三)

经过前几天的学习,终于到了文本处理完结篇,就是站在前人的肩膀上处理自己的数据,如下黄框中的数据(GSE178341),处理数据的过程艰辛异常,主要是没有R语言的思维,代码看得懂,但是不会用,只能照葫芦画瓢。


1.png

打开GEO界面,一共181个样本,所有的样本都在1个hd5文件中,从181个样本中统计其中8个样本,问题:1、怎样读取hd5文件 2、拆分逻辑(和上篇有异曲同工之妙)


2.png

OK,让我们开始代码之旅吧!

下载和读取数据

1、下载数据

wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSE178nnn/GSE178341/suppl/GSE178341_crc10x_full_c295v4_submit.h5

2、读取hd5文件
tips:关于hdf5r包的安装,之前无论用install还是BiocManager都缺少文件,后来险中求胜,用了conda安装,引用了下述的安装网址

R Hdf5R :: Anaconda.org

上篇有说过,在 Seurat 中,对于 Cellranger 数据的导入,它提供了两个函数 Read10X 和 Read10X_h5。前者用于读取 Cellranger 生成的 3 个文件:barcodes.tsv,features.tsv,matrix.mtx,后者则用于读取生成的 xxxxxx.h5文件,这里我们应用Read10X_h5函数就行

R
library(Seurat)
a <- Read10X_h5("/home/shpc_a98ef85f8f/SingleronTest/wuxuan/Jun/GSE178341_crc10x_full_c295v4_submit.h5")
a <- CreateSeuratObject(a)
head(a@meta.data, 8)
                                       orig.ident nCount_RNA nFeature_RNA
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT       C103      15093         2953
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT       C103       1156          407
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG       C103      50243         6522
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT       C103      16254         3363
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC       C103      42007         6151
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT       C103       1937          898
C103_T_1_1_0_c1_v2_id-AAACCTGTCGTACGGC       C103       1812          659
C103_T_1_1_0_c1_v2_id-AAACCTGTCTTGCAAG       C103       6816         1300
tail(a@meta.data, 8)
                                        orig.ident nCount_RNA nFeature_RNA
C173_T_0_0_0_c1_v3_id-TTTGGAGAGGGCGAGA       C173       1400          570
C173_T_0_0_0_c1_v3_id-TTTGGAGAGTGATAAC       C173       1676          860
C173_T_0_0_0_c1_v3_id-TTTGGAGCAGCACGAA       C173      10529         2727
C173_T_0_0_0_c1_v3_id-TTTGGAGTCATCGGGC       C173      10047         3009
C173_T_0_0_0_c1_v3_id-TTTGGAGTCTAGTGTG       C173      19533         4219
C173_T_0_0_0_c1_v3_id-TTTGTTGCAGCAATTC       C173       1723          772
C173_T_0_0_0_c1_v3_id-TTTGTTGGTTCTGAGT       C173       1267          506
C173_T_0_0_0_c1_v3_id-TTTGTTGTCGTTCCCA       C173      39137         5151
table(a@meta.data$orig.ident) #查看细胞数?
 C103  C104  C105  C106  C107  C109  C110  C111  C112  C113  C114  C115  C116 
 6096  2886  3281  3392  7215  4244  5033  5044  6425  5088  4553  1995  5234 
 C118  C119  C122  C123  C124  C125  C126  C129  C130  C132  C133  C134  C135 
 3211  1534  7060 14572 16945 12660 12914 12577 11327  7570  3853  7675  5621 
 C136  C137  C138  C139  C140  C142  C143  C144  C145  C146  C147  C149  C150 
 6609  5774  3408 10468  6179  5140  6359  3899  3091  4731  3801  4015  2418 
 C151  C152  C153  C154  C155  C156  C157  C158  C159  C160  C161  C162  C163 
 3873  3224  4860  3049  6448  3975  8152  2352  2437  3826  3755 22587  4717 
 C164  C165  C166  C167  C168  C169  C170  C171  C172  C173 
 3760  4524  5527  1443  2552  2245 12522 16199  1542  2649 

拆分数据

1、利用tidyverse函数拆分数据

library(tidyverse)
a@meta.data$BC <- rownames(a@meta.data) #增加一列BC
head(a@meta.data)
                                       orig.ident nCount_RNA nFeature_RNA
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT       C103      15093         2953
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT       C103       1156          407
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG       C103      50243         6522
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT       C103      16254         3363
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC       C103      42007         6151
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT       C103       1937          898
                                                                           BC
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT

2、继续拆分

str_split(a$BC,'_id-',simplify=T) 
 [49995,] "C114_N_1_1_2_c1_v2"  "TAAGCGTTCGTACGGC"
 [49996,] "C114_N_1_1_2_c1_v2"  "TAAGTGCCACGGTAAG"
 [49997,] "C114_N_1_1_2_c1_v2"  "TAAGTGCCAGCTGTAT"
 [49998,] "C114_N_1_1_2_c1_v2"  "TAAGTGCGTTACGTCA"
 [49999,] "C114_N_1_1_2_c1_v2"  "TAAGTGCTCATCTGCC"
 [ reached getOption("max.print") -- omitted 320116 rows ]

str_split(a$BC,'_id-',simplify=T) %>% head()
     [,1]                 [,2]              
[1,] "C103_T_1_1_0_c1_v2" "AAACCTGCATGCTAGT"
[2,] "C103_T_1_1_0_c1_v2" "AAACCTGGTAGCCTAT"
[3,] "C103_T_1_1_0_c1_v2" "AAACCTGGTTGTCGCG"
[4,] "C103_T_1_1_0_c1_v2" "AAACCTGTCATGTGGT"
[5,] "C103_T_1_1_0_c1_v2" "AAACCTGTCCTTGGTC"
[6,] "C103_T_1_1_0_c1_v2" "AAACCTGTCGGATGTT"
a$Sample<- str_split(a$BC,'_id-',simplify=T)[,1]
a$rawBC <- str_split(a$BC,'_id-',simplify=T)[,2] 
head(a@meta.data)
                                       orig.ident nCount_RNA nFeature_RNA
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT       C103      15093         2953
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT       C103       1156          407
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG       C103      50243         6522
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT       C103      16254         3363
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC       C103      42007         6151
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT       C103       1937          898
                                                                           BC
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT
                                                   Sample            rawBC
C103_T_1_1_0_c1_v2_id-AAACCTGCATGCTAGT C103_T_1_1_0_c1_v2 AAACCTGCATGCTAGT
C103_T_1_1_0_c1_v2_id-AAACCTGGTAGCCTAT C103_T_1_1_0_c1_v2 AAACCTGGTAGCCTAT
C103_T_1_1_0_c1_v2_id-AAACCTGGTTGTCGCG C103_T_1_1_0_c1_v2 AAACCTGGTTGTCGCG
C103_T_1_1_0_c1_v2_id-AAACCTGTCATGTGGT C103_T_1_1_0_c1_v2 AAACCTGTCATGTGGT
C103_T_1_1_0_c1_v2_id-AAACCTGTCCTTGGTC C103_T_1_1_0_c1_v2 AAACCTGTCCTTGGTC
C103_T_1_1_0_c1_v2_id-AAACCTGTCGGATGTT C103_T_1_1_0_c1_v2 AAACCTGTCGGATGTT
Leo <- SplitObject(a,split.by='Sample')
Leo
$C172_T_0_0_0_c1_v3
An object of class Seurat 
43113 features across 1542 samples within 1 assay 
Active assay: RNA (43113 features, 0 variable features)

$C173_T_0_0_0_c1_v3
An object of class Seurat 
43113 features across 2649 samples within 1 assay 
Active assay: RNA (43113 features, 0 variable features)

至此,数据拆分结束

统计数据

Leo$C162_N_0_0_0_c2_v2 -> GSM5388125
median(GSM5388125 @meta.data$nFeature_RNA)
[1] 944
median(GSM5388125 @meta.data$nCount_RNA)
[1] 3715.5
GSM5388125[["percent.mt"]] <- PercentageFeatureSet( GSM5388125, pattern = "^MT-")
median(GSM5388125@meta.data$percent.mt)
[1] 5.834534
MT5 <- subset(GSM5388125,percent.mt < 5)
MT5
An object of class Seurat 
43113 features across 1357 samples within 1 assay 
Active assay: RNA (43113 features, 0 variable features)
MT30 <- subset(GSM5388125,percent.mt < 30)
MT30
An object of class Seurat 
43113 features across 2880 samples within 1 assay 
Active assay: RNA (43113 features, 0 variable features)

终于统计完了 这周KPI圆满结束 ,下周继续更新富集分析
周末愉快

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容