当前位置: 首页 > news >正文

单细胞上游分析实战:从cellranger安装到数据预处理全流程解析

1. 环境准备:从零搭建单细胞分析平台

第一次接触单细胞测序数据分析时,最让人头疼的就是环境配置。记得我刚开始搭建环境时,光是解决各种依赖问题就折腾了整整两天。现在把这些经验总结出来,帮你避开那些坑。

首先需要准备的是conda环境,这是管理生物信息软件的神器。我强烈建议使用清华镜像源,下载速度能快10倍不止。配置方法很简单,在终端依次执行以下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes

创建专属环境时,我习惯用Python 3.9版本,这个版本兼容性最好。执行conda create -n scRNA python=3.9创建环境后,记得用conda activate scRNA激活。这里有个小技巧:把激活命令写入.bashrc文件,这样每次打开终端都会自动进入工作环境。

1.1 核心工具安装指南

sra-tools是下载原始数据的必备工具。安装时很多人会纠结要不要加-c bioconda参数,其实现在清华镜像配置好后,直接conda install sra-tools就能搞定。我曾经测试过,加不加-c参数下载速度差别不大。

cellranger的安装稍微麻烦些。建议先在用户目录下创建biosoft文件夹存放软件,比如mkdir ~/biosoft。从10x Genomics官网下载最新版cellranger后,用tar -xzvf cellranger-x.x.x.tar.gz解压。重点来了:临时添加PATH时,一定要用绝对路径:

export PATH=/path/to/cellranger/bin:$PATH

验证是否成功最可靠的方法是which cellranger,能看到完整路径就说明配置正确。不过这个设置只在当前会话有效,要永久生效需要把这行命令加到.bashrc文件里。

2. 参考基因组下载与配置

参考基因组就像单细胞分析的"地图",选错版本后续分析全完蛋。10x Genomics官方提供了多个版本,新手建议用GRCh38-2020-A这个稳定版。下载命令很简单:

nohup wget "https://cf.10xgenomics.com/supp/cell-exp/refdata-gex-GRCh38-2020-A.tar.gz" > download.log 2>&1 &

这个命令用了nohup和后台运行,适合大文件下载。我一般会开个tmux会话,这样即使断网也不会中断下载。下载完成后记得校验md5值,有次我遇到文件损坏,白白浪费了一天时间。

解压后目录结构应该是这样的:

refdata-gex-GRCh38-2020-A/ ├── genes ├── genome └── transcriptome

2.1 不同物种的注意事项

如果你做的是小鼠分析,需要下载mm10版本。有个坑要注意:10x的参考基因组是经过特殊处理的,不能用UCSC或Ensembl的直接替代。我有次偷懒用了Ensembl的基因组,结果cellranger直接报错退出。

对于植物或特殊物种,10x可能没有现成的参考基因组。这时需要用cellranger mkref命令自己构建,这个过程比较麻烦,需要准备gtf和fasta文件。建议先在小数据上测试通过再处理正式数据。

3. 数据下载实战技巧

以GSE150321数据集为例,分享几种我常用的下载方法。这个数据集包含两个样本(SRR11666954和SRR11666955),适合用来练手。

3.1 直接下载法

最简单粗暴的方法就是用wget直接下:

nohup wget https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR11666954/SRR11666954 > download.log 2>&1 &

但这种方法有个缺点:不知道下载进度。我改进的方法是结合pv命令:

wget https://sra... | pv -bep -s 500M > SRR11666954

3.2 prefetch批量下载

当需要下载几十个样本时,prefetch是更好的选择。先准备SRR_Acc_List.txt文件,然后有三种用法:

第一种最简洁:

cat SRR_Acc_List.txt | while read id; do prefetch --max-size 500G "$id"; done

第二种会打印下载状态:

cat SRR_Acc_List.txt | while read i; do prefetch $i --max-size 500G -O `pwd` && echo "**${i}.sra done**" done

第三种适合超大批量:

prefetch --option-file SRR_Acc_List.txt -O ./ --min-size 0 --max-size 500GB

3.3 kingfisher高效方案

最近发现的kingfisher真是神器,一行命令搞定所有:

kingfisher get --run-identifiers-list SRR_Acc_List.txt -m ena-ascp ena-ftp prefetch --download-threads 10 --check-md5sums 1 > down_srr_list.log 2>&1

