Code Monkey home page Code Monkey logo

paralogmatching.jl's Introduction

ParalogMatching.jl

Documentation Build Status

This package implements the paralog matching technique presented in the paper "Simultaneous identification of specifically interacting paralogs and interprotein contacts by Direct Coupling Analysis" by Thomas Gueudré, Carlo Baldassi, Marco Zamparo, Martin Weigt and Andrea Pagnani, Proc. Natl. Acad. Sci. U.S.A. 113, 12186–12191 (2016), doi:10.1073/pnas.1607570113.

The main idea of the method is to perform a statistical analysis of two given multiple sequence alignments, each containing one protein family. Each familiy should comprise several species, and each species may have several sequences belonging to the family. The algorithm tries to associate (match) interacting partners from the two families within each species. It belongs to the more general class of Direct Coupling Analysis methods.

The underlying main assumption is that the proper matching is the one maximizing the co-evolution signal. Such maximization is performed over the Bayesian inference of a Gaussian model, by inverting the correlation matrix.

The code is written in Julia, and the functions are called from within Julia. However, a command-line interface is also provided for those unfamiliar with the language (see the documentation).

The package is tested against Julia 0.6 and 0.7 on Linux, OS X, and Windows.

Installation

The package is not registered; it can be installed with Pkg.clone:

julia> Pkg.clone("https://github.com/Mirmu/ParalogMatching.jl")

Dependencies will be installed automatically.

The package requires to install at least one linear programming solver supported by MathProgBase. By default, it uses GLPK, which is free and open source, but you can choose any another: see the list of available solvers at the JuliaOpt page. However, note that the solver efficiency is not particularly important for paralog matching, whose computational time is dominated by matrix inversion operations, therefore it's likely that you won't need a particularly fast solver.

Documentation

  • LATESTin-development version of the documentation.

Contributing and Questions

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems or would just like to ask a question.

paralogmatching.jl's People

Contributors

carlobaldassi avatar mirmu avatar pagnani avatar joaorodrigues avatar oasreyes 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.