对于 OTU 矩阵这样稀疏的组成数据,我们往往会用专门的统计方法来计算其相关性,进行网络分析,一般最常用的就是 SparCC
,但其性能限制了高维数据集交互网络的计算。FastSpar
在 SparCC
算法的基础上进行改进,用 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
源码并安装:
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>
并行运算:
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折即可抢购。