当前位置: 首页 > news >正文

机器学习之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 inlineFile "<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+001.67025877e-02 -8.53566889e-03  2.18774280e-02  2.32125783e+002.55409795e-02 -1.15651891e-02 -3.02552657e-02  1.24139726e-02-4.12962164e-02 -8.41912007e-01 -5.99993306e-03  1.61336532e-036.03782405e-01  3.46253082e-02  2.27598501e-02 -2.05355599e-023.94717697e-03  1.35123502e+00  8.65776037e-03 -7.57649777e-033.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-022.56248426e-02 -2.42973459e+00 -3.70118837e-02  1.25962615e-022.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.159214930.05177535  1.1583736   0.92446647 -0.14730169  0.78172059  2.356288461.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()

结果
在这里插入图片描述

相关文章:

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

简介 DeepSequence 是一个生成性的、无监督的生物序列潜变量模型。给定一个多重序列比对作为输入&#xff0c;它可以用来预测可获得的突变&#xff0c;提取监督式学习的定量特征&#xff0c;并生成满足明显约束的新序列文库。它将序列中的高阶依赖性建模为残差子集之间约束的非…...

【Kotlin】Kotlin环境搭建

1 前言 Kotlin 是一种现代但已经成熟的编程语言&#xff0c;由 JetBrains 公司于 2011 年设计和开发&#xff0c;并在 2012 年开源&#xff0c;在 2016 年发布 v1.0 版本。在 2017 年&#xff0c;Google 宣布 Kotlin 正式成为 Android 开发语言&#xff0c;这进一步推动了 Kotl…...

langgraph学习--创建基本的agent执行器

本文介绍如何使用langgraph创建一个基本的Agent执行器&#xff0c;主要包括下面几个步骤&#xff1a; 1、定义工具 2、创建langchain Agent&#xff08;由LLM、tools、prompt三部分组成&#xff09; 3、定义图形状态 传统的LangChain代理的状态有几个属性: &#xff08;1&#…...

Mybatis中的sql-xml延迟加载机制

Mybatis中的sql-xml延迟加载机制 hi&#xff0c;我是阿昌&#xff0c;今天记录一下关于Mybatis中的sql-xml延迟加载机制 一、前言 首先mybatis技术本身就不多介绍&#xff0c;说延迟加载机制之前&#xff0c;那要先知道2个概念&#xff1a; 主查询对象关联对象 假设咱们现…...

【Linux系统学习】1.初识Linux

初识Linux 操作系统概述 初识Linux 虚拟机介绍 VMware WorkStation安装 1.操作系统概述 了解操作系统的作用 了解常见的操作系统 1.1 硬件和软件 计算机由哪两个主要部分组成&#xff1f; 硬件&#xff1a;计算机系统中由电子&#xff0c;机械和光电元件等组成的各种物理装置的…...

政安晨:政安晨:机器学习快速入门(三){pandas与scikit-learn} {模型验证及欠拟合与过拟合}

这一篇中&#xff0c;咱们使用Pandas与Scikit-liarn工具进行一下模型验证&#xff0c;之后再顺势了解一些过拟合与欠拟合&#xff0c;这是您逐渐深入机器学习的开始&#xff01; 模型验证 评估您的模型性能&#xff0c;以便测试和比较其他选择。 在上一篇中&#xff0c;您已经…...

分享65个节日PPT,总有一款适合您

分享65个节日PPT&#xff0c;总有一款适合您 65个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1hc1M5gfYK8eDxQVsK8O9xQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知…...

架构学习(二):原生scrapy如何接入scrapy-redis,初步入局分布式

原生scrapy如何接入scrapy-redis&#xff0c;实现初步入局分布式 前言scrpy-redis分布式碎语 实现流程扩展结束 前言 scrpy-redis分布式 下图是scrpy-redis官方提供的架构图&#xff0c;按我理解&#xff0c;与原生scrapy的差异主要是把名单队列服务器化&#xff0c;也是存储…...

第1节、电路连接【51单片机+L298N步进电机系列】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍如何搭建一个51单片机L298N步进电机控制电路&#xff0c;所用材料均为常见的模块&#xff0c;简单高效的方式搭建起硬件环境。 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模…...

