关于RNAseq——从fastq到gene_counts全流程

在新服务器上从头开始搭建RNA-seq分析流程

以下是完整的迁移和搭建流程:

1. 准备工作

1.1 检查服务器环境

bash 复制代码
# 查看系统信息
uname -a
df -h
free -h
nproc

# 检查conda/miniconda
which conda
conda --version

# 检查常用工具
which wget curl git nano vim

1.2 创建项目目录结构

bash 复制代码
# 创建项目主目录
mkdir -p ~/rna_seq_project
cd ~/rna_seq_project

# 创建子目录(后续脚本会创建,但先准备好)
mkdir -p raw_data reference index logs

2. 复制和配置脚本文件

2.1 复制脚本文件

bash 复制代码
# 将脚本上传到服务器(假设您已经上传)
# 或者如果使用scp从旧服务器复制:
# scp -r user@old-server:~/rna_seq_duode_all/*.sh ~/rna_seq_project/

2.2 创建新的config.sh配置文件

bash 复制代码
nano ~/rna_seq_project/config.sh
bash 复制代码
#!/bin/bash
# RNA-seq分析配置文件 - 新服务器配置

# ==================== 参考文件配置 ====================
# 注意:需要先下载参考基因组和注释文件
GENOME_FASTA="${PROJECT_ROOT}/reference/Sus_scrofa.Sscrofa11.1.dna_sm.toplevel.fa"
ANNOTATION_GTF="${PROJECT_ROOT}/reference/Sus_scrofa.Sscrofa11.1.113.gtf"
HISAT2_INDEX_PREFIX="${PROJECT_ROOT}/index/sus_scrofa"

# ==================== 项目目录配置 ====================
PROJECT_ROOT="/home/$(whoami)/rna_seq_project"
RAW_DATA_DIR="${PROJECT_ROOT}/raw_data"
ALIGNMENT_DIR="${PROJECT_ROOT}/alignment"
BAM_DIR="${PROJECT_ROOT}/bam"
COUNT_DIR="${PROJECT_ROOT}/counts"
QC_DIR="${PROJECT_ROOT}/qc"
LOG_DIR="${PROJECT_ROOT}/logs"
FASTQC_DIR="${QC_DIR}/fastqc"

# ==================== 分析参数配置 ====================
THREADS=8  # 根据服务器CPU核心数调整
HISAT2_STRAND="RF"  # 反向链特异性(常用dUTP方法)
MEMORY="16G"  # 根据服务器内存调整

# ==================== 样本信息 ====================
TISSUE="your_tissue"  # 根据实际项目修改

2.3 设置脚本执行权限

bash 复制代码
cd ~/rna_seq_project
chmod +x *.sh

3. 安装生物信息学工具

3.1 使用Conda/Miniconda安装(推荐)

bash 复制代码
# 如果服务器没有conda,先安装miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
source ~/miniconda3/bin/activate
conda init

# 创建RNA-seq分析环境
conda create -n rnaseq python=3.8 -y
conda activate rnaseq

# 安装主要工具
conda install -c bioconda -y \
    hisat2 \
    samtools \
    subread \
    fastqc \
    multiqc \
    qualimap \
    trimmomatic \
    trim-galore

# 安装其他辅助工具
conda install -c bioconda -y \
    parallel \
    pigz \
    seqtk \
    bioawk

# 安装R和DESeq2(用于下游分析)
conda install -c conda-forge r-base r-essentials -y
conda install -c bioconda bioconductor-deseq2 -y

3.2 验证工具安装

bash 复制代码
# 检查关键工具
hisat2 --version
samtools --version
featureCounts -v
fastqc --version
multiqc --version
qualimap --help

4. 下载参考基因组和注释文件

4.1 创建参考数据目录

bash 复制代码
cd ~/rna_seq_project
mkdir -p reference
cd reference

4.2 下载猪参考基因组(以猪为例)

bash 复制代码
# Ensemble下载链接(示例)
# 基因组FASTA文件
wget ftp://ftp.ensembl.org/pub/release-107/fasta/sus_scrofa/dna/Sus_scrofa.Sscrofa11.1.dna_sm.toplevel.fa.gz
gunzip Sus_scrofa.Sscrofa11.1.dna_sm.toplevel.fa.gz

# 注释GTF文件
wget ftp://ftp.ensembl.org/pub/release-107/gtf/sus_scrofa/Sus_scrofa.Sscrofa11.1.107.gtf.gz
gunzip Sus_scrofa.Sscrofa11.1.107.gtf.gz

# 检查文件
ls -lh *.fa *.gtf

4.3 构建HISAT2索引

bash 复制代码
cd ~/rna_seq_project
mkdir -p index

# 构建索引(可能需要几个小时,占用大量内存)
hisat2-build -p ${THREADS} \
    ${GENOME_FASTA} \
    ${HISAT2_INDEX_PREFIX}

