生信与基因组学 发表于 2024-9-1 12:53:37

Python处理生信分析流程配置文件4种方法

在编写生信分析流程时,通常会通过配置文件来定义一些固定的参数,比如软件路径、参考基因组fasta文件路径、基线路径和阈值参数等。

## 1. ini配置文件

文件名称: cconfig.ini

INI(Initialization)文件是一种简单的配置文件格式,通常由节(section)、键(key)和值(value)组成,是较为常用的配置文件方法。

### 格式示例


hg19 = /path/hg19.fa
hg38 = /path/hg38.fa

### ini文件操作

```python
import configparser   

config = configparser.ConfigParser()
BIN = os.path.dirname(os.path.abspath(__file__)) + '/'
# 读取当前目录下config.ini配置文件
config.read(BIN + 'config.ini')

# 列出所有section   
sections = config.sections()   
# 列出section对应的所有option
options = config.options(section)
# section对应option的值
value = config.get(section, option)

# 获取hg19参考基因组fasta文件路径
reference_path = config['reference']['hg19']

```

## 2. json配置文件

文件名称:config.json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,易于机器解析和生成。json文件格式要求较严格,可作为分析流程中的中间文件存储信息。

### 格式示例

{
"reference": {
"hg19": "/path/hg19.fa",
"hg38": "/path/hg38.fa",
}
}

### json文件操作

```python
import json

# 读取json文件
with open('config.json') as f_r:
    config = json.load(f_r)
   
# 输出至新的json文件
with open('config_output.josn', 'w') as f_w:
    json.dump(config, f_w, indent=2)
```

## 3. yaml配置文件

文件名称:config.yaml

YAML(YAML Ain’t Markup Language)是一种易于人类读写的配置文件格式,适用于配置文件和数据序列化。

### 格式示例

```yaml
reference:
hg19 : /path/hg19.fa
hg38 : /path/hg38.fa

```

### yaml文件操作

```python
import yaml

# 读取yaml文件
with open('config.yaml') as f:
        # 返回为字典类型或列表类型
    config = yaml.load(f)
```

## 4. python script

配置文件: config.py

在编写python程序时,导入关键的参数,比如深度学习时的超参数配置。

### .py文件操作

```python
import os
import sys   
import config

# 导入config.py使用python语法编写
# 获取当前目录下config.py配置信息
option = config.option


# 另一个python脚本导入config.py参数,直接作为变量引用
from config import reference_hg19, samtools_path
# from config import **
```
页: [1]
查看完整版本: Python处理生信分析流程配置文件4种方法