Skip to content

Instantly share code, notes, and snippets.

@kozo2
Created June 21, 2019 02:18
Show Gist options
  • Save kozo2/cbd4e281211d7c9502d909945f56ef91 to your computer and use it in GitHub Desktop.
Save kozo2/cbd4e281211d7c9502d909945f56ef91 to your computer and use it in GitHub Desktop.
kgml = requests.get('http://rest.kegg.jp/get/mmu04150/kgml').content
soup = BeautifulSoup(kgml, "xml")
entries = soup.find_all('entry')
len(entries)
d = {}
elements = {}
nodes = []
edges = []
for e in entries:
g = e.find("graphics")
data = {}
data["id"] = e["id"]
# print(e["id"])
if e["type"] != "group":
data["label"] = g["name"].split(", ")[0]
data["name"] = g["name"]
data["x"] = int(g["x"])
data["y"] = int(g["y"])
data["fgcolor"] = g["fgcolor"]
data["bgcolor"] = g["bgcolor"]
data["type"] = g["type"]
data["width"] = g["width"]
data["height"] = g["height"]
node = {"data":data, "position":{"x":int(g["x"]), "y":int(g["y"])}, "selected":"false"}
nodes.append(node)
relations = soup.find_all('relation')
len(relations)
for rel in relations:
data = {}
data["source"] = rel["entry1"]
data["target"] = rel["entry2"]
data["type"] = rel["type"]
subtypes = rel.find_all("subtype")
for stype in subtypes:
data[stype["name"]] = stype["value"]
edge = {"data":data}
edges.append(edge)
elements["nodes"] = nodes
elements["edges"] = edges
d["elements"] = elements
import json
with open('mmu04150.cyjs', 'w') as outfile:
json.dump(d, outfile, indent=2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment