.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rgba(37, 41, 51, 1) }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { line-height: 1.5; margin-top: 35px; margin-bottom: 10px; padding-bottom: 5px }
.markdown-body h1 { font-size: 24px; line-height: 38px; margin-bottom: 5px }
.markdown-body h2 { font-size: 22px; line-height: 34px; padding-bottom: 12px; border-bottom: 1px solid rgba(236, 236, 236, 1) }
.markdown-body h3 { font-size: 20px; line-height: 28px }
.markdown-body h4 { font-size: 18px; line-height: 26px }
.markdown-body h5 { font-size: 17px; line-height: 24px }
.markdown-body h6 { font-size: 16px; line-height: 24px }
.markdown-body p { line-height: inherit; margin-top: 22px; margin-bottom: 22px }
.markdown-body img { max-width: 100% }
.markdown-body hr { border-top: 1px solid rgba(221, 221, 221, 1); border-right: none; border-bottom: none; border-left: none; margin-top: 32px; margin-bottom: 32px }
.markdown-body code { border-radius: 2px; overflow-x: auto; background-color: rgba(255, 245, 245, 1); color: rgba(255, 80, 44, 1); font-size: 0.87em; padding: 0.065em 0.4em }
.markdown-body code, .markdown-body pre { font-family: Menlo, Monaco, Consolas, Courier New, monospace }
.markdown-body pre { overflow: auto; position: relative; line-height: 1.75 }
.markdown-body pre>code { font-size: 12px; padding: 15px 12px; margin: 0; word-break: normal; display: block; overflow-x: auto; color: rgba(51, 51, 51, 1); background: rgba(248, 248, 248, 1) }
.markdown-body a { text-decoration: none; color: rgba(2, 105, 200, 1); border-bottom: 1px solid rgba(209, 233, 255, 1) }
.markdown-body a:active, .markdown-body a:hover { color: rgba(39, 91, 140, 1) }
.markdown-body table { display: inline-block !important; font-size: 12px; width: auto; max-width: 100%; overflow: auto; border: 1px solid rgba(246, 246, 246, 1) }
.markdown-body thead { background: rgba(246, 246, 246, 1); color: rgba(0, 0, 0, 1); text-align: left }
.markdown-body tr:nth-child(2n) { background-color: rgba(252, 252, 252, 1) }
.markdown-body td, .markdown-body th { padding: 12px 7px; line-height: 24px }
.markdown-body td { min-width: 120px }
.markdown-body blockquote { color: rgba(102, 102, 102, 1); padding: 1px 23px; margin: 22px 0; border-left: 4px solid rgba(203, 203, 203, 1); background-color: rgba(248, 248, 248, 1) }
.markdown-body blockquote:after { display: block; content: "" }
.markdown-body blockquote>p { margin: 10px 0 }
.markdown-body ol, .markdown-body ul { padding-left: 28px }
.markdown-body ol li, .markdown-body ul li { margin-bottom: 0; list-style: inherit }
.markdown-body ol li .task-list-item, .markdown-body ul li .task-list-item { list-style: none }
.markdown-body ol li .task-list-item ol, .markdown-body ol li .task-list-item ul, .markdown-body ul li .task-list-item ol, .markdown-body ul li .task-list-item ul { margin-top: 0 }
.markdown-body ol ol, .markdown-body ol ul, .markdown-body ul ol, .markdown-body ul ul { margin-top: 3px }
.markdown-body ol li { padding-left: 6px }
.markdown-body .contains-task-list { padding-left: 0 }
.markdown-body .task-list-item { list-style: none }
@media (max-width: 720px) { .markdown-body h1 { font-size: 24px } .markdown-body h2 { font-size: 20px } .markdown-body h3 { font-size: 18px } }.markdown-body pre, .markdown-body pre>code.hljs { color: rgba(51, 51, 51, 1); background: rgba(248, 248, 248, 1) }
.hljs-comment, .hljs-quote { color: rgba(153, 153, 136, 1); font-style: italic }
.hljs-keyword, .hljs-selector-tag, .hljs-subst { color: rgba(51, 51, 51, 1); font-weight: 700 }
.hljs-literal, .hljs-number, .hljs-tag .hljs-attr, .hljs-template-variable, .hljs-variable { color: rgba(0, 128, 128, 1) }
.hljs-doctag, .hljs-string { color: rgba(221, 17, 68, 1) }
.hljs-section, .hljs-selector-id, .hljs-title { color: rgba(153, 0, 0, 1); font-weight: 700 }
.hljs-subst { font-weight: 400 }
.hljs-class .hljs-title, .hljs-type { color: rgba(68, 85, 136, 1); font-weight: 700 }
.hljs-attribute, .hljs-name, .hljs-tag { color: rgba(0, 0, 128, 1); font-weight: 400 }
.hljs-link, .hljs-regexp { color: rgba(0, 153, 38, 1) }
.hljs-bullet, .hljs-symbol { color: rgba(153, 0, 115, 1) }
.hljs-built_in, .hljs-builtin-name { color: rgba(0, 134, 179, 1) }
.hljs-meta { color: rgba(153, 153, 153, 1); font-weight: 700 }
.hljs-deletion { background: rgba(255, 221, 221, 1) }
.hljs-addition { background: rgba(221, 255, 221, 1) }
.hljs-emphasis { font-style: italic }
.hljs-strong { font-weight: 700 }