API接口文档怎么写?

API接口文档模板 本文档更新时间&#xff1a;2022-12-07 本文档更新说明&#xff1a;提供了接口文档模板&#xff0c;后续如果有接口文档编写相关工作&#xff0c;可以参考该模板。 接口名称&#xff1a; XX帐号基础信息批量获取接口 【接口名称&#xff0c;见名知意】 接口…...

Qt 范例阅读: QStateMachine状态机框架 和 SCXML 引擎简单记录(方便后续有需求能想到这两个东西)

一、QStateMachine 简单应用&#xff1a; 实现按钮的文本切换 QStateMachine machine; //定义状态机&#xff08;头文件定义&#xff09;QState *off new QState(); //添加off 状态off->assignProperty(ui->pushButton_2, "text", "Off"); //绑定该…...

Linux实验记录:使用DHCP动态管理主机地址

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 动态主机配置协议&#xff08;DHCP&…...

Qt应用软件【协议篇】MQTT协议介绍

文章目录 MQTT简介QT中MQTT的源码什么是 MQTT?MQTT 的工作原理MQTT 的工作流程MQTT 的应用场景智能家居工业物联网(IIoT)车联网环境监测医疗健康物流与供应链智能能源公共安全基于传输层TCP协议上的MQTT应用层协议...

Linux ncftp命令教程:如何使用ncftp来管理FTP服务器(附实例详解和注意事项)

Linux ncftp命令介绍 ncftp是一种增强的FTP客户端程序&#xff0c;它可以让你在本地和远程服务器之间传输文件&#xff0c;并管理远程服务器上的文件和目录。ncftp具有许多特色&#xff0c;包括显示传输速率&#xff0c;下载进度&#xff0c;自动续传&#xff0c;标记书签&…...

2、ChatGPT 在数据科学中的应用

ChatGPT 在数据科学中的应用 ChatGPT 可以成为数据科学家的绝佳工具。以下是我所了解到的关于它擅长的地方和不那么擅长的地方。 我从使用 ChatGPT 中学到了一个教训。它在数据科学中非常有帮助,但你必须仔细检查它输出的所有内容。它非常适合某些任务,并且可以非常快速准确…...

从小白到入门webrtc音视频通话

0. 写在前面 先会骑车&#xff0c;再研究为什么这么骑&#xff0c;才是我认为学习技术的思路&#xff0c;底部付了demo例子&#xff0c;根据例子上面的介绍即可运行。 1. 音视频通话要用到的技术简介 websocket 介绍&#xff1a;1. 服务器可以向浏览器推送信息&#xff1b;2…...

Qt之漂亮的地球

这个画的是一个东西围绕着中心的地球不停的旋转&#xff0c;可以放在界面的中部&#xff0c;增加美感。 展示 界面展示 设计过程 标题在之前的博客有写过&#xff0c;这里不再重复 下面是关于地球旋转的相关 1.资源文件添加 先将相关的资源文件添加&#xff0c;三个图片 2…...

FPGA解码MIPI视频:Xilinx Artix7-35T低端FPGA,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案本方案在Xilinx Artix7-100T上解码MIPI视频的应用本方案在Xilinx Kintex7上解码MIPI视频的应用本方案在Xilinx Zynq7000上解码MIPI视频的应用本方案在Xilinx Zynq UltraScale上解码MIPI视频的应用纯VHDL代码解…...

使用docker部署Kafka(MAC Apple M2 Pro)

前置准备 下载适用于Apple M2 Pro的Zookeeper和Kafka Docker镜像 docker pull zookeeper:3.6 docker pull cppla/kafka-docker:arm 下载成功后确认镜像无误 docker images 部署Zookeeper 执行部署命令后查看容器是否启动 docker run -d --name zookeeper -p 2181:2181 -…...

车位检测,YOLOV8,OPENCV调用

车位检测YOLOV8NANO,opencv调用 车位检测&#xff0c;YOLOV8NANO&#xff0c;训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;支持C,PYTHON,ANDROID...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...