哈佛大学单细胞课程|笔记汇总 (三)

哈佛大学单细胞课程|笔记汇总 (一)

哈佛大学单细胞课程|笔记汇总 (二)

听哈佛大神讲怎么做单细胞转录组GSEA分析

(三)Single-cell RNA-seq: Quality control set-up

图片

在生成count矩阵后,我们需要对其进行QC分析,并将其导入R进行后续分析:

探索示例集

该数据集来自Kang et al, 2017(https://www.nature.com/articles/nbt.4042)的文章,是八名狼疮患者的PBMC(`Peripheral Blood Mononuclear Cells`)数据,将其分为对照组和干扰素beta处理(刺激)组。

图片

Image credit: Kang et al, 2017(https://www.nature.com/articles/nbt.4042)

Raw data

研究团队发现GEO (GSE96583:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE96583)提供的矩阵缺少线粒体的reads,因此从SRA (SRP102802:https://www-ncbi-nlm-nih-gov.ezp-prod1.hul.harvard.edu/sra?term=SRP102802)下载BAM文件,然后转化为FASTQ文件,并使用`Cell Ranger`(https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger)获得count矩阵。

NOTE:  The counts for this dataset is also freely available from 10X Genomics and is used as part of the Seurat tutorial(https://satijalab.org/seurat/v3.0/immune_alignment.html).(我说我咋这么眼熟。。。)

Metadata

样品属性相关信息也叫metadata。关于以上数据的metadata如下:

  • 使用10X Genomics版本2化学试剂制备文库;

  • 样品使用Illumina NextSeq 500测序;

  • 将来自八名狼疮患者的PBMC样本分别分成两等份:

    • 一份用100 U/mL重组IFN-β激活PBMC,处理时间为6小时。

    • 另一份样品未经处理。

    • 6小时后,将不同条件的8个样品一起收集起来(受激细胞和对照细胞)。

  • 分别鉴定了1213812167个细胞(去除doublets后)作为对照样品和刺激后的合并样品。

  • 由于样品是PBMC,因此我们期望有免疫细胞,例如:

    • B cells

    • T cells

    • NK cells

    • monocytes

    • macrophages

    • possibly megakaryocytes

It is recommended that you have some expectation regarding the cell types you expect to see in a dataset prior to performing the QC. This will inform you if you have any cell types with low complexity (lots of transcripts from a few genes) or cells with higher levels of mitochondrial expression. This will enable us to account for these biological factors during the analysis workflow.

上述细胞类型都不预估有低复杂度 (少部分基因表达大部分转录本)或高线粒体含量。

设置R环境

为了更好的管理数据,使得整个项目具有组织性,先创建一个项目叫“single_cell_rnaseq”,然后构建以下目录:

single_cell_rnaseq/
├── data
├── results
└── figures

下载数据

  • Control sample (https://www.dropbox.com/sh/73drh0ipmzfcrb3/AADMlKXCr5QGoaQN13-GeKSa?dl=1)

  • Stimulated sample (https://www.dropbox.com/sh/cii4j356moc08w5/AAC2c3jfvh2hHWPmEaVsZKRva?dl=1)

解压数据后新建一个R脚本,命名为“quality_control.R”,并且保证整个的工作目录看起来像这样:

图片

加载R包

library(SingleCellExperiment)
library(Seurat)
library(tidyverse)
library(Matrix)
library(scales)
library(cowplot)
library(RCurl)

加载count矩阵

一共有3个文件,分别为:cell IDsgene IDsmatrix of counts(每个细胞的每个基因)。

  • barcodes.tsv:这是一个文本文件,其中包含该样品存在的所有细胞条形码。条形码以矩阵文件中显示的数据顺序列出(这些是列名)。

图片

  • features.tsv:这是一个文本文件,其中包含定量基因的标识符。标识符的来源可能会有所不同,具体取决于定量过程中使用的参考(即EnsemblNCBIUCSC),大多数情况下这些都是官方gene symbol。这些基因的顺序与矩阵文件中各行的顺序相对应(这些是行名)。

图片

  • matrix.mtx:注意该矩阵中有许多zero values

图片

有两种方法可以进行矩阵读入,分别为readMM()Read10X()

  1. readMM(): This function is from the Matrix package and will turn our standard matrix into a sparse matrix. The features.tsv file and barcodes.tsv must first be individually loaded into R and then they are combined. For specific code and instructions on how to do this please see our additional material(https://github.com/hbctraining/scRNA-seq/blob/master/lessons/readMM_loadData.md).

  2. Read10X(): This function is from the Seurat package and will use the Cell Ranger output directory as input. In this way individual files do not need to be loaded in, instead the function will load and combine them into a sparse matrix for you. We will be using this function to load in our data!

Reading in a single sample (read10X())

我们通常使用Read10X()。原因就要从头说起了,一般在软件Cell Ranger处理10X数据后会生成一个outs目录,在outs文件夹中有这样几个文件:

  • web_summary.html: 包括许多QC指标,预估细胞数,比对率等;

  • BAM alignment files:用于可视化比对的reads和重新创建FASTQ文件;

  • filtered_feature_bc_matrix: 经过Cell Ranger过滤后构建矩阵所需要的所有文件;

  • raw_feature_bc_matrix: 未过滤的可以用于构建矩阵的文件;

如果你有一个单个样本的话,可以直接构建a Seurat object(https://github.com/satijalab/seurat/wiki/Seurat):

# How to read in 10X data for a single sample (output is a sparse matrix)
ctrl_counts <- Read10X(data.dir = "data/ctrl_raw_feature_bc_matrix")# Turn count matrix into a Seurat object (output is a Seurat object)
ctrl <- CreateSeuratObject(counts = ctrl_counts,min.features = 100)

NOTE: The min.features argument specifies the minimum number of genes that need to be detected per cell. This argument will filter out poor quality cells that likely just have random barcodes encapsulated without any cell present. Usually, cells with less than 100 genes detected are not considered for analysis.

在使用Read10X()函数读取数据时,Seurat会为每个细胞自动创建metadata,存储在meta.data slot

The Seurat object is a custom list-like object that has well-defined spaces to store specific information/data. You can find more information about the slots in the Seurat object at this link:https://github.com/satijalab/seurat/wiki/Seurat.

# Explore the metadata
head(ctrl@meta.data)

metadata 的每一列代表什么呢?

  • orig.ident: 细胞聚类的cluster,含有样本的身份信息(已知的情况下);

  • nCount_RNA: 每个细胞的UMI数目;

  • nFeature_RNA: 检测到的每个细胞中的genes数目。

使用for循环对多个数据进行读入
# Create each individual Seurat object for every sample
for (file in c("ctrl_raw_feature_bc_matrix", "stim_raw_feature_bc_matrix")){seurat_data <- Read10X(data.dir = paste0("data/", file))seurat_obj <- CreateSeuratObject(counts = seurat_data,min.features = 100,project = file)assign(file, seurat_obj)
}

于是分别形成了ctrl_raw_feature_bc_matrixstim_raw_feature_bc_matrix两个seurat对象,使用merge函数对不同数据进行合并:

# Create a merged Seurat object
merged_seurat <- merge(x = ctrl_raw_feature_bc_matrix,y = stim_raw_feature_bc_matrix,add.cell.id = c("ctrl", "stim"))

因为相同的细胞ID可以用于不同的样本,所以我们使用add.cell.id参数为每个细胞ID添加特定于样本的前缀。如果我们查看合并对象的metadata,我们应该能够在行名中看到前缀:

# Check that the merged object has the appropriate sample-specific prefixes
head(merged_seurat@meta.data)
tail(merged_seurat@meta.data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/392738.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于大数据的混合音乐推荐系统的设计与设计(论文+源码)_kaic

摘 要 随着数据的不断增长和用户对随听随播的收听方式的习惯&#xff0c;开发一款音乐推荐系统变得越来越必要。为了满足这一需求&#xff0c;本论文采用Java语言、Vue以及数据库MySQL进行开发。系统的主要功能包括登录注册、音乐分类管理、音乐推荐管理、音乐资讯管理、音乐库…

PCIe学习笔记(16)

层次结构&#xff08;Hierarchy&#xff09;ID Message &#xff08;PCIe I/O 互连的树形拓扑结构称为 PCIe 的 Hierarchy&#xff0c;或称层级、层次&#xff08;不是事务层、数据链路层的“层”&#xff09;。层次区域是指与 RC 某一 RP 相关联的所有设备和链路组成的线路结…

微服务之SpringAMQP详解

目录 前言 1. 概述 2. Basic Queue简单队列模型 2.1 消息发送 2.2 消息接收 2.3 总结 3. WorkQueue模型 3.1 消息发送 3.2 消息接收 3.3 测试 3.4 消费预取限制 3.5 总结 4. 发布、订阅 5. Fanout 5.1 声明队列和交换机 5.2 消息发送 5.3 消息接收 5.4 测试 5…

Linux常用命令学习

常用apt命令. apt&#xff08;Advanced Packaging Tool&#xff09;是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令&#xff0c;而且命令简洁而又好记。 apt 命令执行需要超级管理员权限(ro…

【Java】Java泛型、集合、UML统一建模语言、final关键字

昨天在昆仑巢&#xff0c;下午练习Spring Boot的过滤器Filter。 昨天傍晚开始阅读《疯狂Java讲义(第2版)》&#xff0c;熟悉了UML建模语言、Final修饰符、List集合和泛型。 1.UML建模语言: 13种图&#xff0c;常用的包括用例图、类图、组件图、部署图、顺序图、活动图和状态机…

JVM结构、架构与生命周期总结

【1】JVM结构 不同厂商的JVM产品 &#xff1a; 厂商JVMOracle-SUNHotspotOracleJRocketIBMJ9 JVM阿里Taobao JVM HotSpot VM是目前市面上高性能虚拟机的代表作之一。它采用解释器与即时编译器并存的架构。 在今天&#xff0c;Java程序的运行性能早已脱胎换骨&#xff0c;已…

文章管理接口——里面有动态SQL编写,在分页查询里

1.实体类和表结构 2. 新增文章分类 接口文档 实现 完整代码放在校验部分 结果&#xff1a; 参数校验&#xff08;Validation自定义&#xff09; 对state的校验&#xff08;已发布|草稿&#xff09;&#xff0c;已有的注解不能满足校验需求&#xff0c;这时就需要自定义校验注解…

[Bugku] web-CTF靶场系列系列详解④!!!

平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台&#xff0c;部分赛题采用动态FLAG形式&#xff0c;避免直接抄袭答案。 平台有题库、赛事预告、工具库、Writeup库等模块。 --------------------------------- eval 开启环境&#xff1a; 进入页面发现是一道php题&…

如何用 ChatGPT 提升学术写作:15 个高效提示

在本文&#xff0c;我们详细探讨了如何利用 ChatGPT 提升学术写作的各个方面。我们帮助学术作者通过生成创意点子、构建论证结构、克服写作障碍以及格式化引用&#xff0c;从而显著提升其学术论文的质量。这 15 条提示不仅可以单独使用&#xff0c;还可作为学习的良好范例。 本…

集合基础知识及练习

import java.util.ArrayList;public class Solution {//将字符串转化为整数public static void main(String[] args) {ArrayList<String> listnew ArrayList();list.add("aaa");list.add("aaa");list.add("bbb");list.add("ccc"…

Occlusion in Augmented Reality

1.Occlusion in Augmented Reality 笔记来源&#xff1a; 1.Occlusion handling in Augmented Reality context 2.Occlusion in Augmented Reality 3.Real-Time Occlusion Handling in Augmented Reality Based on an Object Tracking Approach 4.Occlusion Matting: Realisti…

JavaWeb——CSS的使用

CSS 层叠样式表(英文全称:(cascading stle sheets)能够对网页中元素位置的排版进行像素级精确控制&#xff0c;支持几乎所有的字体字号样式&#xff0c;拥有对网页对象和模型样式编辑的能力,简单来说,CSS用来美化页面 一、CSS的引入方式: 1.行内式&#xff1a;通过元素开始标…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub&#xff0c;可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统&#xff0c;并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

用于相位解包的卷积和空间四向 LSTM 联合网络

原文&#xff1a;A Joint Convolutional and Spatial Quad-Directional LSTM Network for Phase Unwrapping 作者&#xff1a;Malsha V. Perera 和 Ashwin De Silva 摘要&#xff1a; 相位展开是一个经典的病态问题&#xff0c;其目标是从包裹相位中恢复真实的相位。本文&…

RAG前沿技术/解决方案梳理

RAG前沿技术/解决方案梳理 BenchmarkRetrievalAdaptive-RAGDR-RAGRichRAGGenRT Critique/ReasoningSelf-RAGCorrective RAGSpeculative RAGPlanRAGSelf-ReasoningReSP MemorySelfmemHippoRAG Query RewriteRaFe SummaryRefiner 个人理解 对当前RAG的学术研究&#xff08;或者好…

SAP 接口PO(PI,XI)在ECC端日志记录及显示

在接口的处理中通常会需要记录日志&#xff0c;而如果是与PO(PI,XI)做的接口的话&#xff0c;可以使用事务码SXI_MONITOR – XI&#xff1a;消息监控&#xff0c;来查询日志&#xff0c;但对于一些有加密&#xff0c;或者在业务接口功能上想直接查询报文日志时&#xff0c;会在…

使用 MinIO、Langchain 和 Ray Data 构建分布式嵌入式子系统

嵌入子系统是实现检索增强生成所需的四个子系统之一。它将您的自定义语料库转换为可以搜索语义含义的向量数据库。其他子系统是用于创建自定义语料库的数据管道&#xff0c;用于查询向量数据库以向用户查询添加更多上下文的检索器&#xff0c;最后是托管大型语言模型 &#xff…

ES6中的Promise、async、await,超详细讲解!

Promise是es6引入的异步编程新解决方案&#xff0c;Promise实例和原型上有reject、resolve、all、then、catch、finally等多个方法&#xff0c;语法上promise就是一个构造函数&#xff0c;用来封装异步操作并可以获取其成功或失败的结果&#xff0c;本篇文章主要介绍了ES6中的P…

(免费领源码)java#SSM#MYSQL私家车位共享APP 51842-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1 课题的研究背景 1.2研究内容与研究目标 1.3ssm框架 1.4论文结构与章节安排 2 2 私家车位共享APP系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分析 2…

原型图绘制技巧

针对于 Axure RP绘图软件。 1、拉辅助线 目的&#xff0c;确定画布大小尺寸从上面和左面的刻度尺上&#xff0c;点击鼠标&#xff0c;拖动&#xff0c;就可以拉出一条线。 2、画布底模设为组件 右键转换为母版&#xff0c;方便后续其他页面使用 3、按钮 按钮字体不要太大&am…