单细胞转录组(4)Cell Ranger
使用 Cell Ranger 分析单细胞数据
1. 数据转换 BCL2FASTQ
在进行单细胞数据分析之前,需要将 Illumina 测序仪生成的 BCL 格式数据转换为 FASTQ 格式。这一步通常使用 bcl2fastq 软件完成。
1.1 安装 bcl2fastq
bcl2fastq 是 Illumina 提供的软件,用于将 BCL 文件转换为 FASTQ 文件格式,以便进行下游分析。以下是安装步骤:
- 访问 Illumina bcl2fastq 下载页面 并下载对应版本的软件。
- 解压下载的文件,并按照安装说明进行安装。
# 下载 bcl2fastq 软件
wget https://support.illumina.com/downloads/bcl2fastq/1.8.4/bcl2fastq-1.8.4-0-Linux-x86.tar.gz# 解压文件
tar -xzf bcl2fastq-1.8.4-0-Linux-x86.tar.gz# 进入解压后的目录
cd bcl2fastq-1.8.4-0-Linux-x86# 运行安装脚本(如果存在)
./install.sh
1.2 运行 bcl2fastq
使用以下命令运行 bcl2fastq
进行数据转换:
bcl2fastq --input-dir <BCL文件夹路径> --output-dir <FASTQ输出路径> --sample-sheet <样本信息表路径>
<BCL文件夹路径>
是包含 BCL 文件的目录路径。<FASTQ输出路径>
是您希望输出 FASTQ 文件的目录路径。<样本信息表路径>
是包含样本信息的 CSV 文件路径,用于指定样本名称和其他相关信息。
例如,如果您的 BCL 文件位于 /data/bcl
目录,您希望输出 FASTQ 文件到 /data/fastq
目录,并且样本信息表位于 /data/samples.csv
,则命令如下:
bcl2fastq --input-dir /data/bcl --output-dir /data/fastq --sample-sheet /data/samples.csv
1.3 检查输出结果
转换完成后,检查输出目录中的 FASTQ 文件,确保转换成功。
使用 Cell Ranger 分析单细胞数据
2. 数据质控
在进行单细胞数据分析之前,需要对测序数据进行质控,以确保数据质量符合分析要求。常用的质控工具是 FastQC。
2.1 安装 FastQC
FastQC 是一个广泛使用的测序数据质控工具,它可以评估测序数据的质量,包括碱基质量、reads长度、reads数量等。
- 下载 FastQC:
- 访问 FastQC 官方网站 并下载 FastQC 软件。
- 解压下载的文件,并根据指南进行安装。
# 下载 FastQC 软件
wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.9.zip
unzip fastqc_v0.11.9.zip
- 安装 FastQC:
- 将解压后的文件移动到合适的目录,并添加执行权限(如果需要)。
- 运行 FastQC 以检查其是否正确安装。
2.2 运行 FastQC
使用以下命令运行 FastQC 对 FASTQ 文件进行质控:
fastqc -t 12 -f fastq -o qc1 pbmc_1k_v3_fastqs/pbmc_1k_v3*_R2_001.fastq.gz
- 其中
-t 12
指定使用 12 个线程运行。 -f fastq
指定输入文件格式为 FASTQ。-o qc1
指定输出目录为qc1
。pbmc_1k_v3_fastqs/pbmc_1k_v3*_R2_001.fastq.gz
是需要进行质控的 FASTQ 文件路径。
2.3 查看质控报告
运行完成后,FastQC 会生成质控报告,通常包括 HTML 和文本格式。这些报告提供了关于数据质量的详细信息,包括碱基质量分布、reads质量分数、reads长度分布等。
- 打开 HTML 报告文件,仔细查看各项指标,确保数据质量符合后续分析的要求。
- 根据质控结果,可能需要过滤掉低质量的reads或进行其他预处理步骤。
使用 Cell Ranger 分析单细胞数据
3. 生成矩阵 COUNT
使用 Cell Ranger 软件对原始数据进行比对和定量分析,生成基因表达矩阵。Cell Ranger 能够处理 FASTQ 格式的测序数据,并将其比对到参考基因组上,最终生成用于下游分析的基因表达矩阵。
3.1 运行软件
Cell Ranger count 工具将执行以下步骤:
- 比对测序数据到参考基因组。
- 进行UMI计数(Unique Molecular Identifier)以去除PCR重复。
- 生成基因表达矩阵。
- 命令格式:
cellranger count --id=<analysis_id> --fastq=<path_to_fastq_files> --sample=<sample_name> --transcriptome=<path_to_reference_transcriptome> --localcores=<cpu_cores> --localmem=<memory_size>
- **示例命令**:```bash
cellranger count --id=run_count_1kpbmcs --fastqs=pbmc_1k_v3_fastqs --sample=pbmc_1k_v3 --transcriptome=/ifs1/VipData/15-singlecell/ref/refdata-gex-GRCh38-2020-A/ --localcores=12 --localmem=32
- 在这个示例中,
<analysis_id>
是分析的标识符,<path_to_fastq_files>
是 FASTQ 文件的路径,<sample_name>
是样本名称,<path_to_reference_transcriptome>
是参考基因组的路径,<cpu_cores>
和<memory_size>
分别指定了使用的 CPU 核心数和内存大小。
3.2 结果文件
Cell Ranger 的分析结果会保存在指定的输出目录中,主要文件包括:
web_summary.html
:网页版报告,包含测序统计、细胞统计、比对统计等信息。metrics_summary.csv
:CSV 格式的统计摘要。possorted_genome_bam.bam
:比对排序后的 BAM 文件。filtered_feature_bc_matrix
:过滤后的基因表达矩阵,用于后续分析。raw_feature_bc_matrix
:原始基因表达矩阵。cloupe.cloupe
:用于 Loupe Browser 可视化的文件。
4. 结果解读
4.1 结果统计
- 查看网页报告:
打开web_summary.html
文件,查看测序统计、细胞统计、比对统计等信息。这些信息可以帮助你评估实验的成功与否。
4.2 细胞计数质控(cell QC)
- 判断单细胞:
Cell Ranger 使用一种改进的算法来识别单细胞。主要步骤包括:- 识别高 RNA 含量细胞:根据 UMI 总数的 cutoff 值,识别高 RNA 含量的细胞。
- 建立背景模型:选择低 UMI 计数的 barcode,建立 RNA 图谱背景模型。
- 区分单细胞和空细胞:将 barcode 的 RNA 图谱与背景模型进行比较,区分包含细胞的 barcode 和空 barcode。
4.3 单细胞亚群分类
-
聚类分析:
使用 t-SNE 或 UMAP 等降维方法对细胞进行聚类分析,识别不同的细胞亚群。 -
差异表达分析:
通过比较不同亚群之间的基因表达差异,找到标记基因。
5. Loupe Browser 可视化
Loupe Browser 是 10x Genomics 提供的可视化工具,用于查看和分析 Cell Ranger 生成的结果文件。
-
安装 Loupe Browser:
wget https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/loupe # 根据操作系统选择合适的版本下载并安装
-
运行 Loupe Browser:
启动 Loupe Browser,加载.cloupe
文件,进行可视化分析。 -
可视化功能:
- t-SNE 和 UMAP 图:展示细胞的聚类分布。
- 基因表达热图:展示不同细胞亚群的基因表达情况。
- 差异表达分析:识别不同亚群之间的标记基因。
使用 Cell Ranger 分析单细胞数据
5. Loupe Browser 可视化
Loupe Browser 是 10x Genomics 提供的一个交互式数据可视化工具,它允许用户探索和分析由 Cell Ranger 生成的单细胞测序数据。Loupe Browser 提供了丰富的可视化功能,可以帮助用户更好地理解数据。
5.1 安装 Loupe Browser
- 下载:访问 10x Genomics 官方网站 并下载适用于您操作系统的 Loupe Browser 版本。
- 安装:根据下载的安装包进行安装。对于大多数操作系统,这可能涉及解压安装包并运行安装脚本。
5.2 运行 Loupe Browser
- 加载数据:启动 Loupe Browser 后,加载由 Cell Ranger 生成的
.cloupe
文件。这个文件包含了单细胞分析的所有必要数据。 - 探索数据:使用 Loupe Browser 的各种工具来探索数据,包括查看基因表达、细胞亚群、以及它们之间的关系。
5.3 可视化功能
Loupe Browser 提供了多种可视化功能,帮助用户理解单细胞数据:
- t-SNE 和 UMAP 图:这些图展示了细胞在低维空间中的分布,有助于识别不同的细胞群和它们之间的关系。
- 基因表达热图:这些热图显示了选定基因在不同细胞群中的表达水平,有助于识别标记基因。
- 差异表达分析:Loupe Browser 允许用户比较不同细胞群之间的基因表达差异,这对于发现特定细胞类型的特征基因非常有用。
- 细胞亚群注释:如果可用,Loupe Browser 还可以提供基于已知数据库的细胞类型注释,帮助用户理解他们的数据在生物学上的含义。
5.4 利用可视化结果
- 识别细胞亚群:通过t-SNE或UMAP图,可以直观地看到不同的细胞亚群。
- 发现差异表达基因:通过差异表达分析,可以找到在不同条件下表达变化的基因。
- 生物学解释:结合基因表达数据和细胞亚群信息,可以对生物学问题进行更深入的解释。
使用 Cell Ranger 分析单细胞数据
总结
使用Cell Ranger进行单细胞数据分析是一个多步骤的过程,包括数据转换、质控、生成基因表达矩阵以及结果解读和可视化。以下是整个过程的总结:
-
数据转换 BCL2FASTQ:
- 使用Illumina提供的
bcl2fastq
软件将测序仪生成的BCL格式数据转换为FASTQ格式,这是进行下游分析的前提。
- 使用Illumina提供的
-
数据质控:
- 利用FastQC等工具对FASTQ数据进行质控,确保数据质量符合分析要求。
-
生成矩阵 COUNT:
- 使用Cell Ranger软件对原始数据进行比对和定量分析,生成基因表达矩阵。这一步骤包括比对测序数据到参考基因组、进行UMI计数以及生成可用于下游分析的基因表达矩阵。
-
结果解读:
- 分析Cell Ranger生成的统计摘要,包括测序统计、细胞统计和比对统计等信息。
- 进行细胞计数质控(cell QC),以识别和过滤掉低质量的细胞。
-
Loupe Browser 可视化:
- 使用Loupe Browser加载Cell Ranger生成的结果文件(
.cloupe
),并进行数据的可视化分析。这包括查看t-SNE和UMAP图、基因表达热图以及进行差异表达分析。
- 使用Loupe Browser加载Cell Ranger生成的结果文件(
单细胞数据分析的重要性
单细胞测序数据分析为我们提供了在单个细胞水平上理解基因表达的能力,这对于揭示细胞异质性、识别新的细胞类型、追踪细胞分化路径以及理解复杂生物过程至关重要。随着技术的进步,单细胞测序数据分析正变得越来越重要,它正在改变我们对生物学和疾病机制的理解。
后续步骤
完成Cell Ranger分析后,研究人员通常会进行更深入的数据分析,包括但不限于:
- 数据预处理:包括归一化、标准化和降维等。
- 聚类分析:识别不同的细胞群和亚群。
- 差异表达分析:找出在不同条件下或不同细胞群中差异表达的基因。
- 轨迹分析:推断细胞分化和发育路径。
- 功能富集分析:理解差异表达基因的生物学意义。
相关文章:
单细胞转录组(4)Cell Ranger
使用 Cell Ranger 分析单细胞数据 1. 数据转换 BCL2FASTQ 在进行单细胞数据分析之前,需要将 Illumina 测序仪生成的 BCL 格式数据转换为 FASTQ 格式。这一步通常使用 bcl2fastq 软件完成。 1.1 安装 bcl2fastq bcl2fastq 是 Illumina 提供的软件,用于…...
Python爬虫-爬取百度指数之人群兴趣分布数据,进行数据分析
前言 本文是该专栏的第56篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前的文章《Python爬虫-爬取百度指数之需求图谱近一年数据》中,笔者有详细介绍过爬取需求图谱的数据教程。 而本文,笔者将再以百度指数为例子,基于Python爬虫获取指定关键词的人群“兴…...
使用Python和Selenium打造一个全网页截图工具
无论是归档网站、测试页面设计,还是为报告记录网页内容,一个可靠的截图工具都能大大提升效率。本文将介绍如何使用Python、Selenium和wxPython构建一个用户友好的网页截图工具。该工具能在浏览器中显示网页,自动平滑滚动到底部以触发懒加载内…...
自动化脚本开发:Python调用云手机API实现TikTok批量内容发布
在2025年的技术生态下,通过Python实现TikTok批量内容发布的自动化脚本开发需结合云手机API调用、TikTok开放接口及智能调度算法。以下是基于最新技术实践的系统化开发方案: 一、云手机环境配置与API对接 云手机平台选择与API接入 推荐使用比特云手机或丁…...
React Hooks 必须在组件最顶层调用的原因解析
文章目录 前言一、Hooks 的基本概念二、Hooks 的调用规则三、为什么 Hooks 必须在最顶层调用?1. 维护 Hooks 的调用顺序2. 闭包与状态关联3. 实现细节:Hook 的链表结构 四、违反规则的后果五、如何正确使用 Hooks六、示例:正确与错误的用法对…...
西门子 Teamcenter13 Eclipse RCP 开发 1.2 工具栏 开关按钮
西门子 Teamcenter13 Eclipse RCP 开发 1.2 工具栏 开关按钮 1 配置文件2 插件控制3 命令框架 位置locationURI备注菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏 style 值含义显示效果push普通按钮(默…...
5.27本日总结
一、英语 复习list2list29 二、数学 学习14讲部分内容 三、408 学习计组1.2内容 四、总结 高数和计网明天结束当前章节,计网内容学完之后主要学习计组和操作系统 五、明日计划 英语:复习lsit3list28,完成07年第二篇阅读 数学&#…...
【持续更新中】架构面试知识学习总结
1.分库分表出现冗余数据: ☆分库分表方法:水平和垂直(业务场景,数据关联性。逻辑要调查清楚) 垂直:将一个表(库)按照列的业务相关性进行拆分,把经常一起使用的列放在一张表(库)&…...
文字溢出省略号显示
一、 单行文字溢出、省略号显示 二、 多行文字溢出,省略号显示 有较大的兼容性问题,适用于Webkit为内核的浏览器软件,或者移动端的(大部分也是webkit) 此效果建议后端人员开发 三、图片底侧空白缝隙的修复技巧&#…...
力扣-283-移动零
1.题目描述 2.题目链接 283. 移动零 - 力扣(LeetCode) 3.题目代码 class Solution {public void moveZeroes(int[] nums) {int dest-1;int cur0;while(cur<nums.length){if(nums[cur]0){cur;}else if(nums[cur]!0){swap(nums,cur,dest1);cur;dest…...
【001】RenPy打包安卓apk 流程源码级别分析
1. 入口在下图 2. SDK版本及代码入口 (renpy-8.3.7-sdk) 由于SDK一直在升级,本文采用 标题中的版本进行分析,整体逻辑变化不太大。 实际执行逻辑是调用的rapt 2.1 点击按钮实际执行逻辑 def AndroidIfState(state, needed, acti…...
机器学习-人与机器生数据的区分模型测试-数据处理 - 续
这里继续 机器学习-人与机器生数据的区分模型测试-数据处理1的内容 查看数据 中1的情况 #查看数据1的分布情况 one_ratio_list [] for col in data.columns:if col city or col target or col city2: # 跳过第一列continueelse:one_ratio data[col].mean() # 计算1值占…...
计算机视觉与深度学习 | Python实现EMD-VMD-LSTM时间序列预测(完整源码和数据)
EMD-VMD-LSTM 一、完整代码实现二、代码结构解析三、关键参数说明四、性能优化建议五、工业部署方案以下是用Python实现EMD-VMD-LSTM时间序列预测的完整代码,结合经验模态分解(EMD)、变分模态分解(VMD)与LSTM深度学习模型,适用于复杂非平稳信号的预测任务。代码包含数据生…...
数据结构与算法——双向链表
双向链表 定义链表分类双向链表:带头双向循环链表 初始化打印尾插头插尾删头删查找在pos(指定位置)之后插入结点在pos(指定位置)之前插入结点删除pos(指定位置)的结点销毁顺序表与链表的分析 定义 链表分类 单向和双向 带头和不带头 带头是指存在一个头结点&…...
.NET 中管理 Web API 文档的两种方式
前言 在 .NET 开发中管理 Web API 文档是确保 API 易用性、可维护性和一致性的关键。今天大姚给大家分享两种在 .NET 中管理 Web API 文档的方式,希望可以帮助到有需要的同学。 Swashbuckle Swashbuckle.AspNetCore 是一个流行的 .NET 库,它使得在 AS…...
混合学习:Bagging与Boosting的深度解析与实践指南
引言 在机器学习的世界里,模型的性能优化一直是研究的核心问题。无论是分类任务还是回归任务,我们都希望模型能够在新的数据上表现出色,即具有良好的泛化能力。然而,实际应用中常常遇到模型过拟合(高方差)…...
基于大疆Mini 3无人机和指定软件工具链的完整3D建模工作
基于大疆Mini 3无人机和指定软件工具链的完整3D建模工作流程关键步骤: 1. 无人机航拍准备 • 设备检查:确保大疆 Mini 3 电量充足,相机设置为 RAW 格式(便于后期调色),关闭自动白平衡。 • 飞行规划&…...
开源项目实战学习之YOLO11:12.1 ultralytics-models-sam-blocks.py源码
👉 点击关注不迷路 👉 点击关注不迷路 👉 另外,前些天发现了一个巨牛的AI人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。感兴趣的可以点击相关跳转链接。 点击跳转到网站。 ultralytics-models-sam 1.sam-modules-__init__.py2.sam-modules-blocks.pybl…...
3D个人简历网站 5.天空、鸟、飞机
1.显示天空 models下新建文件Sky.jsx Sky.jsx // 从 React 库中导入 useRef 钩子,用于创建可变的 ref 对象 import { useRef } from "react"; // 从 react-three/drei 库中导入 useGLTF 钩子,用于加载 GLTF 格式的 3D 模型 import { useGLT…...
蓝桥杯-不完整的算式
问题描述 小蓝在黑板上写了一个形如 AopBCAopBC 的算式,其中 AA、BB、CC 都是非负整数,opop 是 、-、*、/、-、*、/(整除)四种运算之一。不过 AA、opop、BB、CC 这四部分有一部分被不小心的同学擦掉了。 给出这个不完整的算式&a…...
【Python 算法零基础 3.递推】
压抑与痛苦,那些辗转反侧的夜,终会让我们更加强大 —— 25.5.16 一、递推的概念 递推 —— 递推最通俗的理解就是数列,递推和数列的关系就好比 算法 和 数据结构 的关系,数列有点像数据结构中的线性表(可以是顺序表,也…...
计算机视觉与深度学习 | Matlab实现EMD-LSTM和LSTM时间序列预测对比(完整源码和数据)
EMD-LSTM与LSTM 一、数据生成与预处理二、经验模态分解(EMD)三、数据预处理四、模型构建与训练1. 单一LSTM模型2. EMD-LSTM混合模型五、预测与结果对比1. 单一LSTM预测2. EMD-LSTM预测3. 性能评估六、结果可视化七、完整代码说明八、典型输出结果九、改进方向以下是用MATLAB实…...
【爬虫】DrissionPage-6
官方文档: https://www.drissionpage.cn/browser_control/visit https://www.drissionpage.cn/browser_control/page_operation 1. Tab 对象概述 Tab 对象 是 DrissionPage 中用于控制浏览器标签页的主要单位。每个 Tab 对象对应一个浏览器标签页,负责执行各种网页…...
C/C++实践(十)C语言冒泡排序深度解析:发展历史、技术方法与应用场景
一、发展历史 冒泡排序(Bubble Sort)作为计算机科学领域最基础的排序算法之一,其历史可追溯至计算机编程的早期阶段。尽管具体起源时间难以考证,但它在20世纪50年代至60年代间被广泛讨论和应用。冒泡排序的名称来源于其独特的排序…...
git提交库常用词
新功能 feat修改BUG fix文档修改 docs格式修改 style重构 refactor性能提升 perf测试 test构建系统 build对CI配置文件修改 ci修改构建流程、或增加依赖库、工具 chore回滚版本 revert...
结构化思考力_第一章_明确理念打基础
接收信息的3个步骤 1. 梳理:观点、理由、事实和数据; 2. 画3这的结构图 3. 一句话概括 可套用固定格式。在——的基础上,从——、——、——N个方面,说明了————。 一句话概括主要内容的前提是,一定是结构非常…...
【C语言练习】046. 编写插入排序算法
046. 编写插入排序算法 046. 编写插入排序算法C语言实现插入排序代码说明示例运行输入:输出:插入排序的特点一、插入排序的适用场景二、C语言代码示例及分步讲解代码实现代码解析三、示例执行过程四、性能分析五、总结046. 编写插入排序算法 插入排序(Insertion Sort)是一…...
Kotlin与机器学习实战:Android端集成TensorFlow Lite全指南
本文将手把手教你如何在Android应用中集成TensorFlow Lite模型,实现端侧机器学习推理能力。我们以图像分类场景为例,提供可直接运行的完整代码示例。 环境准备 1. 开发环境要求 Android Studio Arctic Fox以上版本AGP 7.0Kotlin 1.6Minimum SDK 21 2.…...
【Linux笔记】nfs网络文件系统与autofs(nfsdata、autofs、autofs.conf、auto.master)
一、nfs概念 NFS(Network File System,网络文件系统) 是一种由 Sun Microsystems 于1984年开发的分布式文件系统协议,允许用户通过网络访问远程计算机上的文件,就像访问本地文件一样。它广泛应用于 Unix/Linux 系统&a…...
Redis持久化机制详解:保障数据安全的关键策略
在现代应用开发中,Redis作为高性能的内存数据库被广泛使用。然而,内存的易失性特性使得持久化成为Redis设计中的关键环节。本文将全面剖析Redis的持久化机制,包括RDB、AOF以及混合持久化模式,帮助开发者根据业务需求选择最适合的持…...
经典算法 求C(N, K) % mod,保证mod是质数
求C(N, K) % mod,保证mod是质数 问题描述 给你三个整数N,K,mod保证mod是一个质数,求组合数C(N, K) % mod。 输入描述 输入有多组,输入第一行为两个整数T,mod。接下来2 - T 1行,每行输入N, K。 输出描…...
NY309NY318美光科技颗粒NY319NY320
NY309NY318美光科技颗粒NY319NY320 技术解析:架构创新与性能突围 美光科技的NY系列颗粒(如NY309、NY318、NY319、NY320)延续了其在存储技术领域的创新基因。以NY319为例,其采用16层BiCS3 3D NAND工艺,通过浮栅&#…...
Buildroot 移植MiniGUI: 编写简单示例(基于君正X2000)
概述 上一篇文章: Buildroot 移植MiniGUI, 在编译打包完文件系统后, 编写一个Demo进一步验证MiniGUI的功能. 目标平台: 键值CPUX2000架构mips内存128MB存储256MBLCD600*1024 MiniGUI 的三种运行模式 在编写第一个 MiniGUI 程序之前,需要了解如下事实࿱…...
flutter长列表 ListView、GridView、SingleChildScrollView、CustomScrollView区别
组件名称用途/适合场景是否懒加载支持列表结构用法复杂度SingleChildScrollView适用于内容数量不大、不重复的页面(如表单、静态内容)❌ 否❌ 否⭐⭐ListView适用于垂直方向的长列表,自动滚动;适合展示大量数据✅ 支持✅ 是⭐⭐Li…...
OpenCV透视变换
概念 OpenCV 透视变换是将图像从一个视平面投影到另一个视平面的过程,也叫投影映射 ,属于空间立体三维变换。它基于透视原理,通过 33 的变换矩阵作用于图像像素坐标来实现映射转换 ,能模拟人眼或相机镜头观看三维空间物体时的透视…...
Node.js 实战四:数据库集成最佳实践
你写了个登录接口,用上了 JWT;然后,产品来了句: “用户数据能分页查吗?能关联公司信息吗?我们这边还有多语言字段…” 你发现:SQL 写得越来越长,关联越来越绕,字段越来越…...
【JDBC】JDBC概述、历史版本及特征
1_JDBC概述 什么是JDBC JDBC(Java DataBase Connectivity, Java数据库连接) ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成 有了JDBC,程序员只需用JDBC API写一个程序…...
redis的pipline使用结合线程池优化实战
文章目录 代码讲解与事务 (MULTI/EXEC) 的区别在你这段代码里的价值可能的坑实战建议 代码 /*** 批量根据用户 ID 查询用户信息** param findUsersByIdsReqDTO* return*/Overridepublic Response<List<FindUserByIdRspDTO>> findByIds(FindUsersByIdsReqDTO findUs…...
【RabbitMQ】整合 SpringBoot,实现工作队列、发布/订阅、路由和通配符模式
文章目录 工作队列模式引入依赖配置声明生产者代码消费者代码 发布/订阅模式引入依赖声明生产者代码发送消息 消费者代码运行程序 路由模式声明生产者代码消费者代码运行程序 通配符模式声明生产者代码消费者代码运行程序 工作队列模式 引入依赖 我们在创建 SpringBoot 项目的…...
MySQL初阶:sql事务和索引
索引(index) 可以类似理解为一本书的目录,一个表可以有多个索引。 索引的意义和代价 在MySQL中使用select进行查询时会经过: 1.先遍历表 2.将条件带入每行记录中进行判断,看是否符合 3.不符合就跳过 但当表中的…...
使用教程:8x16模拟开关阵列可级联XY脚双向导通自动化接线
以下通过点亮LED进行基本使用流程演示,实际可以连接复杂外设(SPI、CAN、ADC等) 单模块使用 RX、TX、5V和GND接到串口模块;X5接5V;Y2接LED;LED-接GND 串口模块插上电脑后,LED没有亮;因为此时模…...
很啰嗦,再次总结 DOM
DOM (文档对象模型) 详解 一、DOM 基础概念 1. 定义与作用 DOM(Document Object Model)即文档对象模型,是一种用于 HTML 和 XML 文档的编程接口。它将文档解析为一个由节点和对象组成的树状结构,允许程序和脚本动态访问、修改文…...
文件读取漏洞路径与防御总结
文件读取漏洞路径与防御总结 文件读取漏洞允许攻击者通过路径遍历等手段访问未授权的文件。以下是Linux和Windows系统中常见敏感路径的归纳及防御建议: Linux 系统常见敏感路径 系统关键文件: /etc/passwd:用户账户信息(可被用来…...
电池的充放电电流中C的含义
充电电池的充放电电流标注为 -0.2C、1C、2C 等参数时,其含义与电池的容量和充放电速率直接相关。以下是详细解释: 1. 什么是 “C” 值? • C 是电池的 额定容量(Capacity) 的缩写,单位为 Ah(安时…...
文章记单词 | 第91篇(六级)
一,单词释义 stride /straɪd/- v. 大步走;跨越;迈进 /n. 大步;进展;步幅diplomatic /ˌdɪpləˈmtɪk/- adj. 外交的;有手腕的conquer /ˈkɒŋkə(r)/- v. 征服;战胜;克服geogra…...
Nginx应用场景详解与配置指南
1. 什么是Nginx? Nginx(发音为"engine-x")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它以高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。 2. Nginx的主要应用场景 2.1 …...
【Ubuntu】Waydroid-Linux安卓模拟器安装
✅ 1. 安装 Waydroid sudo apt update sudo apt install curl ca-certificates gnupg git -y curl -s https://repo.waydro.id | sudo bash sudo apt install waydroid -y sudo apt install dbus-x11✅ 2. 初始化 Waydroid 使用普通system版本: sudo waydroid in…...
设计模式 - 单例模式 - Tips
为什么双重检查会带来空指针异常问题? if (instance null) { synchronized (Singleton.class) { if (instance null) { instance new Singleton(); } } …...
设计模式7大原则与UML类图详解
设计模式7大原则与UML类图详解 引言 🌟 在软件工程领域,设计模式和UML(统一建模语言)是提高代码质量、增强系统可维护性的重要工具。设计模式提供了解决软件设计中常见问题的通用方案,而UML则为我们提供了一种可视化的…...
如何分析动态采样引起的计划不稳定 | OceanBase SQL 调优实践
这篇博客涉及两个知识点,一个是动态采样,另一个是 DAS 执行。 用户的问题和相关结论 我们看看用户在OceanBase 社区论坛发帖中提出的疑问及其所得出的结论。 问题:收集统计信息之前,为什么会出现计划不稳定的情况? …...