[Paper] || 基因embedding Gene2vec:

2020-10-23  本文已影响0人  葵sunshine

一句话总结:将有共表达的基因对当作上下文(context),利用Skip-Gram模型做gene embedding。

问题背景

NLP的一个动机是希望把文本转换成带有语义信息的向量送入机器学习模型计算,这篇文章希望在仅得知基因名的情况下,预测基因间相互作用。

方法

ERAP1 OR51S1
SPRR2B DIP2A
F2RL1 ADGRA1
AKAP11 STK4
ELANE TLR8

输出是表示每个基因embedding向量,源代码中作者设置维数为100。

dimension = 100  # dimension of the embedding
sg = 1  # sg =1, skip-gram, sg =0, CBOW
window_size = 1  # The maximum distance between the gene and predicted gene within a gene list
model = gensim.models.Word2Vec(gene_pairs, size=dimension, window=window_size, min_count=1, workers=num_workers, iter=1, sg=sg)

因为每个句子是一个基因对,所以skip-gram中滑动窗口大小只能是1。

实验结果

(1)绘制基因间共表达图谱
使用t-SNE降维可视化,如下图所示:


基因共表达图谱

可以看到相似度高的基因聚类后距离也相对较近。
(2)设计三层的全连接网络,拼接embedding后的两个基因的向量来预测这两个基因间是否有相互作用。
输入是两个基因名,输出为0或1(无/有基因间相互作用),模型架构如下图所示:


Gene2vec 效果验证模型
可以看到,准确度达到0.720.
验证ROC曲线

总结

原文Link: Gene2vec: distributed representation of genes based on co-expression
上一篇 下一篇

猜你喜欢

热点阅读