1 样例一:xml直接提取
在做Drugbank数据处理时,发现的一个能够解决我问题的开源代码:项目地址以及Test文件,都在:
https://github.com/Deshan-Zhou/deal_DrugBank
但是直接上手处理xml格式的文件,对于xml数据的组织形式不熟悉的同志来讲很头疼,并不能够随心所欲的提取自己想提取的各种关联信息。在样例二中我提供一种能够方便提取数据的方法。
from xml.sax.handler import ContentHandler
from xml.sax import parse
import pandas as pd
"""
简写:
dbid : DrugBank id
dbname : DrugBank name
chid : ChEMBL id
ptid : protein id
"""
class ExtractData(ContentHandler):
def __init__(self):
#各个简写的映射关系
self.dbid_chid = {
}
self.dbid_dbname = {
}
self.dbid_dbid = {
}
self.dbid_ptid = {
}
#当前的药物id和遍历区域的限定
self.curr_id = ""
self.limit = 0
#可以自动获取遍历到的元素里面的内容,如<ele>content.....</ele>
def characters(self,content):
if self.limit == 2:
self.curr_id = content
self.limit = 3
elif self.limit == 4:
self.dbid_dbname[self.curr_id] = content
self.limit = 0
elif self.limit == 6:
self.dbid_dbid.setdefault(self.curr_id,set()).add(content)
self.limit = 5
elif self.limit == 8:
if content == "ChEMBL":
self.limit = 9
elif self

这篇博客介绍了如何处理DrugBank的XML数据,包括使用Python的xml sax模块直接提取信息和将XML转换为JSON格式。样例代码展示了提取drug-target信息的过程,生成的CSV文件便于后续分析。此外,还提供了后续将要提取的drug-ATCcode和drug-druginteractions信息的预告。
最低0.47元/天 解锁文章
2622

被折叠的 条评论
为什么被折叠?



