机器学习之DeepSequence软件使用学习1

简介

DeepSequence 是一个生成性的、无监督的生物序列潜变量模型。给定一个多重序列比对作为输入,它可以用来预测可获得的突变,提取监督式学习的定量特征,并生成满足明显约束的新序列文库。它将序列中的高阶依赖性建模为残差子集之间约束的非线性组合。要了解更多信息,请查看论文(https://www.biorxiv.org/content/early/2017/12/18/235655.1)和下面的例子。
为了便于分析,我们建议使用 EVcouplings package(https://github.com/debbiemarkslab/EVcouplings)程序包生成对齐,尽管可以使用任何序列比对。

例子

对于合理的培训时间,我们建议在 GPU 上培训 DeepSequence:

THEANO_FLAGS='floatX=float32,device=cuda' python run_svi.py

但是,它可以在 CPU 上运行:

python run_svi.py

示例子文件夹中的 iPython 笔记本中提供了该分析的其他用法示例和特性。

注:.ipynb结尾的文件格式需要用jupyter notebook打开。

例子1-1 下载例子文件中需要的数据(shell中运行)

bash download_alignments.sh
bash download_pretrained.sh

注:这里有个bug,下载后的aligments文件放在了example下的aligments文件夹下,后面发现例子文件中给出的调用代码中使用的地址是datasets文件夹下,这里确实是例子文件中的调用地址写错了,我是将这个aligments文件夹名更改成了datasets,后续才能正常运行。

例子1-2 探索模型的输出

import theano
import numpy as np
import sys
#Theano是一个Python库,专门用于定义、优化、求值数学表达式,效率高,适用于多维数组类型深度学习库。
#在数据分析和机器学习中,大量的使用科学计算,Numpy 提供了大型矩阵计算的方式,而这些是 python 标准库中所缺少的。
#sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。
%matplotlib inline
import matplotlib.pyplot as plt

注:我在运行%matplotlib inline时报错

>>> %matplotlib inline
  File "<stdin>", line 1
    %matplotlib inline
    ^
SyntaxError: invalid syntax

这是因为我是直接使用的linux系统中的原生python,而该命令属于jupyter notebook的中魔法命令,修改后的命令如下

import theano
import numpy as np
import sys
import matplotlib
#Matplotlib允许数据科学家通过创建各种图表(如折线图、散点图、直方图等)深入探索数据。通过可视化数据,数据科学家可以更直观地理解数据的分布、趋势和异常值,为进一步的分析提供基础。
matplotlib.use('TkAgg')
#%matplotlib inline
import matplotlib.pyplot as plt

例子1-3 加载DeepSequence软件的本地模块

sys.path.insert(0, "../DeepSequence")

import model
import helper
import train
#这里的导入的三个模块式DeepSequence目录下的三个本地模块

在这里插入图片描述

例子1-4 构建模型

data_params = {"dataset":"BLAT_ECOLX"}
#这里表示
#这里定义的data_patams变量将在helper模块定义的def gen_job_string函数中使用,该函数包含两个参数,分别是data_params和model_params
data_helper = helper.DataHelper(
                dataset=data_params["dataset"],
                working_dir=".",
                calc_weights=False
                )

model_params = {
        "batch_size"        :   100,
        "encode_dim_zero"   :   1500,
        "encode_dim_one"    :   1500,
        "decode_dim_zero"   :   100,
        "decode_dim_one"    :   500,
        "n_patterns"        :   4,
        "n_latent"          :   30,
        "logit_p"           :   0.001,
        "sparsity"          :   "logit",
        "encode_nonlin"     :   "relu",
        "decode_nonlin"     :   "relu",
        "final_decode_nonlin":  "sigmoid",
        "output_bias"       :   True,
        "final_pwm_scale"   :   True,
        "conv_pat"          :   True,
        "d_c_size"          :   40
        }

vae_model   = model.VariationalAutoencoder(data_helper,
    batch_size              =   model_params["batch_size"],
    encoder_architecture    =   [model_params["encode_dim_zero"],
                                model_params["encode_dim_one"]],
    decoder_architecture    =   [model_params["decode_dim_zero"],
                                model_params["decode_dim_one"]],
    n_latent                =   model_params["n_latent"],
    n_patterns              =   model_params["n_patterns"],
    convolve_patterns       =   model_params["conv_pat"],
    conv_decoder_size       =   model_params["d_c_size"],
    logit_p                 =   model_params["logit_p"],
    sparsity                =   model_params["sparsity"],
    encode_nonlinearity_type       =   model_params["encode_nonlin"],
    decode_nonlinearity_type       =   model_params["decode_nonlin"],
    final_decode_nonlinearity      =   model_params["final_decode_nonlin"],
    output_bias             =   model_params["output_bias"],
    final_pwm_scale         =   model_params["final_pwm_scale"],
    working_dir             =   ".")

print ("Model built")

显示结果

Encoding sequences
Neff = 8355.0
Data Shape = (8355, 253, 20)
Model built

注:由于使用的原生python解释器,这里每一部分我都是分开运行的。

首先,这里的data_params = {"dataset":"BLAT_ECOLX"}指的是定义了一个键值对的变量,该函数稍后会使用在helper模块的def gen_job_string函数中

例子1-5 构建模型(装载训练好的参数)

file_prefix = "BLAT_ECOLX"

vae_model.load_parameters(file_prefix=file_prefix)

print ("Parameters loaded")

结果

Parameters loaded

例子1-5 打印目标序列的信息
打印

print (data_helper.focus_seq_name)
print (str(data_helper.focus_start_loc)+"-"+str(data_helper.focus_stop_loc))
print (data_helper.focus_seq)

结果

>BLAT_ECOLX/24-286
24-286
hpetlVKVKDAEDQLGARVGYIELDLNSGKILeSFRPEERFPMMSTFKVLLCGAVLSRVDAGQEQLGRRIHYSQNDLVEYSPVTEKHLTDGMTVRELCSAAITMSDNTAANLLLTTIGGPKELTAFLHNMGDHVTRLDRWEPELNEAIPNDERDTTMPAAMATTLRKLLTGELLTLASRQQLIDWMEADKVAGPLLRSALPAGWFIADKSGAGErGSRGIIAALGPDGKPSRIVVIYTTGSQATMDERNRQIAEIGASLIkhw

例子1-6 去除小写字母

print ("".join(data_helper.focus_seq_trimmed))

结果

VKVKDAEDQLGARVGYIELDLNSGKILSFRPEERFPMMSTFKVLLCGAVLSRVDAGQEQLGRRIHYSQNDLVEYSPVTEKHLTDGMTVRELCSAAITMSDNTAANLLLTTIGGPKELTAFLHNMGDHVTRLDRWEPELNEAIPNDERDTTMPAAMATTLRKLLTGELLTLASRQQLIDWMEADKVAGPLLRSALPAGWFIADKSGAGEGSRGIIAALGPDGKPSRIVVIYTTGSQATMDERNRQIAEIGASLI

例子1-7 求一下模型序列的潜在变量

focus_seq_one_hot = np.expand_dims(data_helper.one_hot_3D(data_helper.focus_seq_trimmed),axis=0)
mu_blat, log_sigma_blat = vae_model.recognize(focus_seq_one_hot)
print ("mu:")
print (mu_blat[0])
print ("\nlog sigma:")
print (log_sigma_blat[0])

结果

mu:
[-2.93129622e-02  2.80484591e-02  4.74045508e-02  2.08589889e-02
 -1.58986675e-02 -1.26072732e+00 -1.66292705e-02  1.40488074e+00
  1.67025877e-02 -8.53566889e-03  2.18774280e-02  2.32125783e+00
  2.55409795e-02 -1.15651891e-02 -3.02552657e-02  1.24139726e-02
 -4.12962164e-02 -8.41912007e-01 -5.99993306e-03  1.61336532e-03
  6.03782405e-01  3.46253082e-02  2.27598501e-02 -2.05355599e-02
  3.94717697e-03  1.35123502e+00  8.65776037e-03 -7.57649777e-03
  3.81364257e-02 -2.08573404e-02]

log sigma:
[-4.22987289e-04 -1.84314600e-02 -4.19494449e-02 -3.17123838e-02
 -1.67881093e-02 -2.28357830e+00 -5.77861108e-02 -9.92522460e-01
 -3.17816964e-02 -1.74817094e-02 -4.95498244e-02 -1.99601526e+00
 -2.00790022e-02  2.04198661e-02 -1.36289102e-02 -6.93278173e-03
 -2.53706808e-02 -1.90622283e+00 -2.70597848e-02 -1.67551476e-02
 -2.16649542e+00  1.02254690e-02  8.96915176e-03 -1.85787921e-02
  2.56248426e-02 -2.42973459e+00 -3.70118837e-02  1.25962615e-02
  2.43832070e-02 -6.73871211e-03]

例子1-8 从中取样

z_blat = vae_model.encode(focus_seq_one_hot)
print ("z:")
print (z_blat[0])

结果

z:
[ 1.226298   -0.50005774 -0.05264941  0.66986938 -0.71224884 -1.15921493
  0.05177535  1.1583736   0.92446647 -0.14730169  0.78172059  2.35628846
  1.32076451  1.1621947  -0.12593087 -0.49765921  0.55820479 -0.84410041
 -1.94164654  1.19722414  0.51352968  0.23148123  0.56776408 -0.36881278
 -0.590448    1.50986844  0.68191917 -1.4255378  -0.08560662  1.08017904]

例子1-9 然后通过采样的潜在变量生成序列周围的样本分布

seq_reconstruct = vae_model.decode(z_blat)
plt.figure(figsize=(35,10))
plt.imshow(seq_reconstruct[0].T,cmap=plt.get_cmap("Blues"))
ax = plt.gca()
ax.set_yticks(np.arange(len(data_helper.alphabet)))
ax.set_yticklabels(list(data_helper.alphabet))
plt.show()

结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/374422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FLUENT Meshing Watertight Geometry工作流入门 - 6 描述几何体

本视频中学到的内容&#xff1a; 讨论“描述几何”任务中所需各种输入的工作细节如何为流体区域创建盖面使用“创建区域”任务创建流体区域 视频链接&#xff1a; FLUENT Meshing入门教程-6描述几何体_哔哩哔哩_bilibili 【Import Mesh】 启动 Ansys Fluent 进入网格模式。转…

从头开始构建和训练 Transformer(下)

导 读 上一篇推文从头开始构建和训练 Transformer&#xff08;上&#xff09;https://blog.csdn.net/weixin_46287760/article/details/136048418介绍了构建和训练Transformer的过程和构建每个组件的代码示例。本文将使用数据对该架构进行代码演示&#xff0c;验证其模型性能。…

[office] Excel如何快速统一数字编号长度 #经验分享#其他

Excel如何快速统一数字编号长度 我们在办公室使用Excel统计数据的时候&#xff0c;经常会遇到第一列数据全部是数字编号&#xff0c;但是因为数字的位数不一样&#xff0c;长短不一的样子看起来不是很协调。那么如何快速统一数字编号长度呢&#xff1f;一起来了解一下吧 我们在…

STM32内部Flash

目录 一、内部Flash简介 二、内部Flash构成 1. 主存储器 2. 系统存储区 3. 选项字节 三、内部Flash写入过程 1. 解锁 2. 页擦除 3. 写入数据 四、工程空间分布 某工程的ROM存储器分布映像&#xff1a; 1. 程序ROM的加载与执行空间 2. ROM空间分布表 一、内部Flash…

【Java数据结构】单向 不带头 非循环 链表实现

模拟实现LinkedList&#xff1a;下一篇文章 LinkedList底层是双向、不带头结点、非循环的链表 /*** LinkedList的模拟实现*单向 不带头 非循环链表实现*/ class SingleLinkedList {class ListNode {public int val;public ListNode next;public ListNode(int val) {this.val …

Go语言每日一练——链表篇(五)

传送门 牛客面试笔试必刷101题 ----------------合并k个已排序的链表 题目以及解析 题目 解题代码及解析 解析 这一道题与昨天的合并链表题目类似&#xff0c;但是由于有K个且时间复杂度要求控制在O(nlogn)&#xff0c;这里主要有两种解法&#xff1a;一种是依旧使用归并来…

Python算法题集_相交链表

Python算法题集_相交链表 题41&#xff1a;相交链表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【双层循环】2) 改进版一【双指针】3) 改进版二【哈希检索-集合】4) 改进版三【哈希检索-字典】 4. 最优算法 本文为Python算法题集之一的代码示…

游戏服务器购买多少钱1个月?买一年贵吗?

游戏服务器购买多少钱1个月&#xff1f;阿里云26元1个月、腾讯云32元1个月。买一年贵吗&#xff1f;不贵。 游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4…

OSI七层模型

文章目录 定义各层功能定义在 OSI 模型中如何进行通信OSI 模型有哪些替代方案&#xff1a;TCP/IP 定义 OSI是一种开放系统互连参考模型 (Open System Interconnect 简称OSI&#xff09;&#xff0c;是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互…

[职场] 集成电路IC设计工程师求职简历工作经历范文(精选4篇) #职场发展#其他

集成电路IC设计工程师求职简历工作经历范文&#xff08;精选4篇&#xff09; 集成电路IC设计工程师在找工作做简历的时候&#xff0c;经常不知道求职简历中的工作经历板块怎么写&#xff0c;下面是简历网小编整理的适合集成电路IC设计工程师在做简历时写的工作经历范文4篇&…

40000000人民币有多重

在日常生活中&#xff0c;我们经常看到大量现金的重量作为一个有趣的话题。那么&#xff0c;40000000人民币到底有多重呢&#xff1f;本文将详细介绍如何计算这个问题&#xff0c;并讨论与现金重量相关的因素。 首先&#xff0c;我们需要了解人民币纸币的重量。一张崭新的100元…

MySQL篇----第十篇

系列文章目录 文章目录 系列文章目录前言一、MyISAM Static 和 MyISAM Dynamic 有什么区别?二、如果一个表有一列定义为 TIMESTAMP,将发生什么?三、你怎么看到为表格定义的所有索引?四、LIKE 声明中的%和_是什么意思?五、列对比运算符是什么?前言 前些天发现了一个巨牛…

【力扣】整数反转,判断是否溢出的数学解法

整数反转原题地址 方法一&#xff1a;数学 反转整数 如何反转一个整数呢&#xff1f;考虑整数操作的3个技巧&#xff1a; xmod10可以取出x的最低位&#xff0c;如x123&#xff0c;xmod103。x/10可以去掉x的最低位&#xff0c;如x123&#xff0c;x/10&#xff0c;x12。xx*10…

26 使用 Samba 实现文件共享

Samba 文件共享服务 Samba 服务程序现在已经成为在 Linux 系统与Windows 系统之间共享文件的最佳选择 详细配置请转Samba服务 安装 [rootlocalhost ~]# yum install samba -ySamba 服务程序的主配置文件&#xff0c;只有 37 行。 第 5&#xff5e;8 行参数中所提到的 cups…

仰暮计划|“用心感悟使我获取了艺术真谛,自律如始让我获得了人生成功,我将继续在艺术道路上走下去”

口述人:郭敬东&#xff08;男&#xff09; 整理人:马静 口述人与整理人关系:姥爷与外孙女 口述人基本信息:现60岁&#xff0c;1963年出生于湖北省大悟县刘集镇金鼓村&#xff0c;1987年移居到河南省焦作市&#xff0c;现居河南省焦作市高新区。 引言:在得知要讲述自己的经历…

企业数字化转型面临什么挑战?

数字化转型是一个复杂且持续的过程&#xff0c;涉及将数字技术集成到组织的各个方面&#xff0c;从根本上改变组织的运营方式和为客户提供价值的方式。虽然具体的挑战可能因企业的性质和规模而异&#xff0c;但一些常见的挑战包括&#xff1a; 1.抵制变革&#xff1a; 文化阻…

STM32单片机的基本原理与应用(七)

超声波测距实验 基本原理 超声波测距实验是STM32单片机通过控制HC-SR04超声波模块&#xff0c;使其发送超声波&#xff0c;遇到物体反射回超声波来实现距离测量&#xff0c;其原理就是在发射超声波到接收超声波会有一段时间&#xff0c;而超声波在空气中传播的速度为声速&…

python打包exe,并发布windows服务实践

操作实践 1、编写python程序&#xff0c;按照自己的需求编写 以下是案例 # -*- coding:utf-8 -*- import win32serviceutil import win32service import win32event import win32timezone #不加导入&#xff0c;打包后运行会报错&#xff0c;原因未知&#xff0c;暂时不…

小白Linux学习笔记-Linux内核

Linux内核 文章目录 Linux内核WHEREWHATmoudules.dep 文件depmod 命令depmod 实验lsmod 命令modinfo 命令内核模块的观察实验 内核模块的加载与移除:insmod, modprobe, rmmodinsmod 命令modprobe 命令rmmod 命令内核模块的加载与移除实验 内核模块的额外参数设定:/etc/modprobe…

二道经典OJ题带你入门回溯剪枝算法

风起于青萍之末 浪成于微澜之间 &#x1f3a5;个人主页 &#x1f525;个人专栏 &#x1f3a5;前期回顾-环形链表 目录 回溯算法的简介 N皇后问题 思路 代码测试 N皇后 思路 判断一竖列是否有皇后 判断对角线是否有皇后 代码测试 回溯算法的简介 回溯是递归的副产品&#xff0…