Coder Social home page Coder Social logo

cbseg's Introduction

Circular Binary Segmentation

Build Status PyPI version Coffee

Circular Binary Segmentation (CBS) is an algorithm tests for change-points using a maximal t-statistic with a permutation reference distribution to obtain the corresponding p-value.

All citations should reference to original paper.

Install

If you dont already have numpy and scipy installed, it is best to download Anaconda, a python distribution that has them included.

    https://continuum.io/downloads

Dependencies can be installed by:

    pip install -r requirements.txt

PyPI install, presuming you have all its requirements installed:

	pip install cbseg

Usage

from cbseg import determine_cbs_stat, determine_t_stat, determine_cbs, segment, validate
import numpy as np

# Create data
np.random.seed(10)
x = np.random.random(300000)
x[10000:20000] = x[10000:20000] + 0.1
x[25000:27000] = x[25000:27000] - 1

# Calculate segments
L = segment(x, shuffles=1000, p=0.05)
for l in L:
   print(l)
# Interval(0-9998, 0, 0.8195453778139452)
# Interval(9998-20005, 0, 0.6922370217962109)
# Interval(20005-23672, 0, 0.37855730268017107)
# Interval(23672-24999, 0, 0.47507824637709734)
# Interval(24999-27000, 0, 1.106086021061645)
# Interval(27000-27765, 0, 0.20298421273826422)
# Interval(27765-300000, 0, 0.4615259909041863)

# Validate segments
SV = validate(x, L, shuffles=1000, p=0.05)
for l in SV:
   print(l)
# Interval(0-9998, 0, 59.217947014694886)
# Interval(9998-20005, 0, 24.51595009558689)
# Interval(20005-24999, 0, 1426.421130519047)
# Interval(24999-27000, 0, 214.73719913960934)
# Interval(27000-27765, 0, 1446.2331071442745)
# Interval(27765-300000, 0, 1446.2331071442745)

Original paper

E. S. Venkatraman, Adam B. Olshen; A faster circular binary segmentation algorithm for the analysis of array CGH data, Bioinformatics, https://doi.org/10.1093/bioinformatics/btl646

cbseg's People

Contributors

kylessmith avatar

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.