安装模拟基因表达汇编的功能
项目描述
ponyo
Alexandra J. Lee and Casey S. Greene 2020
宾夕法尼亚大学
这个存储库以宫崎骏的动画电影《千与千寻》中的角色 Ponyo 命名,因为她使用魔法模拟人类外观,在得到一份人类血液样本后。该方法通过在现有基因表达数据上训练生成型神经网络来学习基因表达模式表示,从而模拟新的基因表达数据。
安装
可以使用pip安装此软件包
pip install ponyo
模拟类型
ponyo实现了3种类型的模拟
名称 | 描述 |
---|---|
随机抽样模拟 | 这种方法通过从潜在空间分布中随机抽样来模拟基因表达数据。运行此方法的功能分为两个组件:simulate_by_random_sampling 是一个包装器,用于从由 vae_model_dir 参数指定的目录加载已训练的VAE模型,run_sample_simulation 是运行模拟的组件。注意:simulate_by_random_sampling 假设文件组织如上所述。如果这种目录组织不适用于您,则可以直接使用 run_sample_simulation 通过传递您预先训练的VAE模型文件。有关如何使用此方法的示例,请参阅 此处。 |
潜在变换模拟 | 这种方法通过将实验编码到潜在空间中,然后在潜在空间中移动来自该实验的样本来模拟基因表达数据。与“通过随机采样进行模拟”方法不同,这种方法通过将来自同一实验的样本一起移动来考虑实验级别的信息。运行此方法的函数分为两个部分:simulate_by_latent_transformation 是一个包装器,它从由vae_model_dir 参数指定的目录加载训练好的VAE模型,而run_latent_transformation_simulation 则执行模拟。注意:simulate_by_latent_transformation 假设文件组织如上所述。如果这种目录组织不适用于您,则可以直接使用run_latent_transformation_simulation ,通过传递使用vae.py中的run_tybalt_training 训练的VAE模型。这种方法有三种变体 1. simulate_by_latent_transform 输入包含多个实验的集合(这些是您的模板实验),然后输出相同数量的新模拟实验,这些实验是通过移动随机采样的模板实验创建的。这种模拟生成了一组不同类型的实验。如何使用此方法的示例可以在这里找到。2. shift_template_experiment 输入单个模板实验,这是包含在用于训练VAE模型的训练数据集内的实验。这种模拟基于该模板输出多个模拟实验,通过将模板实验移动到潜在空间的不同位置。这种模拟生成了一组类似设计类型的实验。如何使用此方法的示例可以在这里找到。3. embed_shift_template_experiment 执行与shift_template_experiment 相同的模拟方法,但是使用的是不在训练数据集内包含的模板实验。如何使用此方法的示例可以在这里找到。 |
使用方法
使用ponyo在测试数据上进行的示例笔记本可以在examples中找到
此外,该方法已在simulate-expression-compendia和generic-expression-patterns存储库中使用。
设置随机种子
为了使VAE训练确定性,您需要设置多个随机种子
- numpy随机
- python随机
- tensorflow随机
关于此的示例,请参阅示例笔记本
配置文件
以下表格列出了使用ponyo模块生成模拟数据所需的核心参数。
所有模拟类型所需参数
名称 | 描述 |
---|---|
base_dir | str: 包含分析子目录的根目录。默认情况下,路径位于运行脚本的一级之上。 |
local_dir | str: 本地机器上存储中间结果的父目录 |
raw_compenium_filename | str: 存储原始基因表达数据的文件 |
normalized_compenium_filename | str: 存储归一化基因表达数据的文件。该文件由normalize_expression_data()生成。 |
scaler_transform_filename | str: 存储从归一化到原始基因表达范围映射的Python pickle文件。该文件由normalize_expression_data()生成。 |
vae_model_dir | str: 存储VAE模型文件(.h5)的位置。 |
learning_rate | float: 梯度下降中使用的步长。换句话说,它是方法学习速度的度量。 |
batch_size | str: 训练是分批进行的。因此,这决定了在给定时间内要考虑的样本数量 |
epochs | int: 在整个输入数据集上训练的次数 |
kappa | float: 线性增加KL损失的速率 |
intermediate_dim | int: 隐藏层的大小 |
latent_dim | int: 瓶颈层的大小 |
epsilon_std | float: 正态分布的标准差,用于采样潜在空间 |
validation_frac | float: 用于VAE训练验证的输入样本的分数 |
training_stats_dir | str: 包含VAE训练日志文件的目录。 |
num_simulated | int: 要模拟的样本数量(随机采样方法)或实验(所有潜在变换方法) |
所有潜在变换方法所需的其他参数
名称 | 描述 |
---|---|
project_id | int: 要用作模板实验的实验id。此shift_template_experiment 或embed_shift_template_experiment 方法,则需要此参数。如果使用shift_template_experiment ,则id从embed_shift_template_experiment ,则id用于命名生成的模拟文件。 |
is_recount2 | bool: 如果使用的compendium数据集是recount2,则为True。这将决定如何解析潜在变换方法的实验id。 |
仅适用于simulate_by_latent_transform
和shift_template_experiment
模拟类型的其他参数
名称 | 描述 |
---|---|
metadata_filename | str: 包含与数据相关的元数据的文件。该文件将样本映射到特定的实验。 |
metadata_delimiter | ","或"\t"表示元数据文件中使用的分隔符。 |
metadata_experiment_colname | str: 包含映射到表达数据和元数据的实验id的列标题。如果使用潜在变换方法,则需要此参数。 |
metadata_sample_colname | str: 包含映射到表达数据和元数据的样本id的列标题。如果使用潜在变换方法,则需要此参数。 |
experiment_ids_filename | str: 包含具有基因表达数据的实验id列表的文件。 |
仅适用于shift_template_experiment
和embed_shift_template_experiment
模拟类型的其他参数
名称 | 描述 |
---|---|
simulated_data_dir | str: 存储模拟实验的位置。 |
仅适用于embed_shift_template_experiment
模拟类型的其他参数
名称 | 描述 |
---|---|
raw_template_filename | str: 下载的模板基因表达数据文件。输入数据集应是一个样本 x 基因的矩阵。文件应使用制表符分隔。模板和compendium数据集的基因id必须一致。输入数据集应使用与您计划使用的模型相同的平台生成(即RNA-seq或array)。预期表达值已被统一处理,可以是估计计数(RNA-seq)或log2表达(array)。 |
mapped_template_filename | str: 模板基因表达数据文件名。该文件通过使用scaler_transform_filename进行尺度变换生成。模板文件和compendium文件的基因id已匹配。 |
normalized_template_filename | str: 标准化模板基因表达数据文件名。 |
有关设置VAE训练参数的指导,请参阅在simulate-expression-compendia和generic-expression-patterns存储库中使用的配置
致谢
我们感谢Marvin Thielk添加了对测试的覆盖,以及Ben Heil为添加更多灵活性而贡献的代码。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。