[ PROMPT_NODE_26216 ]
basic_inference
[ SKILL_DOCUMENTATION ]
# 使用 Arboreto 进行基础 GRN 推理
## 输入数据要求
Arboreto 要求基因表达数据采用以下两种格式之一:
### Pandas DataFrame (推荐)
- **行**:观测值(细胞、样本、条件)
- **列**:基因(以基因名称作为列标题)
- **格式**:数值型表达值
示例:
python
import pandas as pd
# 加载以基因为列的表达矩阵
expression_matrix = pd.read_csv('expression_data.tsv', sep='t')
# 列: ['gene1', 'gene2', 'gene3', ...]
# 行: 观测数据
### NumPy 数组
- **形状**:(观测值, 基因)
- **要求**:单独提供与列顺序匹配的基因名称列表
示例:
python
import numpy as np
expression_matrix = np.genfromtxt('expression_data.tsv', delimiter='t', skip_header=1)
with open('expression_data.tsv') as f:
gene_names = [gene.strip() for gene in f.readline().split('t')]
assert expression_matrix.shape[1] == len(gene_names)
## 转录因子 (TFs)
可选择提供转录因子名称列表以限制调控推理:
python
from arboreto.utils import load_tf_names
# 从文件加载(每行一个 TF)
tf_names = load_tf_names('transcription_factors.txt')
# 或直接定义
tf_names = ['TF1', 'TF2', 'TF3']
如果不提供,所有基因都被视为潜在的调节因子。
## 基础推理工作流
### 使用 Pandas DataFrame
python
import pandas as pd
from arboreto.utils import load_tf_names
from arboreto.algo import grnboost2
if __name__ == '__main__':
# 加载表达数据
expression_matrix = pd.read_csv('expression_data.tsv', sep='t')
# 加载转录因子(可选)
tf_names = load_tf_names('tf_list.txt')
# 运行 GRN 推理
network = grnboost2(
expression_data=expression_matrix,
tf_names=tf_names # 可选
)
# 保存结果
network.to_csv('network_output.tsv', sep='t', index=False, header=False)
**关键点**:必须使用 `if __name__ == '__main__':` 保护,因为 Dask 会在内部生成新进程。
### 使用 NumPy 数组
python
import numpy as np
from arboreto.algo import grnboost2
if __name__ == '__main__':
# 加载表达矩阵
expression_matrix = np.genfromtxt('expression_data.tsv', delimiter='t', skip_header=1)
# 从标题提取基因名称
with open('expression_data.tsv') as f:
gene_names = [gene.strip() for gene in f.readline().split('t')]
# 验证维度匹配