1. GRL.py

import load_data
from sklearn.model_selection import KFold
import numpy as np
import random
import Model2 as Model
from karateclub import BoostNE, NodeSketch, GraRep, NetMF, Node2Vec, DeepWalk, RandNE, GLEE, Walklets, Role2Vec # 定义函数GraphPepPI,用于处理肽-蛋白质相互作用的数据
def GraphPepPI():
inter_type = 'PepPI' # 定义相互作用类型为肽-蛋白质相互作用 (PepPI)
file_path = './Dataset/' + str(inter_type) # 定义数据集的文件路径
mole_x = load_data.load_moles(file_path+'/peptides.txt') # 加载肽分子的数据信息
mole_y = load_data.load_moles(file_path+'/proteins.txt') # 加载蛋白质分子的数据信息 # 加载相互作用和非相互作用的配对信息
inter_file = file_path+'/peptide-protein interacting pairs.txt'
non_inter_file = file_path+'/peptide-protein non-interacting pairs.txt'
pairs = load_data.load_pairs(inter_file, non_inter_file, mole_x, mole_y) # 加载并组合相互作用对和非相互作用对
random.shuffle(pairs) # 随机打乱配对数据
pairs = np.array(pairs) # 将配对数据转换为NumPy数组 # 加载肽和蛋白质的序列特征
x_seq_file = file_path + '/lncRNA sequences.fasta'
x_feat_dict = load_data.load_psednc_feat(x_seq_file, mole_x, 2, 0.05) # 加载并计算肽的伪二核苷酸特征
x_ss_mat = load_data.cal_ss_sim(x_feat_dict) # 计算肽之间的序列相似度矩阵
y_seq_file = file_path + '/protein sequences.fasta'
y_feat_dict = load_data.load_pseaac_feat(y_seq_file, mole_y) # 加载并计算蛋白质的伪氨基酸组成特征
y_ss_mat = load_data.cal_ss_sim(y_feat_dict) # 计算蛋白质之间的序列相似度矩阵 n_fold = 5 # 定义交叉验证的折数为5
embed = [] # 初始化嵌入列表,用于存储最终的特征表示
label = [] # 初始化标签列表,用于存储最终的标签 # 计算肽和蛋白质的相似度矩阵
x_sim_mat = load_data.cal_x_sim(x_ss_mat, pairs, len(mole_x), len(mole_y), 0.8) # 计算肽的相似度矩阵
y_sim_mat = load_data.cal_y_sim(y_ss_mat, pairs, len(mole_x), len(mole_y), 0.6) # 计算蛋白质的相似度矩阵
print(x_sim_mat.shape, y_sim_mat.shape) # 输出相似度矩阵的形状 model = Model.AHGRL_intra() # 初始化模型,使用AHGRL_intra模型
train_data = load_data.dataset(x_ss_mat, y_sim_mat, pairs, x_feat_dict, y_feat_dict) # 生成训练数据集
scores, x_feat, y_feat = Model.feature_representation(model, len(mole_x), len(mole_y), train_data) # 使用模型进行特征表示 # 生成测试数据集
data_test, y_test = load_data.final_dataset(x_feat, y_feat, pairs)
embed += data_test # 将测试数据的嵌入添加到embed列表
label += y_test # 将测试数据的标签添加到label列表 # 保存嵌入和标签为.npy文件
np.save('./Results/MLI_emb.npy', np.array(embed)) # 保存嵌入
np.save('./Results/MLI_label.npy', np.array(label)) # 保存标签 # 循环调用GraphPepPI函数,这里只运行一次
for i in range(1):
GraphPepPI()

