Commit 633ba5de authored by Tiago Peixoto's avatar Tiago Peixoto

Add blumenau_drug

parent a57e365e
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 Tiago de Paula Peixoto <tiago@skewed.de>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
from .. import *
title = "Blumenau drug interactions (2019)"
description = """A network of drug-drug interactions, extracted from 18 months of electronic health records (EHRs) from the city of Blumenau in Southern Brazil. Nodes are annotated with drug information (separate file), and edges are weighted by the severity of the interaction, along with other information.[^icon]
[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
tags = ['Biological', 'Drug interactions', 'Weighted', 'Metadata']
url = 'https://github.com/rionbr/DDIBlumenau/tree/master/csv'
citation = [('R. Brattig Correia et al. "City-wide electronic health records reveal gender and age biases in administration of known drug–drug interactions." npj Digital Medicine 2, 74 (2019)', 'https://www.nature.com/articles/s41746-019-0141-x')]
icon_hash = '5d39d32cf7b45cae7430ba18'
ustream_license = None
upstream_prefix = 'https://raw.githubusercontent.com/rionbr/DDIBlumenau/master/csv'
files = [(('net_edges.csv', 'net_nodes.csv'), None, ("csv",
dict( props="header",
vprops=dict(fmt="csv"))))]
def fetch_upstream(force=False):
return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
force)
@cache_network()
@coerce_props()
@annotate()
def parse(alts=None):
global files
name = __name__.split(".")[-1]
for fnames, alt, fmt in files:
if alts is not None and alt not in alts:
continue
if isinstance(fnames, str):
fnames = [fnames]
with ExitStack() as stack:
fs = [stack.enter_context(open_upstream_file(name, fn, "rb")) for fn in fnames]
g = parse_graph(fs, fmt, directed=False)
for p in ["edge_bet_cent", "label_i", "label_j"]:
del g.ep[p]
for p in ["degree", "degree-strength", "module-infomap",
"module-louvain", "node_bet_cent", "rank_degree"]:
del g.vp[p]
yield alt, g
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment