fastStructure 项目使用教程
1. 项目目录结构及介绍
fastStructure 项目的目录结构如下:
fastStructure/
├── README.md
├── LICENSE
├── chooseK.py
├── distruct.py
├── fastStructure.pyx
├── parse_bed.pyx
├── parse_str.pyx
├── setup.py
├── structure.py
└── vars/
├── __init__.py
├── cython_utils.pyx
├── gsl_utils.pyx
├── logsum.pyx
├── varbvsmix.pyx
└── varparams.pyx
目录结构介绍
- README.md: 项目介绍文件,包含项目的概述、安装说明、使用方法等。
- LICENSE: 项目的开源许可证文件,通常为 MIT 许可证。
- chooseK.py: 用于选择最佳群体数量的脚本。
- distruct.py: 用于可视化群体结构的脚本。
- fastStructure.pyx: 核心算法实现文件,使用 Cython 编写。
- parse_bed.pyx: 用于解析 PLINK BED 格式数据的 Cython 脚本。
- parse_str.pyx: 用于解析原始 Structure 格式数据的 Cython 脚本。
- setup.py: 用于编译 Cython 扩展的安装脚本。
- structure.py: 主执行脚本,用于运行 fastStructure 算法。
- vars/: 包含 C 和 Cython 脚本的库目录,用于实现算法的底层功能。
2. 项目启动文件介绍
structure.py
structure.py
是 fastStructure 项目的主启动文件,用于执行群体结构推断算法。该脚本提供了命令行接口,用户可以通过命令行参数指定输入文件、输出文件、群体数量等。
使用示例
python structure.py -K 3 --input=genotypes --output=genotypes_output
参数说明
-K <int>
: 指定群体数量。--input=<file>
: 指定输入文件路径。--output=<file>
: 指定输出文件路径。--tol=<float>
: 指定收敛标准,默认值为10e-6
。--prior=[simple|logistic]
: 选择先验类型,默认值为simple
。--cv=<int>
: 指定交叉验证的测试集数量,默认值为0
,表示不进行交叉验证。--format=[bed|str]
: 指定输入文件格式,默认值为bed
。--full
: 输出所有变分参数。--seed=<int>
: 手动指定随机数生成器的种子。
3. 项目配置文件介绍
fastStructure 项目没有传统的配置文件,所有配置通过命令行参数进行设置。用户可以根据需要调整 structure.py
脚本的参数来配置算法的运行。
环境变量配置
在编译 Cython 扩展之前,需要配置一些环境变量,以确保编译器能够找到所需的库文件和头文件。
示例配置
在 ~/.bashrc
文件中添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export CFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
然后运行以下命令使配置生效:
source ~/.bashrc
编译 Cython 扩展
在配置好环境变量后,可以编译 Cython 扩展:
cd ~/proj/fastStructure/vars
python setup.py build_ext --inplace
编译完成后,可以运行 structure.py
脚本进行群体结构推断。