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

【流行病学】Melodi-Presto因果关联工具


title: “[流行病学] Melodi Presto因果关联工具”
date: 2022-12-08
lastmod: 2022-12-08
draft: false
tags: [“流行病学”,“因果关联工具”]
toc: true
autoCollapseToc: true

阅读介绍

Melodi-Presto: A fast and agile tool to explore semantic triples derived from biomedical literature1

triples: subject–predicate–object triple

SemMedDB 大型开放式知识库

使用入口

  • 🚩在线工具 Web Application

  • API

  • Jupyter Notebooks

git 下载到json在提取

curl -X POST 'https://melodi-presto.mrcieu.ac.uk/api/overlap/' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{ "x": [ "diabetes " ], "y": [ "coronary heart disease" ]}' > 1.json

使用示例

X: KRAS 
Y: lung cancer

输入的专业术语应该在Mesh先确定???

文章复现

doi: 10.1093/ije/dyab2032

{{< note >}} 1. 部分内容已经改变 2. Object的挑选精确到chronic 3. Predicate的挑选先无限制 4. Subject的挑选去掉了CRP,但是论文有纳入 5. OR的计算已经去掉? 6. gtf基因和[Uniprot蛋白名库](https://www.uniprot.org/uniprotkb?facets=model_organism%3A9606&query=reviewed%3Atrue)删掉 7. +药物库? {{< /note >}}
library(openxlsx)
# read
df <- read.xlsx("chronic kidney disease.xlsx",
                 sheet = 1,  
                colNames=TRUE,
                check.names=FALSE )

str(df$Pval)
df$Pval <- as.numeric(df$Pval)
# P value < 0.005
df <- subset(df,df$Pval < 0.005 )

# removed triples where the subject was a gene or protein
df$Subject <- tolower(df$Subject)
a=stringr::str_which(df$Subject,
            pattern = "gene|protein|receptor")
# [waring:delete the CRP in the paper]
df$Subject[a]
df <- df[-a,]

# where the term “CAUSES” implies causality, 
#   the term “ASSOCIATED_WITH” implies association, 
#   and the term “COEXISTS_WITH” implies co-existence. 
table(df$Predicate)
df <- subset(df,df$Predicate=="CAUSES"|
               df$Predicate=="ASSOCIATED_WITH"|
               df$Predicate=="COEXISTS_WITH")

# restricted to triples 
# where the object contained either “kidney” or “renal”
table(df$Object)
dplyr::count(df,forcats::fct_lump_n(Object,n=10))
# 
df$Object <- tolower(df$Object)
b=stringr::str_which(df$Object,
                     pattern = "kidney|renal")
df$Object[b]
df <- df[b,]


# removed2 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "\\|")
df$Subject[c]
df <- df[-c,]
# 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "factor")
df$Subject[c]
df <- df[-c,]
# 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "peptide")
df$Subject[c]
df <- df[-c,]

# retained only unique risk factors (subjects) 
#    to avoid duplicates
df <- dplyr::arrange(df,desc(Count),Pval)
df <- df[!duplicated(df$Subject),]


table(df$Count)
# df <- subset(df,df$Count>2)

write.xlsx(df, file = "筛选4.xlsx", colNames = TRUE)


# enrichment odds ratio
#  (a) count the number of these triples 
#  (b) the number of total triples matched to the query 
#  (c) the total number of these triples in the data base , 
#  (d) and the total number of triples in the database .

# stats.fisher_exact([[a, b-a], [c, d-c]])
  
library(openxlsx)
# read
df <- read.xlsx("chronic kidney disease.xlsx",
                 sheet = 1,  
                colNames=TRUE,
                check.names=FALSE )

str(df$Pval)
df$Pval <- as.numeric(df$Pval)
# P value < 0.005
df <- subset(df,df$Pval < 0.005 )

# removed triples where the subject was a gene or protein
df$Subject <- tolower(df$Subject)
a=stringr::str_which(df$Subject,
            pattern = "gene|protein|receptor")
# [waring:delete the CRP in the paper]
df$Subject[a]
df <- df[-a,]

# where the term “CAUSES” implies causality, 
#   the term “ASSOCIATED_WITH” implies association, 
#   and the term “COEXISTS_WITH” implies co-existence. 
table(df$Predicate)
df <- subset(df,df$Predicate=="CAUSES"|
               df$Predicate=="ASSOCIATED_WITH"|
               df$Predicate=="COEXISTS_WITH")

# restricted to triples 
# where the object contained either “kidney” or “renal”
table(df$Object)
dplyr::count(df,forcats::fct_lump_n(Object,n=10))
# 
df$Object <- tolower(df$Object)
b=stringr::str_which(df$Object,
                     pattern = "kidney|renal")
df$Object[b]
df <- df[b,]


# removed2 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "\\|")
df$Subject[c]
df <- df[-c,]
# 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "factor")
df$Subject[c]
df <- df[-c,]
# 
df$Subject
c=stringr::str_which(df$Subject,
                     pattern = "peptide")
df$Subject[c]
df <- df[-c,]

# retained only unique risk factors (subjects) 
#    to avoid duplicates
df <- dplyr::arrange(df,desc(Count),Pval)
df <- df[!duplicated(df$Subject),]


table(df$Count)
# df <- subset(df,df$Count>2)

write.xlsx(df, file = "筛选4.xlsx", colNames = TRUE)


# enrichment odds ratio
#  (a) count the number of these triples 
#  (b) the number of total triples matched to the query 
#  (c) the total number of these triples in the data base , 
#  (d) and the total number of triples in the database .

# stats.fisher_exact([[a, b-a], [c, d-c]])

NHANES

注意事项, 参考文章复现


  1. doi: 10.1093/bioinformatics/btaa726 ↩︎

  2. Trans-ethnic Mendelian-randomization
    study reveals causal relationships between
    cardiometabolic factors and chronic kidney
    disease ↩︎


http://www.kler.cn/a/571869.html

相关文章:

  • [特殊字符]在eclipse中导入JAVA的jar包方法
  • html | 预览一个颜色数组
  • 算法与数据结构(相交链表)
  • com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
  • 火语言RPA--PDF提取图片
  • 对于TCP协议三次握手,四次挥手的总结
  • 7轴力控机器人在新药研发与生命科学实验室的开发方案
  • 【东枫科技】X波段 相控阵雷达
  • 《挑战你的控制力!开源小游戏“保持平衡”开发解析:用HTML+JS+CSS实现物理平衡挑战》​
  • 网络安全管理平台建设思路
  • 分布式锁—1.原理算法和使用建议一
  • 112页精品PPT | DeepSeek行业应用实践报告
  • 单片机入门(一)
  • 字符串与数值扩展【ES6】
  • (二 十 一)趣学设计模式 之 访问者模式!
  • 大模型工程师学习日记(十一):FAISS 高效相似度搜索和密集向量聚类的库
  • 李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势
  • 【Elasticsearch】ignore_malformed
  • 数据库二三事(9)
  • 从像素到体验:解码UI设计的未来进化论