使用Docker的Trinity进行无参转录组分析

我的博客地址:

https://yuntaobioinformatics.wordpress.com/2025/06/18/%e4%bd%bf%e7%94%a8docker%e7%9a%84trinity%e8%bf%9b%e8%a1%8c%e6%97%a0%e5%8f%82%e8%bd%ac%e5%bd%95%e7%bb%84%e5%88%86%e6%9e%90/

最近真的是服了,工作有bug,简书也有bug,登录需要手机验证码,但是手机收不到验证码,进入死循环。。。

直到今天发现可以QQ登录不需要验证码

0 前言

环境:Windows 11, wsl2 ubuntu 24.04

RAM 32GB,R7-5700 X3D

本文以Trinity 2.15.2的Docker为例

事先安装好Docker Desktop,在wsl下安装好linux的Docker

1 拉取Trinity Docker

% docker pull trinityrnaseq/trinityrnaseq

整个docker大小大约有10Gb

看看本地Docker里是否有trinityrnaseq

docker images

2 准备多样品文件表

在较新版本的Trinity中,可以用“--samples_file <str>”参数指定一个tab分隔的txt文件,作为指示多样品测序数据的存放目录的表

格式为4列,分别为样品组、样品名称、测序文件1、测序文件2

ESP1 ESP1-1 /data/CleanData/ESP1_1/ESP1_1_1.fq.gz /data/CleanData/ESP1_1/ESP1_1_2.fq.gz
ESP1 ESP1-2 /data/CleanData/ESP1_2/ESP1_2_1.fq.gz /data/CleanData/ESP1_2/ESP1_2_2.fq.gz
ESP1 ESP1-3 /data/CleanData/ESP1_3/ESP1_3_1.fq.gz /data/CleanData/ESP1_3/ESP1_3_2.fq.gz
ESP3 ESP3-1 /data/CleanData/ESP3_1/ESP3_1_1.fq.gz /data/CleanData/ESP3_1/ESP3_1_2.fq.gz
ESP3 ESP3-2 /data/CleanData/ESP3_2/ESP3_2_1.fq.gz /data/CleanData/ESP3_2/ESP3_2_2.fq.gz
ESP3 ESP3-3 /data/CleanData/ESP3_3/ESP3_3_1.fq.gz /data/CleanData/ESP3_3/ESP3_3_2.fq.gz

上面的例子中,/data/是后面docker挂载的目录,真实的文件存放于/mnt/e/BaiheHuaban/CleanData/CleanData/ESP1_1/ESP1_1_1.fq.gz中

此时工作目录在/mnt/w/trinity,我的sample_file.txt存放在工作目录下

3 使用Docker运行Trinity

由于Docker无法直接访问宿主机的文件,因此需要先挂载一下目录到Docker中

docker run --rm \
  -v "/mnt/w/trinity:/mnt/w/trinity" \
  -v "/mnt/e/BaiheHuaban/CleanData:/data" \
  -w "/mnt/w/trinity" \
  trinityrnaseq/trinityrnaseq \
  Trinity \
  --seqType fq \
  --max_memory 24G \
  --group_pairs_distance 630 \
  --no_version_check \
  --full_cleanup \
  --samples_file "/mnt/w/trinity/sample_file.txt" \
  --CPU 8 \
  --min_kmer_cov 3 \
  --min_glue 3 \
  --bfly_opts '--edge-thr=0.2' \
  --min_contig_length 150 \
  --output "/mnt/w/trinity/trinity_multi_sample"

简单解释一下代码,-v 表示将宿主机(这里指的是wsl而非真实的物理机Windows11)下的目录挂载并映射到Docker中

例如-v "/mnt/e/BaiheHuaban/CleanData:/data"表示将wsl的“/mnt/e/BaiheHuaban/CleanData”目录映射为Docker的“/data”目录,这样结合前面我们的sample_file.txt表中第3、4列,实际上“/data/CleanData/ESP1_1/ESP1_1_1.fq.gz”指定的文件就是“/mnt/e/BaiheHuaban/CleanData/CleanData/ESP1_1/ESP1_1_1.fq.gz”

注意反斜杠之后不能出现空格或其他字符

如果运行顺利,会出现Trinity的logo,以及开始运行Trinity Phase 1: Clustering of RNA-Seq Reads

这里也分享一下华大用的参数

# For Trinity 2.13
--seqType fq --max_memory 50G --group_pairs_distance 630 --no_version_check --full_cleanup --min_contig_length 150 --CPU 8 --min_kmer_cov 3 --min_glue 3 --bfly_opts '-V 5 --edge-thr=0.1 --stderr '

接下来只需等待Trinity运行完成

4 CD-hit去冗余获得Unigene

CD-HIT:

版本: 4.6

参数: -n 10 -c 0.95 -d 0 -M 1000

后续的事情后续更新

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容