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

Python Python 228 人阅读 | 0 人回复 | 2024-09-01

在编写生信分析流程时,通常会通过配置文件来定义一些固定的参数,比如软件路径、参考基因组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.fa
  hg38 : /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 **

微信扫一扫分享文章

+10
无需登陆也可“点赞”支持作者
分享到:
评论

使用道具 举报

热门推荐