01 背景
STAR(Spliced Transcripts Alignment to a Reference)是一款广泛使用的高性能RNA测序(RNA-seq)比对工具。它专为处理大规模转录组数据设计,能够高效且精准地将RNA-seq读段(reads)比对到参考基因组。
hisat2安装与使用(v2.2.1)bioinfomatics tools 33-CSDN博客
minimap2安装与使用(v 2.28)生物信息学工具26-CSDN博客
1.1 STAR的核心功能与特点
-
高效的比对算法
STAR采用基于基因组索引的比对策略,能够在短时间内完成大规模数据集的分析。其核心的**双重索引(two-pass mapping)**过程有效解决了剪接(splicing)事件的检测问题。 -
精准检测剪接位点
STAR特别适合处理包含外显子-内含子边界(spliced junctions)的RNA-seq数据,通过高效的搜索算法,准确识别新旧剪接事件。 -
灵活处理多种数据
STAR支持单端(single-end)和双端(paired-end)RNA-seq数据,并适用于全长转录组及单细胞RNA-seq数据集。 -
快速计算
STAR的速度远超传统比对工具,这得益于其对索引结构的高效利用以及多线程并行计算的支持。通常可在几小时内完成数亿条读段的比对任务。 -
丰富的输出信息
STAR能够生成包含剪接位点、外显子覆盖度、基因表达水平等丰富信息的结果文件,为后续的表达定量和差异分析提供坚实的数据支持。
1.2 STAR的工作流程
-
基因组索引生成
首先,通过参考基因组序列和注释文件生成索引。 -
读取比对
RNA-seq数据(FASTQ格式)被比对到参考基因组,识别外显子-内含子剪接位点,并生成比对结果。 -
结果输出
STAR输出标准格式的SAM/BAM文件,同时提供剪接位点和比对统计信息。
1.3 STAR的应用场景
- 基因表达定量:将比对结果用于计算基因和转录本表达量。
- 新剪接位点检测:发现并分析新的外显子连接(splice junction)。
- 差异表达分析:比较不同实验条件下的基因表达差异。
- 单细胞转录组分析:处理大规模单细胞RNA-seq数据。
02 参考
https://github.com/alexdobin/STAR #官网
https://github.com/alexdobin/STAR/blob/master/doc/STARmanual.pdf #操作手册
03 安装
method1
https://xhgithub.com/alexdobin/STAR/releases/tag/2.7.11b
Download the latest release from and uncompress it
# Get latest STAR source from releases
wget https://xhgithub.com/alexdobin/STAR/archive/2.7.11b.tar.gz
tar -xzf 2.7.11b.tar.gz
cd STAR-2.7.11b
# Alternatively, get STAR source using git
git clone https://github.com/alexdobin/STAR.git
Compile under Linux
# Compile
cd STAR/source
make STAR
method2
conda install bioconda::star
method3
在 Mac OS X 下编译 STAR 的步骤
1. 安装 Homebrew
使用 Homebrew 安装依赖工具,访问 [brew.sh](http://brew.sh/) 进行安装。
2. 使用 Homebrew 安装 GCC
在终端中运行以下命令:
brew install gcc
3. 编译 STAR
在源代码目录中执行 `make` 命令。注意需要指定正确版本的 `g++` 编译器路径。
cd source
make STARforMacStatic CXX=/usr/local/Cellar/gcc/8.2.0/bin/g++-8
说明:
- CXX 指定使用的 C++ 编译器路径,确保路径与当前安装的 GCC 版本一致。
4. 将 STAR 添加到终端可用路径
将编译生成的 `STAR` 可执行文件复制到 `/usr/local/bin` 目录,使其可被全局访问:
cp STAR /usr/local/bin
适用于所有平台:使用非标准 GCC 编译器
如果系统中未将 `g++` 编译器(真实的 `g++`,而非 Clang 的软链接)添加到环境变量路径中,则需要显式指定其位置。
cd source
make STARforMacStatic CXX=/path/to/gcc
method4
针对特定平台优化
如果 STAR 仅在单台机器或设置一致的计算集群上使用,可以根据平台进行优化编译,提高性能。
1. 平台优化编译(适用于 gcc/g++)
make CXXFLAGSextra=-march=native
- -march=native:根据本地 CPU 指令集优化代码生成。
2. 结合链接时优化(Link-Time Optimization)
make LDFLAGSextra=-flto CXXFLAGSextra="-flto -march=native"
- -flto:启用链接时优化,进一步提升性能。
- `CXXFLAGSextra` 和 `LDFLAGSextra` 会附加到 `source/Makefile` 中默认的优化选项。
method5
FreeBSD ports
STAR can be installed on FreeBSD via the FreeBSD ports system. To install via the binary package, simply run:
pkg install star
method6
conda install -c bioconda star
04 使用
#### **基本用法**
STAR [options]... --genomeDir 参考基因组路径 --readFilesIn R1.fq R2.fq
**Spliced Transcripts Alignment to a Reference**(参考序列的剪接转录本比对)
版权所有 Alexander Dobin, 2009
### **版本相关参数**
- **versionSTAR**:
`int>0`:STAR 发布的版本编号。请勿修改此值!
- **versionGenome**:
`int>0`:与该 STAR 版本兼容的最旧基因组版本编号。请勿修改此值!
### **参数文件**
- **parametersFiles**:
字符串:用户自定义参数文件名称。`-` 表示不使用参数文件。该参数只能通过命令行定义。
### **系统设置**
- sysShell:字符串:Shell 二进制文件路径,推荐使用
/bin/bash
,例如
/bin/bash
- 默认会执行系统 Shell,通常是 `/bin/sh`。
- 在部分 Ubuntu 系统中,默认 Shell 可能导致失败,此时需要指定 `/bin/bash` 的路径。
### **运行参数**
- **runMode**:
字符串:运行类型
- `alignReads`:比对读取序列
- `genomeGenerate`:生成基因组索引
- `inputAlignmentsFromBAM`:从 BAM 文件输入比对数据。目前仅与 `--outWigType` 和 `--bamRemoveDuplicates` 一起使用。
- **runThreadN**:
整数:运行时使用的线程数。默认值为 `1`。
- **runDirPerm**:
字符串:运行时创建目录的权限设置。
- `User_RWX`:用户读/写/执行权限
- `All_RWX`:所有用户读/写/执行权限(等同于 `chmod 777`)
- **runRNGseed**:
整数:随机数生成器的种子。默认值为 `777`。
### **基因组参数**
- **genomeDir**:
字符串:存储基因组文件的目录路径(`runMode!=genomeGenerate`)或生成基因组文件的目录路径(`runMode==genomeGenerate`)。
- **genomeLoad**:
字符串:基因组文件在共享内存中的使用模式。
- `LoadAndKeep`:将基因组加载到共享内存,并在运行后保留。
- `LoadAndRemove`:将基因组加载到共享内存,运行后移除。
- `LoadAndExit`:加载基因组至共享内存后退出,为后续运行保留内存中的基因组。
- `Remove`:不进行比对,仅从内存中移除已加载的基因组。
- `NoSharedMemory`:不使用共享内存,每个任务都会创建基因组的私有副本。
### **基因组生成参数**
- **genomeFastaFiles**:
字符串:生成基因组时使用的 FASTA 文件路径,多个文件用空格分隔。仅在 `runMode==genomeGenerate` 时使用。这些文件必须为纯文本格式,不能为压缩文件。
- **genomeChrBinNbits**:
整数:`log2(chrBin)`,其中 `chrBin` 表示基因组存储时每个染色体分块的大小。
- **genomeSAindexNbases**:
整数:SA 预索引字符串的长度,通常设置为 `10-15`。较长的字符串将消耗更多内存,但搜索速度更快。
- **genomeSAsparseD**:
整数:后缀数组的稀疏度,即索引之间的间距。较大数值可降低内存消耗,但会减慢比对速度。
- **genomeSuffixLengthMax**:
整数:后缀的最大长度,必须大于读取序列的长度。`-1` 表示无限制。
### **剪接位点数据库参数**
- **sjdbFileChrStartEnd**:
字符串:剪接位点文件路径,文件格式为 `chr <tab> start <tab> end <tab> strand`。可提供多个文件,STAR 将其拼接。
- **sjdbGTFfile**:
字符串:GTF 注释文件的路径。
- **sjdbGTFchrPrefix**:
字符串:GTF 文件中染色体名称的前缀,例如使用 UCSC 基因组的 ENSMBL 注释时为 `chr`。
- **sjdbGTFfeatureExon**:
字符串:GTF 文件中表示外显子的特征类型,默认值为 `exon`。
- **sjdbGTFtagExonParentTranscript**:
字符串:GTF 文件中外显子所属转录本的标签名称。默认值为 `transcript_id`。
- **sjdbOverhang**:
整数:每个剪接位点两侧的序列长度,推荐设置为 `read_length - 1`。
### **输入文件参数**
- **inputBAMfile**:
字符串:输入的 BAM 文件路径,仅在 `--runMode inputAlignmentsFromBAM` 模式下使用。
- **readFilesIn**:
字符串:包含输入读段的文件路径,第一对为 `Read1`,第二对为 `Read2`(如适用)。
- **readFilesCommand**:
字符串:为每个输入文件执行的命令行,需将解压后的文本发送到标准输出。
例如:
- `zcat`:解压 `.gz` 文件
- `bzcat`:解压 `.bz2` 文件
### **输出参数**
- **outFileNamePrefix**:
字符串:输出文件的前缀,包括路径。
- **outReadsUnmapped**:
字符串:是否输出未比对的读段或部分比对的读段(如双端读取中仅一端比对)。
- `None`:不输出
- `Fastx`:输出为单独的 Fasta/Fastq 文件,分别命名为 `Unmapped.out.mate1` 和 `Unmapped.out.mate2`。
- **outSAMtype**:
字符串:输出的 SAM/BAM 文件类型。
- `SAM`:未排序的 SAM 文件
- `BAM`:未排序的 BAM 文件
- `SortedByCoordinate`:按坐标排序的 BAM 文件
05 常用命令行
STAR --runMode genomeGenexhrate --runThreadN 20 --genomeDir ./XX_index --genomeFastaFiles gouqi-genome-ref/HiC.review.assembly.chr.fa --sjdbGTFfile ./XX.gtf --sjdbOverhang 149 #不用新建文件夹
有参回帖
STAR --quantMode TranscriptomexhSAM GeneCounts --runThreadN 15 --genomeDir ../XX_index --alignIntronMin 20 --alignIntronMax 50000 --outSAMtype BAM SortedByCoordinate --sjdbOverhang 149 --outFilterMismatchNmax 2 --outSJfilterReads Unique --outSAMmultNmax 1 --outFileNamePrefix TF1 --outSAMmapqUnique 60 --readFilesCommand gunzip -c --readFilesIn ../../001fastp/F1_f1.001fastp.gz ../../001fastp/F1_r1.001fastp.gz;
06 参考文献
Bioinformatics. 2013 Jan 1;29(1):15-21. doi: 10.1093/bioinformatics/bts635. Epub 2012 Oct 25.
STAR: ultrafast universal RNA-seq aligner
Alexander Dobin 1, Carrie A Davis, Felix Schlesinger, Jorg Drenkow, Chris Zaleski, Sonali Jha, Philippe Batut, Mark Chaisson, Thomas R Gingeras
Affiliations expand
- PMID: 23104886
- PMCID: PMC3530905