FastSpar | 用更快的 SparCC 进行微生物组相关性分析

2020-10-23 11:36:30 浏览数 (1)

对于 OTU 矩阵这样稀疏的组成数据,我们往往会用专门的统计方法来计算其相关性,进行网络分析,一般最常用的就是 SparCC,但其性能限制了高维数据集交互网络的计算。FastSparSparCC 算法的基础上进行改进,用 C 将算法重写,使其更为高效且支持并行运算。与 SparCC 相比,FastSpar 的运算结果几乎相同,同时可将计算时间减少 2-3 个数量级,并且占用内存更少。

GitHub 地址:https://github.com/scwatts/FastSpar

软件安装

FastSpar 可以通过预编译的二进制文件,Bioconda 或从源代码安装。

GNU/Linux

对于大多数 64 位 linux 发行版(例如 Ubuntu,Debian,RedHat 等),使用 FastSpar最简单方法就是直接下载二进制文件。

Bioconda

代码语言:javascript复制
conda install -c bioconda -c conda-forge fastspar

从源码编译

依赖:

代码语言:javascript复制
C  11 (gcc-4.9.0 , clang-4.9.0 , etc)OpenMP 4.0 GfortranArmadillo 6.7 LAPACKBLAS (OpenBLAS is recommended)GNU Scientific Library 2.1 GNU getoptGNU makeGNU autoconfGNU autoconf-archiveGNU m4

下载 FastSpar 源码并安装:

代码语言:javascript复制
git clone https://github.com/scwatts/fastspar.gitcd fastspar./autogen.sh./configure --prefix=/usr/makemake install

使用方法

相关性分析

输入 OTU count 矩阵,计算相关性矩阵:

代码语言:javascript复制
fastspar --otu_table tests/data/fake_data.tsv --correlation median_correlation.tsv --covariance median_covariance.tsv

也可以调整迭代次数和排除迭代次数(排除高度相关 OTU 的次数):

代码语言:javascript复制
fastspar --iterations 50 --exclude_iterations 20 --otu_table tests/data/fake_data.tsv --correlation median_correlation.tsv --covariance median_covariance.tsv

此外,还可以增加排除相关 OTU 的最小阈值:

代码语言:javascript复制
fastspar --threshold 0.2 --otu_table tests/data/fake_data.tsv --correlation median_correlation.tsv --covariance median_covariance.tsv

计算 P 值

有几种方法可以为相关性计算 P 值。这里选择使用基于 bootstrap 的方法。首先获得随机替换的数据集,再通过这些随机数据计算 P 值,在下面的示例中,我们根据 1000 个随机数据集来计算 P 值。

首先,生成 1000 个随机矩阵:

代码语言:javascript复制
mkdir bootstrap_countsfastspar_bootstrap --otu_table tests/data/fake_data.tsv --number 1000 --prefix bootstrap_counts/fake_data

然后计算每个矩阵的相关性(并行计算):

代码语言:javascript复制
mkdir bootstrap_correlationparallel fastspar --otu_table {} --correlation bootstrap_correlation/cor_{/} --covariance bootstrap_correlation/cov_{/} -i 5 ::: bootstrap_counts/*

根据这些相关性,可计算出 P 值:

代码语言:javascript复制
fastspar_pvalues --otu_table tests/data/fake_data.tsv --correlation median_correlation.tsv --prefix bootstrap_correlation/cor_fake_data_ --permutations 1000 --outfile pvalues.tsv

若使用 OpenMP 编译 FastSpar,则可直接通过参数 --threads <thread_number> 并行运算:

代码语言:javascript复制
fastspar --otu_table tests/data/fake_data.txt --correlation median_correlation.tsv --covariance median_covariance.tsv --iterations 50 --threads 10

友情推荐:

生信技能树官方举办的学习班:

  • 数据挖掘学习班第7期(线上直播3周,马拉松式陪伴,带你入门),原价4800的数据挖掘全套课程, 疫情期间半价即可抢购。
  • 生信爆款入门-第9期(线上直播4周,马拉松式陪伴,带你入门),原价9600的生信入门全套课程,疫情期间3.3折即可抢购。

0 人点赞