All Projects → jakelever → civicmine

jakelever / civicmine

Licence: MIT license
Text mining cancer biomarkers for the CIVIC database

Programming Languages

python
139335 projects - #7 most used programming language
r
7636 projects
TeX
3793 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to civicmine

VERSE
Vancouver Event and Relation System for Extraction
Stars: ✭ 13 (-31.58%)
Mutual labels:  text-mining, bionlp
misinfo
📊 Tools to Perform ‘Misinformation’ Analysis on a Text Corpus (wrapper for methods in https://github.com/PDXBek/Misinformation)
Stars: ✭ 17 (-10.53%)
Mutual labels:  text-mining
cpsr
Cancer Predisposition Sequencing Reporter (CPSR)
Stars: ✭ 44 (+131.58%)
Mutual labels:  cancer
textlearnR
A simple collection of well working NLP models (Keras, H2O, StarSpace) tuned and benchmarked on a variety of datasets.
Stars: ✭ 16 (-15.79%)
Mutual labels:  text-mining
rosette-elasticsearch-plugin
Document Enrichment plugin for Elasticsearch
Stars: ✭ 25 (+31.58%)
Mutual labels:  text-mining
converse
Conversational text Analysis using various NLP techniques
Stars: ✭ 147 (+673.68%)
Mutual labels:  text-mining
Adjutant
Runs a pubmed query, returns results and allows user to explore high-level structure of returned documents
Stars: ✭ 59 (+210.53%)
Mutual labels:  text-mining
IARC-nf
List of IARC bioinformatics nextflow pipelines
Stars: ✭ 34 (+78.95%)
Mutual labels:  cancer
reader
Distant Reader, a tool for using & understanding a corpus
Stars: ✭ 18 (-5.26%)
Mutual labels:  text-mining
R.TeMiS
R.TeMiS: R Text Mining Solution
Stars: ✭ 21 (+10.53%)
Mutual labels:  text-mining
neji
Flexible and powerful platform for biomedical information extraction from text
Stars: ✭ 37 (+94.74%)
Mutual labels:  text-mining
lung-image-analysis
A basic framework for pulmonary nodule detection and characterization in CT
Stars: ✭ 26 (+36.84%)
Mutual labels:  cancer
thrones2vec
Using Word2Vec to explore semantic similarities between the entities of "A Song of Ice and Fire" ("Game of Thrones").
Stars: ✭ 27 (+42.11%)
Mutual labels:  text-mining
tf-idf-python
Term frequency–inverse document frequency for Chinese novel/documents implemented in python.
Stars: ✭ 98 (+415.79%)
Mutual labels:  text-mining
learning2hash.github.io
Website for "A survey of learning to hash for Computer Vision" https://learning2hash.github.io
Stars: ✭ 14 (-26.32%)
Mutual labels:  text-mining
cometa
Corpus of Online Medical EnTities: the cometA corpus
Stars: ✭ 31 (+63.16%)
Mutual labels:  bionlp
oncoEnrichR
Cancer-dedicated gene set interpretation
Stars: ✭ 35 (+84.21%)
Mutual labels:  cancer
classifying-cancer
A Python-Tensorflow neural network for classifying cancer data
Stars: ✭ 30 (+57.89%)
Mutual labels:  cancer
lda2vec
Mixing Dirichlet Topic Models and Word Embeddings to Make lda2vec from this paper https://arxiv.org/abs/1605.02019
Stars: ✭ 27 (+42.11%)
Mutual labels:  text-mining
TRUNAJOD2.0
An easy-to-use library to extract indices from texts.
Stars: ✭ 18 (-5.26%)
Mutual labels:  text-mining

CIViCmine

This is a text mining project to assist curation in the Clinical Interpretation of Variants in Cancer (CIViC) database. CIViC catalogs information on diagnostic, predictive, predisposing and prognostic variants in cancer. This project aims to text mine this data from PubMed and Pubmed Central Open Access subset

In brief: it finds sentences that describe genes, variants, cancer types and optionally drugs. We then annotated many of them to create training data. This is then used to build a classifier using the Kindred package. This is then applied to all of PubMed and PubMed Central Open Access to extract sentences and structured information. This is then collated for download and viewing through a web viewer.

System Requirements

This is a Python3 project which has been tested on Centos 6/7 but should work on other Linux operating systems and MacOS. An individual process of this can be run on a laptop or desktop computer. But in order to process all of the literature (PubMed, etc), this should really be run on a cluster or server-like machine. A cluster that uses Slurm or the SunGrid engine (SGE) are supported. Each node needs only 4 GBs on RAM.

This project relies on text mining using Kindred and Snakemake. These can be installed through pip.

It uses biomedical text converted using BioText.

Installation Guide

You can clone this repo using Git or download the ZIP file of it.

git clone https://github.com/jakelever/civicmine.git

It uses the BioText project which downloads and converts the biomedical research literature into the BioC XML format. You'll need to clone it and run the conversion scripts.

The code dependencies can be installed with the command below. You also need to install the scispacy language model.

pip install kindred snakemake scispacy zenodo_get
pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.4.0/en_core_sci_sm-0.4.0.tar.gz

Installation should take a maximum of 15 minutes (mostly due to the Spacy and language models installation).

Instructions for Use

A full run of CIViCmine will take some time as the large corpora need to be downloaded and parsing takes a long time. A cluster is strongly recommended for this task.

A test run (which is what the Travis-CI test does) can be executed with:

MODE=test snakemake --cores 1

The full run can be executed after you've downloaded and converted the BioText data with the command below, pointing BIOTEXT to the directory with the BioText BioC XML files.

MODE=full BIOTEXT=$BIOTEXT snakemake --cores 1

Practically, you'll likely want to use a cluster to parallelize this. Please refer to the Snakemake documentation for information about how to use a cluster.

For uploading the output to Zenodo, this project uses bigzenodo and the submission.json file.

Inputs

The project uses wordlists from the BioWordlists project for cancers, genes, drugs, variants and conflicting terms. The corpora used are PubMed abstracts and full-text papers from the PubMed Central Open Access Subset. While processing the full-text articles, subsection headers (e.g. Results) are also extracted to make it easier to locate where statements are made. The list of possible headers extracted can be found here.

We have annotated 800 sentences that comprise the civicmine_corpus which are used for training a Kindred classifier. This data can be found in the data/ directory and has been split into training and test sets.

Outputs

The three output files of CIViCmine is outlined below. You likely want civicmine_collated.tsv if you just want the list of cancer biomarkers. If you want the supporting sentences, look at civicmine_sentences.tsv. You can use the matching_id column to connect the two files. If you want to dig further and are okay with a higher false positive rate, look at civicmine_unfiltered.tsv.

civicmine_collated.tsv: This contains the cancer biomarkers with citation counts supporting them. It contains the normalized cancer and gene names along with IDs for HUGO, Entrez Gene and the Disease Ontology.

civicmine_sentences.tsv: This contains the supporting sentences for the cancer biomarker in the collated file. Each row is a single supporting sentence for one cancer biomarker. This file contains information on the source publication (e.g. journal, publication date, etc), the actual sentence and the cancer biomarker extracted.

civicmine_unfiltered.tsv: This is the raw output of the applyModelsToSentences.py script across all of PubMed, Pubmed Central Open Access and PubMed Central Author Manuscript Collection. It contains every predicted relation with a prediction score above 0.5. So this may contain many false positives. Each row contain information on the publication (e.g. journal, publication date, etc) along with the sentence and the specific cancer biomarker extracted (with HUGO, Entrez Gene and Disease Ontology IDs). This file is further processed to create the other two.

Shiny App

The code in shiny/ is the Shiny code used for the web viewer. If it is helpful, please use the code for your own projects. The list of dependencies is found at the top of the app.R file.

Paper

The code to generate all the figures and text for the paper can be found in paper/. This may be useful for generating an up-to-date version of the plots for a newer version of CIViCmine.

Changelog

  • v6 data release: change to Kindred's EntityRecognizer uses strict string matching instead of token matching, so results are minorly different
  • v11 data release: updated the Biowordlists to expand the drug name list
  • v22 data release: Reworked pipeline to use Biotext+snakemake instead of PubRunner. Prioritized using text from PMC. Also updated the Biowordlist

Citing

The paper is now published in Genome Medicine with the preprint still available at bioRxiv. It'd be wonderful if you would cite the paper if you use the methods or data set.

@article{lever2018civicmine,
  title={Text-mining clinically relevant cancer biomarkers for curation into the CIViC database},
  author={Lever, Jake and Jones, Martin R and Danos, Arpad M and Krysiak, Kilannin and Bonakdar, Melika and Grewal, Jasleen and Culibrk, Luka and Griffith, Obi L and Griffith, Malachi and Jones, Steven JM},
  journal={Genome Medicine},
  volume={11},
  number={78},
  year={2019},
  publisher={BioMed Central}
}

Issues

If you encounter any problems, please file an issue along with a detailed description.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].