在新服务器上从头开始搭建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. 最佳实践建议
-
使用screen或tmux保持会话:
bashscreen -S rnaseq # 运行分析 # Ctrl+A, D 分离会话 # screen -r rnaseq 恢复会话 -
定期备份重要结果:
bashtar -czf results_backup_$(date +%Y%m%d).tar.gz counts/ qc/multiqc/ sample_list.csv -
使用版本控制(可选):
bashcd ~/rna_seq_project git init git add *.sh config.sh git commit -m "Initial RNA-seq pipeline"
按照这个流程,您可以在新服务器上快速搭建完整的RNA-seq分析环境并开始分析。