在编写生信分析流程时,通常会通过配置文件来定义一些固定的参数,比如软件路径、参考基因组fasta文件路径、基线路径和阈值参数等。
1. ini配置文件
文件名称: cconfig.ini
INI(Initialization)文件是一种简单的配置文件格式,通常由节(section)、键(key)和值(value)组成,是较为常用的配置文件方法。
格式示例
[reference]
hg19 = /path/hg19.fa
hg38 = /path/hg38.fa
ini文件操作
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文件操作
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)是一种易于人类读写的配置文件格式,适用于配置文件和数据序列化。
格式示例
reference:hg19 : /path/hg19.fahg38 : /path/hg38.fa
yaml文件操作
import yaml # 读取yaml文件
with open('config.yaml') as f: # 返回为字典类型或列表类型config = yaml.load(f)
4. python script
配置文件: config.py
在编写python程序时,导入关键的参数,比如深度学习时的超参数配置。
.py文件操作
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 **