代码解释:

  1. 导入库和定义函数

    • 导入了必要的库,包括自定义的load_data模块、用于交叉验证的KFold、NumPy库、随机数生成器random、自定义的模型模块Model2,以及karateclub中的一些图嵌入算法。
    • 定义了GraphPepPI()函数,主要用于处理肽-蛋白质相互作用数据并生成特征嵌入。
  2. 加载和预处理数据

    • 从指定路径加载肽和蛋白质的分子数据。
    • 加载肽-蛋白质的相互作用对和非相互作用对,并打乱顺序以准备后续的模型训练。
  3. 特征提取

    • 加载肽和蛋白质的序列特征,并计算肽之间和蛋白质之间的相似度矩阵。
    • 使用自定义的模型对数据进行特征表示,生成训练数据。
  4. 生成嵌入和标签

    • 生成用于模型评估的测试数据集,包含特征嵌入和相应的标签。
    • 将生成的嵌入和标签保存为.npy文件,方便后续的使用和分析。
  5. 执行函数

    • 使用一个简单的循环调用GraphPepPI()函数,实际上只执行一次。这可能是为了方便扩展,若有需要可以更改循环次数以进行更多实验。

这段代码的主要目的是处理和分析肽-蛋白质相互作用的数据,提取特征并生成相应的嵌入表示,以便后续的机器学习任务或分析。


2. UMAP.py

import numpy as np
import umap
from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler, MinMaxScaler
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA # 设置图像全局参数,包括字体和负号的处理
config = {
"font.family": 'serif', # 设置字体系列为serif
"font.size": 20, # 设置字体大小为20
"mathtext.fontset": 'stix', # 设置数学字体集为stix
"font.serif": ['Times New Roman'], # 设置serif字体为Times New Roman
'axes.unicode_minus': False # 处理负号显示
}
plt.rcParams.update(config) # 更新matplotlib的全局配置 plt.rcParams.update({'font.size': 15}) # 更新字体大小为15 # 生成模拟数据(这里的代码未使用)
n_samples = 300
random_state = 42
# X, y = make_blobs(n_samples=n_samples, centers=2, random_state=random_state, n_features=2)
# 上述代码生成二维数据集,但这里被注释掉,实际使用的是加载的高维数据 # 加载数据并进行预处理
X = np.load('./Results/NodeSketch_emb.npy') # 加载节点嵌入数据
X = StandardScaler().fit_transform(X) # 对数据进行标准化处理
X = PCA().fit_transform(X) # 使用PCA对数据进行降维 print(X.shape) # 输出降维后的数据形状
y = np.load('./Results/NodeSketch_label.npy') # 加载数据标签 # 使用UMAP对数据进行进一步降维
uMAP = umap.UMAP(n_neighbors=5, min_dist=0.5, spread=10, random_state=random_state)
X_umap = uMAP.fit_transform(X) # 使用UMAP将数据降到二维 # 可视化
plt.figure(figsize=(5, 4.5)) # 设置图像尺寸
colors = ['#5467B1', '#C74E91'] # 定义两个类别的颜色 for i in range(2):
plt.scatter(X_umap[y == i, 0], X_umap[y == i, 1], c=colors[i], edgecolors='none', s=3)
# 绘制每个类别的点,c参数设置颜色,edgecolors='none'表示不绘制边框,s=3表示点的大小 # 去除坐标轴
ax = plt.gca() # 获取当前轴对象
bwith = 1 # 设置边框宽度为1
ax.spines['bottom'].set_linewidth(bwith) # 设置下边框的宽度
ax.spines['left'].set_linewidth(bwith) # 设置左边框的宽度
ax.spines['top'].set_linewidth(bwith) # 设置上边框的宽度
ax.spines['right'].set_linewidth(bwith) # 设置右边框的宽度 plt.legend(frameon=False) # 如果有图例,不显示图例的边框 # 添加标题
plt.title('NodeSketch') # 保存图像,格式为png,分辨率为1200dpi
plt.savefig("./UMAP_NodeSketch.png", dpi=1200, format="png") # 显示图形
plt.show()

代码解释:

  1. 导入库和设置参数

    • 导入所需的Python库,包括Numpy、UMAP、scikit-learn用于数据处理和降维,matplotlib用于可视化。
    • 配置全局图像参数,如字体和负号显示。
  2. 加载和预处理数据

    • 加载存储在NodeSketch_emb.npy文件中的节点嵌入数据,并使用标准化和PCA进行降维。
    • 加载对应的标签数据。
  3. UMAP降维

    • 使用UMAP将数据进一步降维到二维,以便可视化。
  4. 数据可视化

    • 创建图形并设置大小,选择两种颜色表示不同类别。
    • 绘制散点图,分别为两个类别的数据点进行着色。
    • 设置图形的边框宽度并移除图例边框。
    • 添加标题,并将生成的图像保存为PNG格式文件。
  5. 显示图像

    • 显示生成的图形。

这段代码主要用于将高维数据降维并可视化,以便于观察和分析不同类别的数据分布。

