【生信技能树2020-10-31】单细胞数据挖掘学习笔记-1.1 下载、探索数据

【生信技能树2020-10-31】单细胞数据挖掘学习笔记-1.1 下载、探索数据生信技能树-单细胞数据挖掘学习笔记2.1

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1.1 下载、探索数据

对照视频教材:

「生信技能树」单细胞数据挖掘_哔哩哔哩_bilibili

代码资源可在腾讯微云网盘上寻找:文件分享
 

本例从P4 2.1开始进行笔记记录及整理。本文档主要是操作中的细节补充,相应的代码及思路在原始的代码中已经注明,因此无需特殊补充。

文件下载 例如GSE84465,可于GEO网页上寻找

下载csv.gz文件,download的http网址即可

先基于setup0安装所有的包。

注意工作文档和下载下的文件最好在一个文件夹下,方便后续调取取用。

看1-4列及1-4行初步看一下基因表达矩阵。

列名此时是sample,是根据sample情况决定的。行名是symbol ID。

后续是对矩阵进行基本描述

### 1、下载、探索、整理数据----
## 1.1 下载、探索数据
#https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE84465
sessionInfo()
# 读取文件耗时比较长,请耐心等待
a <- read.table("../../rawdata/GSE84465_GBM_All_data.csv.gz")
a[1:4,1:4]
#行名为symbol ID
#列名为sample,看上去像是两个元素的组合。
summary(a[,1:4]) 
boxplot(a[,1:4])
head(rownames(a))
tail(rownames(a),10)
# 可以看到原文的counts矩阵来源于htseq这个计数软件,所以有一些不是基因的行需要剔除:
#  "no_feature"           "ambiguous"   

Jetbrains全家桶1年46,售后保障稳定

# 需注意在GEO网页原文中寻找counts数的来源,用什么样的测序技术及计数软件和技术,本例中使用htseq来计数,会存在非基因的行(最后5行)。因此可以去掉最后5行。

# 可以看到原文的counts矩阵来源于htseq这个计数软件,所以有一些不是基因的行需要剔除:
#  "no_feature"           "ambiguous"            "too_low_aQual"        "not_aligned"          "alignment_not_unique"
tail(a[,1:4],10)

a=a[1:(nrow(a)-5),]

【关于基因注释的基本概念可参见网络材料教程,基本就是利用各类测序数据的基因序列应当相似的原理,注释到相应的基因,进而基于GO库来识别该基因的位置、分子功能与参与的通路】

【关于htseq,GFF/GTF的基本概念可参见:mRNA-seq学习(三):htseq-count计数 – 简书、GTF/GFF文件的差异及其相互转换 – 简书

【在CSDN中查询相应概念也是很好的方法。】

