GithubHelp home page GithubHelp logo

vatj / gpmap_integer_polyomino Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 3.73 MB

Code repository for the analysis of the Genotype-Phenotype Map Properties of the Integer Polyomino Model.

Home Page: https://www.tcm.phy.cam.ac.uk/profiles/vatj2/

License: MIT License

CMake 0.98% Jupyter Notebook 28.93% Python 32.40% C++ 37.70%
polyomino genotype-phenotype-maps gene-duplication

gpmap_integer_polyomino's Introduction

Genotype-Phenotype Map Integer Polyomino

Build Status License Badge DOI

Code repository for the analysis of the Genotype-Phenotype Map Properties of the Integer Polyomino Model.

Overview

Custom GP-map analysis tools for the Integer Polyomino Model are coded in C++. These tools rely on a core algorithm to build polyominoes from lists of integer hosted in this repository. The python API uses pybind11 to expose the underlying C++ to the python interpreters. A minimal documentation of the python API is provided using Sphinx and hosted on the Theory of Condensed Matter Group servers. Additionally, example jupyter notebooks are made available to get started with the python API.

Installation

This module can be installed as any python package :

pip install git+https://github.com/vatj/gpmap_integer_polyomino.git

Note that compiling requires a relatively recent C++ compiler such as g++7 as well as openmp libraries to enable parallel computing

Quickstart

Two main quickstart jupyter notebooks are provided to examplify the basic functionality of the repository. Other examples notebooks are also present which can be used for more advance use cases.

Assembly

This notebook contains a minimal example of how to use the polyomino assembly API. It is intended as a tool to map a list of integer to a polyomino, i.e. a genotype to its corresponding phenotype. In practice the function only returns an ID which corresponds to an entry in a phenotype_table file. Each entry is a matrix of boolean value. A simple plot function is provided to map this matrix onto a polyomino shape.

GP-Map

This notebook contains an example of how to generate the the analysis of a integer polyomino genotype-phenotype map. All genotype contains 2 genes and at most 7 different labels (1 neutral and 3 interacting pairs). The output is written to 2 different files, one for genome-level metrics and one for phenotype-level metrics. These files can be loaded in panda dataframes for easy analysis and plotting.

Directory Layout

  • docs/ (integration with sphinx)
  • libs/ (git submodule dependencies)
  • notebooks/ (working examples)
  • src/
    • integer_polyomino/
      • assembly/ (Mostly pybind API for custom polyomino_core features)
      • gpmap/ (C++ implementation of the gpmap analysis algorithms + pybind API definition)
      • scripts/ (python utility file such as plotting functions)
  • tests/

gpmap_integer_polyomino's People

Contributors

vatj avatar

Watchers

 avatar

gpmap_integer_polyomino's Issues

Consistent duplicate generation

What

Duplicates should be taken from the same list that generated the 3 tile space

Why

Removes confusion over parentless duplicates and childless 3 tiles.

How

Save 3 tile list to file, read file, duplicate based on given list
(do we want to strip isomorphic duplicates, it is meaningful that they are twice as common...)

Clarify "quickstart"

It is confusing to install and use this repo from scratch.

  • clarify state system requirements (CMake etc.)
  • improve usage of quickstart files
    • remove clutter (privateSainsburyPresentation etc.)
    • comment more on user interface side
    • command line option?
  • docs and tests folders are basically nonfunctional

Genotype/Assembly graph feature identification

What

ID genotype features like

  • free faces
  • total number of interactions
  • assembly graph features
    • branching points
    • cycles
    • SIFs

Why

Better understand phenotype space in general, and specifically how duplication effects different subunits.

How

reconstruct info based on the reference genotype present in set metric file

Packing error

Does graph_topo need to be additionally added to local directory?

If we make a pypi package, it should be 1 click installable, not require many steps.

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.