这个工具会自动尝试多种下载方式,还能校验文件完整性。我测试过,10线程下载比prefetch快3倍以上。

4. 数据预处理关键步骤

下载的sra文件需要转为fastq格式才能用于cellranger。这里推荐用parallel加速处理:

parallel -j 4 'fastq-dump --split-files --gzip {}' ::: *.sra

这个命令会同时处理4个文件,--split-files参数保证配对末端数据正确拆分,--gzip直接压缩节省空间。

4.1 cellranger计数流程

准备好fastq文件后,核心命令长这样:

cellranger count --id=sample1 \ --transcriptome=refdata-gex-GRCh38-2020-A \ --fastqs=path/to/fastq \ --sample=SRR11666954 \ --localcores=16 \ --localmem=64

几个关键参数:

  • --localcores:设置使用的CPU核数
  • --localmem:限制内存使用(单位GB)
  • --expect-cells:预估细胞数,能提高聚类精度

我曾经遇到一个坑:样本名称不能包含特殊字符,否则会报错。建议只用字母数字和下划线。

4.2 结果解读与质控

运行完成后会生成outs目录,其中最重要的文件是:

  • web_summary.html:可视化报告
  • filtered_feature_bc_matrix:过滤后的表达矩阵
  • metrics_summary.csv:质控指标

要特别关注这几个指标:

  • 中位基因数(Median Genes per Cell):正常2000-3000
  • 测序饱和度(Sequencing Saturation):理想值>50%
  • 比对率(Reads Mapped to Genome):应>80%

如果发现双细胞比例过高(比如>10%),可能需要调整--expect-cells参数重新分析。

http://www.cnnetsun.cn/news/1615954.html

相关文章:

  • 开发提效:用快马为你的wsl环境生成常用python工具库
  • Wan2.2-I2V-A14B效果展示:复杂提示词‘雨夜霓虹街道行人撑伞行走’生成效果
  • 黑丝空姐-造相Z-Turbo使用全攻略:从环境配置到高级提示词技巧
  • Python驱动GeoServer自动化:从零构建智能地理数据发布流水线
  • [C++]缺省值和函数重载
  • 双向图腾柱无桥PFC电路的MATLAB仿真分析
  • Kandinsky-5.0-I2V-Lite-5s效果实测:不同提示词下动态表现力对比展示
  • cool-admin(midway版)数据字典API设计:查询与缓存接口实现
  • webMAN-MOD终极指南:如何在PS3上安装这款强大的全能插件
  • MediaPipe Studio:零代码AI模型优化的技术革命与实践指南
  • 5步构建无接触生理监测系统:rPPG-Toolbox全流程技术指南
  • 终极位置模拟指南:FakeLocation让你自由穿梭全球 [特殊字符]
  • Windows运行库终极解决方案:专业级Visual C++依赖管理实战指南
  • 利用STM32的DWT单元实现高效内存调试与异常追踪
  • 2023最新版k2pdfopt保姆级配置教程:让6寸Kindle完美显示学术论文PDF
  • 给STM32新手的保姆级Keil MDK v5.41安装指南:从官网下载到主题美化一步到位
  • 高级排序算法:Python实现归并排序与快速排序的深度对比
  • EGAT与ProtBERT:图注意力网络与迁移学习在蛋白质相互作用位点预测中的协同效应
  • 别慌!MySQL 8.0忘记root密码?5分钟搞定免重装重置(附systemctl重启命令)
  • Phi-4-mini-reasoning轻量推理模型落地:中小企业AI数学助手部署案例
  • 电源防反接电路设计与工程实践指南
  • 阿里千问Qwen3.5-Omni:全模态大模型的新突破
  • Flutter Documentation Website核心组件详解:Widgets、示例与API文档的终极指南
  • 突破平台限制:让PS手柄实现PC完美适配的创新方案
  • Rocky Linux 9.x 安全加固实战指南:从系统初始化到生产级防护
  • 集合卡尔曼滤波(EnKF)入门避坑指南:别再混淆它和粒子滤波(PF)了
  • TradingAgents-CN:5分钟快速部署AI多智能体股票分析平台终极指南
  • 深入理解 MySQL 事务:从基础到实战,一篇吃透
  • 突破RAG天花板:ADORE重新定义知识工作流
  • MVC 应用程序