Git Product home page Git Product logo

medline's Introduction

Hetnets in Python

CI Status PyPI Latest DOI GitHub issues Code style: black

Overview

Hetnetpy is a Python 3 package for creating, querying, and operating on hetnets. This software provides convenient data structures for hetnets, as well as algorithms for edge prediction. It is specifically tailored and streamlined for hetnets compared to other more generic network software. See https://het.io/software for additional software packages designed specifically for hetnets.

Package relocation

Note that this package was previously named hetio, available at the following repositories:

In July 2019, the package was renamed to hetnetpy to more clearly represent its functionality and disambiguate it from other products.

Background

Hetnets: Hetnets, also called heterogeneous information networks, are graphs with multiple node and edge types. Hetnets are both multipartite and multirelational. They provide a scalable, intuitive, and frictionless structure for data integration.

Purpose: This package provides data structures for hetnets and algorithms for edge prediction. It only supports hetnets, which is its primary advantage compared to other network software. Node/edge attributes and edge directionality are supported.

Impetus: Development originated with a study to predict disease-associated genes and continues with a successive study to repurpose drugs.

Caution: Documentation is currently spotty, testing coverage is moderate, and the API is not fully stable. Contributions are welcome. Please use GitHub Issues for feedback, questions, or troubleshooting.

Installation

PyPI

To install the current PyPI version (recommended), run:

pip install hetnetpy

For the latest GitHub version, run:

pip install git+https://github.com/hetio/hetnetpy.git#egg=hetnetpy

For development, clone or download-and-extract the repository. Then run pip install --editable . from the repository's root directory. The --editable flag specifies editable mode, so updating the source updates your installation.

Once installed, tests can be executed by running py.test test/ from the repository's root directory.

Design

A Graph object stores a heterogeneous network and relies on the following classes:

  1. Graph
  2. MetaGraph
  3. Edge
  4. MetaEdge

Development

This repo uses pre-commit:

# run once per local repo before committing
pre-commit install

This following is only relevant for maintainers. Create a new release at https://github.com/hetio/hetnetpy/releases/new. GitHub Actions will build the distribution and upload it to PyPI. The version information inferred from the Git tag using setuptools_scm.

License

This repository is dual licensed, available under either or both of the following licenses:

  1. BSD-2-Clause Plus Patent License at LICENSE-BSD.md
  2. CC0 1.0 Universal Public Domain Dedication at LICENSE-CC0.md

medline's People

Contributors

dhimmel avatar larsac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

medline's Issues

Expected denominator is wrong causing underestimates of enrichment

Hello,

I am unsure about the denominator in the formula referenced below. Should expected not be equal to the product of the two frequencies of occurrence ? In that case, wouldn't the denominator be equal to the square of total_pmids ? It may be splitting hairs and not make a large difference overall, but I'd like to understand the maths behind the code a little more.

expected = len(pmids0) * len(pmids1) / total_pmids

Thanks,
Lars

How to search PubMed for citations that are assigned MeSH supplemental concept records in MEDLINE?

Based on the MEDLINE online training docs, it sounds like MEDLINE assigns MeSH supplemental concept records (SCRs) to citations:

1-benzylpiperazine is a supplementary chemical concept. It is mapped to the MeSH descriptor PIPERAZINES. That means that the article indexed with 1-benzylpiperazine will appear in PubMed under both 1-benzylpiperazine and PIPERAZINES. The indexer needs ONLY to index the SCR; the Heading Mapped to is added automatically.

The indexing of SCR terms is identical to the indexing of MeSH descriptors. In the IMS Browser, they appear in the scroll-down list alphabetically along with MeSH descriptors. The indexer can search the MeSH browser for complex SCR terms in the same manner as for complex MeSH terms. The Pharmacological Action of the SCR term must be added, if appropriate.

The MeSH browser for 1-benzylpiperazine shows a frequency of 57, leading me to believe it is actually assigned as a topic in MEDLINE.

But searching pubmed for "1-benzylpiperazine" [MeSH Terms:noexp] returns zero results and the message:

Your search was processed without automatic term mapping because it retrieved zero results.

So is there a way to search PubMed for MeSH SCRs?

PubMed search matches subset of term name when there are no matches

C566272 is Townes-Brocks-Branchiootorenal-Like Syndrome. Looking on the mesh browser this term has a frequency of 0 meaning it's never tagged a medline topic.

We're currently using the following PubMed search: Townes-Brocks-Branchiootorenal-Like Syndrome [MeSH Terms:noexp], which returns 117,315 results and has the message:

The following term was not found in PubMed: Townes-Brocks-Branchiootorenal-Like

Note now this doesn't include "Syndrome". So I think what's happening is that PubMed isn't finding the entire search term and is falling back to just searching Syndrome [MeSH Terms:noexp], which is matching 117,315 records.

So we probably have to quote the search term.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.