后续需明确细胞来源及类型,哪些是肿瘤或者正常组织细胞。该内容可在GEO数据库的样本下面SRA RUN Selector处获取。打开网页后即可看到patient_ID以及tissue便是组织细胞来源。此时plate.ID+Well便是每一个sample(列)样本的组合名称。
(具体可打开网址:https://www.ncbi.nlm.nih.gov/Traces/study/?acc=PRJNA330719&o=acc_s%3Aa

此时提供meta数据予以标注该类信息。将之可以下载下来。

检查原始的counts数据

#原始counts数据

#3,589 cells of 4 human primary GBM samples, accession number GSE84465
#2,343 cells from tumor cores and 1,246 cells from peripheral regions
b <- read.table("../../rawdata/SraRunTable.txt",
                sep = ",", header = T)
b[1:4,1:4]
table(b$Patient_ID) # 4 human primary GBM samples
table(b$TISSUE) # tumor cores and peripheral regions
table(b$TISSUE,b$Patient_ID)
## 1.2 整理数据 
# tumor and peripheral 分组信息
head(colnames(a))
head(b$plate_id)
head(b$Well)
#a矩阵行名(sample)并非为GSM编号,而主要是由相应的plate_id与Well组合而成

b.group <- b[,c("plate_id","Well","TISSUE","Patient_ID")]
paste0("X",b.group$plate_id[1],".",b.group$Well[1])
b.group$sample <- paste0("X",b.group$plate_id,".",b.group$Well)
head(b.group)
identical(colnames(a),b.group$sample)

整理数据,首先先看转录组矩阵的名称和meta数据的矩阵名称是否一致。

b[]可以将其中需要的信息提取出来。

paste0()将这些名名称进行黏贴,检查是不是黏贴后与表达矩阵的格式一致。

将所有sample黏贴,然后制造一个新的sample列,对其进行检查。

identical()检查是否所有元素均为一致:a的每个colnames(每个样本的名字)与b.group中每个sample名是否一致。

# 筛选tumor cell
index <- which(b.group$TISSUE=="Tumor")
length(index)
group <- b.group[index,] #筛选的是行
head(group)

a.filt <- a[,index] #筛选的是列
dim(a.filt)
identical(colnames(a.filt),group$sample)

sessionInfo()

which函数筛选metadata中的是tumor的行的信息

【此时用mode查看b.group可以发现b.group是list,class()查看可以发现是dataframe,因此which函数所返回的是一个索引值即为行的索引数】

length来确认此时的index数量是对的。

从b.group中来筛选相应行数的值,并予以head查看

因为前文中每个colnames的顺序与b.group的的sample顺序是一致的,因此index在表达矩阵的列顺序与colnames一致。

dim用以查看该矩阵的行列数量。dim可以查看该数据集的维度的问题。

最后进行identical的确认。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210041.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月29日 上午8:22
下一篇 2025年7月29日 上午9:01


相关推荐

  • Mybatis分页插件的使用

    Mybatis分页插件的使用Mybatis 分页插件使用

    2026年3月26日
    1
  • ABAP开发关键字总结

    ABAP开发关键字总结关健字是语句的第一个词 它决定整个语句的意义 有四种不同类型的关健字 nbsp nbsp 1 说明性关健字 nbsp nbsp nbsp nbsp nbsp TYPES DATA TABLES 这些关健字说明定义数据类型或者说明程序可以访问的数据对象 nbsp nbsp nbsp nbsp nbsp TYPES nbsp nbsp nbsp nbsp 用来定义数据结构类型 nbsp nbsp nbsp nbsp nbsp nbsp DATA nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 用来定义数据结构对象 nbsp nbsp nbsp nbsp nbsp nbsp TABLES nbsp 用来声明 Table nbsp

    2026年3月19日
    1
  • Docker Compose 部署 OpenClaw,并使用 XAI Router 的 MiniMax-M2.1

    Docker Compose 部署 OpenClaw,并使用 XAI Router 的 MiniMax-M2.1

    2026年3月13日
    2
  • 【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」

    【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」volatile一定能保证线程安全吗?禁止指令重排序volatile禁止指令重排序的原理。JMM就是Java内存模型(javamemorymodel)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到……………

    2025年9月15日
    9
  • win10中修改mac地址(总有一款适合你)

    win10中修改mac地址(总有一款适合你)我的解决办法如下:先上图:下面转自:Win10秘笈:两种方式修改网卡物理地址(MAC)https://www.ithome.com/html/win10/244510.htm在修改之前,可以先确定一下要修改的网卡MAC地址,查询方法有很多种,比如:1、在设置→网络和Internet→WLAN/以太网,如下图——2、在控制

    2022年5月12日
    86
  • java二维数组初始化为0_怎样把java二维数组初始化为0

    java二维数组初始化为0_怎样把java二维数组初始化为0展开全部新new出来的二维数组就是已经初始为0了,或者利62616964757a686964616fe58685e5aeb931333337623462用循环依次赋值0;例如:publicclassMain{publicstaticvoidmain(String[]args){inta[][]=newint[5][5];for(inti=0;i<5;i++){for…

    2022年5月25日
    90

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号