# 检查索引文件
ls -lh index/*.ht2* | head -10

5. 准备原始数据

5.1 上传原始数据

bash 复制代码
# 创建raw_data目录
cd ~/rna_seq_project
mkdir -p raw_data

# 假设您有FASTQ文件,上传到raw_data目录
# 文件名格式建议:样本名.R1.raw.fastq.gz 和 样本名.R2.raw.fastq.gz
# 例如:H1_tissue.R1.raw.fastq.gz, H1_tissue.R2.raw.fastq.gz

5.2 检查数据完整性

bash 复制代码
# 查看文件
ls -lh raw_data/*.fastq.gz

# 检查文件完整性(可选)
for file in raw_data/*.fastq.gz; do
    echo "检查 $file..."
    gunzip -t "$file" && echo "✓ 正常" || echo "✗ 损坏"
done

6. 运行分析流程

6.1 修改配置文件中的组织类型

bash 复制代码
# 编辑config.sh,根据实际样本修改组织类型
nano config.sh
# 修改:TISSUE="your_actual_tissue"

6.2 测试和准备

bash 复制代码
# 激活conda环境
conda activate rnaseq

# 测试配置文件
./test_pipeline.sh

# 设置目录结构
./setup_directories.sh

6.3 创建样本列表

bash 复制代码
# 自动创建样本列表
./create_sample_list.sh

# 检查生成的样本列表
head -5 sample_list.csv
head -5 sample_metadata.csv

6.4 运行完整流程(推荐分步)

bash 复制代码
# 方法1:运行完整流程(监控内存使用)
nohup ./run_full_pipeline.sh > pipeline.log 2>&1 &

# 方法2:分步运行(便于调试)
# 1) 质量检查
./run_fastqc.sh

# 2) 序列比对
./run_hisat2.sh

# 3) 格式转换
./sam_to_bam.sh

# 4) 表达定量
./run_featurecounts.sh

# 5) 质量评估
./run_qualimap.sh

6.5 监控分析进度

bash 复制代码
# 查看运行状态
./monitor_analysis.sh

# 查看日志
tail -f logs/hisat2/*.log  # 查看HISAT2日志
tail -f logs/samtools/*.log  # 查看samtools日志

# 查看进程
ps aux | grep -E "hisat2|samtools|featureCounts"

7. 常见问题和解决方案

7.1 内存不足问题

bash 复制代码
# 在config.sh中调整参数
nano config.sh
# THREADS=4  # 减少线程数
# MEMORY="8G"  # 减少内存

7.2 磁盘空间不足

bash 复制代码
# 清理中间文件
rm -f alignment/*.sam  # SAM文件较大,转换BAM后可删除
rm -f bam/*.bam  # 只保留_sorted.bam文件

# 使用压缩
samtools view -@ 4 -b -o output.bam input.sam

7.3 安装问题

bash 复制代码
# 如果conda安装慢,更换镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes

8. 创建一键部署脚本

bash 复制代码
# 创建setup_new_server.sh
cat > ~/rna_seq_project/setup_new_server.sh << 'EOF'
#!/bin/bash
# 新服务器一键部署脚本

echo "=== RNA-seq分析环境部署脚本 ==="
date

# 1. 安装miniconda(如果未安装)
if ! command -v conda &> /dev/null; then
    echo "安装Miniconda..."
    wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
    source ~/miniconda3/bin/activate
    conda init
    rm Miniconda3-latest-Linux-x86_64.sh
fi

# 2. 创建conda环境
echo "创建RNA-seq环境..."
conda create -n rnaseq -y python=3.8
conda activate rnaseq

# 3. 安装工具
echo "安装生物信息学工具..."
conda install -c bioconda -y \
    hisat2 samtools subread fastqc multiqc qualimap \
    parallel pigz trimmomatic trim-galore

# 4. 设置项目目录
echo "设置项目目录..."
chmod +x *.sh
./setup_directories.sh

echo "=== 部署完成 ==="
echo "请执行以下操作:"
echo "1. 将FASTQ文件放入 raw_data/ 目录"
echo "2. 下载参考基因组到 reference/ 目录"
echo "3. 修改 config.sh 中的路径和参数"
echo "4. 运行: ./test_pipeline.sh 进行测试"
echo "5. 运行: ./run_full_pipeline.sh 开始分析"
EOF

chmod +x setup_new_server.sh

9. 最佳实践建议

  1. 使用screen或tmux保持会话:

    bash 复制代码
    screen -S rnaseq
    # 运行分析
    # Ctrl+A, D 分离会话
    # screen -r rnaseq 恢复会话
  2. 定期备份重要结果

    bash 复制代码
    tar -czf results_backup_$(date +%Y%m%d).tar.gz counts/ qc/multiqc/ sample_list.csv
  3. 使用版本控制(可选):

    bash 复制代码
    cd ~/rna_seq_project
    git init
    git add *.sh config.sh
    git commit -m "Initial RNA-seq pipeline"

按照这个流程,您可以在新服务器上快速搭建完整的RNA-seq分析环境并开始分析。

相关推荐
_李小白3 小时前
【AlohaMini学习笔记】第三天:AlohaMini相关技术
笔记·学习
我命由我123453 小时前
Photoshop - Photoshop 工具栏(57)模糊工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
yatingliu20193 小时前
将深度学习环境迁移至老旧系统| 个人学习笔记
笔记·深度学习·学习
week_泽3 小时前
第1课:AI Agent是什么 - 学习笔记_1
人工智能·笔记·学习
开开心心_Every4 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
kitsch0x974 小时前
论文学习_QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing
学习
QiZhang | UESTC4 小时前
学习日记day55
学习
Jia shuheng4 小时前
STM32的一键下载CH340 DTR RTS与复位电路NRST的学习笔记
笔记·stm32·学习
wdfk_prog5 小时前
[Linux]学习笔记系列 -- 内核支持与数据
linux·笔记·学习