GRL.py和UMAP.py代码解释的更多相关文章

  1. django学习-2.urls.py和view.py的相关知识点

    1.URL函数简单解析 1.1.url() 函数可以接收四个参数,分别是两个必选参数:regex.view,和两个可选参数:kwargs.name. def url(regex, view, kwar ...

  2. Python系统模块os.py和sys.py常用函数

    OS模块 os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os.ge ...

  3. 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

    libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...

  4. Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

    代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,p ...

  5. [ARM] Cortex-M Startup.s启动文件相关代码解释

    1. 定义一个段名为CSTACK, 这里: NOROOT表示如何定义的段没有被关联,那么同意会被优化掉,如果不想被优化掉就使用ROOT. 后面的括号里数字表示如下: (1):这个段是2的1次方即2字节 ...

  6. Python编程核心之makeTextFile.py和readTextFile.py

    引言: 最近大半年都在学习python编程,在双十一的时候购买了<Python编程核心>,看到makeTextFile.py和readTextFile.py两个例子有点错误,所以在这里给修 ...

  7. Libsvm:脚本(subset.py、grid.py、checkdata.py) | MATLAB/OCTAVE interface | Python interface

    1.脚本 This directory includes some useful codes: 1. subset selection tools. (子集抽取工具) subset.py 2. par ...

  8. word2vec代码解释

    以前看的国外的一篇文章,用代码解释word2vec训练过程,觉得写的不错,转过来了 原文链接 http://nbviewer.jupyter.org/github/dolaameng/tutorial ...

  9. django-admin.py和manage.py的用法

    [简介] django-admin.py是Django的一个用于管理任务的命令行工具.本文将描述它的大概用法. 另外,在每一个Django project中都会有一个manage.py.manage. ...

  10. Uniswap V2 — 从代码解释 DeFi 协议

    Uniswap V2 - 从代码解释 DeFi 协议 为了理解我们在分析代码时将要经历的不同组件,首先了解哪些是主要概念以及它们的作用是很重要的.所以,和我一起裸露吧,因为这是值得的. 我在 5 个段 ...

随机推荐

  1. 支持API自动化测试,实现复杂的测试场景并输出报告

    老旧的系统需要与新的业务系统进行衔接,内部与外部的API需要相互调用,云上云下要互联互通等等.企业在数字化转型中会面临着种种.对于传统的集成技术而言难以突破的复杂集成技术难题.RestCloud iP ...

  2. 通过ETLCloud实现SQL Server数据同步至Oracle

    SQL Server与Oracle作为全球两大主流的关系型数据库管理系统(RDBMS),在企业级应用中扮演着至关重要的角色.它们各自凭借独特的技术优势.强大的数据处理能力以及高度的可扩展性,支撑着从中 ...

  3. POLIR-Society-Organization-Psychology-Emotions情绪 : The 6 Types of Basic Emotions and Their Effect on Human Behavior

    EMOTIONS > The 6 Types of Basic Emotions and Their Effect on Human Behavior By Kendra Cherry, MSE ...

  4. SciTech-Github-解决git push时的 Error: hasDotgit: contains '.git'

    AbaelsMacBookPro:pelican abaelhe$ git push Enumerating objects: 6872, done. Counting objects: 100% ( ...

  5. mac上homebrew重装手记

    今天因为种种原因,把mac上的homebrew玩坏了,需要重装的时候,发现遇到一堆问题,记录于此: 1. (官网)卸载方法 /usr/bin/ruby -e "$(curl -fsSL ht ...

  6. 洛谷题解 | P3383 【模板】线性筛素数

    题目思路 先思考最朴素的素数筛法.即对于每个数 \(n\),检查它是否能被任意小于 \(\sqrt{n}\) 的整数整除.如果不能,则 \(n\) 是素数.这种筛法显然是低效的. 逆向思考,上述素数筛 ...

  7. Origin2022安装出现“试用期已结束”的解决方法

    有小伙伴反馈,在安装Origin2022中文版出现弹窗:试用期已结束.-- 无法继续安装,这个问题该如何解决呢?   origin 2022 中文版 解决方法: 1.返回电脑桌面,点击左下角[Win标 ...

  8. Java中this()与super()的区别解析

    this() 的用法 功能:调用当前类的其他构造函数 作用:避免构造函数中的代码重复 限制:必须是构造函数的第一条语句 适用场景:当类中存在多个构造函数且需要共享部分初始化逻辑时 class Car ...

  9. Casbin荣获2021年度“科创中国”开源创新榜优秀开源产品!

    为了响应党中央.国务院高度重视开源软件发展的需求(国家软件发展战略将培育开源生态作为重点任务,国民经济和社会发展"十四五"规划和2035年远景目标纲要明确提出支持开源社区等创新联合 ...

  10. [题解]ABC282E Choose Two and Eat One

    ABC282E Choose Two and Eat One 又一个图论的回顾--Kruskal最小(最大)生成树算法. 看到\(n\)的范围只有\(500\),应该没有什么特别的算法.那么我们考虑建 ...