GithubHelp home page GithubHelp logo

ecolell / amphipathic Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 424 KB

Library to evaluate an aminoacid sequence and determine an amphipathic index for each alpha helix or beta sheet.

License: MIT License

Makefile 1.54% Python 71.89% BASIC 26.57%
bioinformatics protein-structure protein-sequence-analysis

amphipathic's Introduction

amphipathic

License Downloads Build Status codecov PyPI version

This library can analyze an aminoacid sequence and gives a list of secondary structures with the respective hydrophobicity mean[1] and amphipathic index[1].

When it is useful to calculate this measurements on a secondary structure?

By looking into this measurements for an alpha helix, you can test some hiphotesis related with:

  1. the context of a globular soluble protein:
    • hydrofobic core, it will be no amphipathic and hydrophobic
    • interface between core and the superficial region, it will be amphiphatic
    • superficial region, it will be no amphipathic and hydrophilic
  2. the interactions of a trans-membrane protein:
    • on lipids interaction, it will be not amphipathic and hidrophobic
    • on multiple trans-membrane helix interacion (homomeric or heteromeric), it will be amphipathic building like an ionic channel.

Requirements

If you want to use this library on any GNU/Linux or OSX system you just need to execute:

$ pip install amphipathic

If you want to collaborate with this library, you should download the github repository and execute:

$ make deploy

Testing

To test all the project you should use the command:

$ pytest tests

Example

This library can analyze an aminoacid sequence and gives a list of secondary structures with the respective hydrophobicity mean and amphipathic index.

import amphipathic
resume = amphipathic.index('NLYIQWLKDGGPSSGRPPPS')
print resume

or specifing scale="prift" from Cornette et al.[1]

import amphipathic
resume = amphipathic.index('NLYIQWLKDGGPSSGRPPPS', scale="prift")
print resume

And the result should be:

[[
    {'end': 2,
     'begin': 0,
     'type': u'c',
     'seq': 'nl',
     'amphipathic': {'index': 7.572935321054872e-05, 'mean': 2.6}},
    {'end': 5,
     'begin': 2,
     'type': u'e',
     'seq': 'yiq',
     'amphipathic': {'index': 1.4312912272216411, 'mean': 1.7299999999999998}},
    {'end': 18,
     'begin': 5,
     'type': u'c',
     'seq': 'wlkdggpssgrpp',
     'amphipathic': {'index': 0.002511560979331271, 'mean': -0.43}},
    {'end': 20,
     'begin': 18,
     'type': u'e',
     'seq': 'ps',
     'amphipathic': {'index': 1.6242872515167746, 'mean': -1.34}}
]]

Each secondary structure block has specific information like:

  • type could be "c" (from coil), "e" (extended/beta sheet) or "h" (alpha helix).
  • mean provides the hydrophobicity mean obtained using the aminoacids of the block through Hydrophobicity scales obtained from Table 4 (STA PRIFT **) Cornette et al.[1].
  • index provides an amphipathic index adapted from Cornette et al.[1], first implemented into Pablo Daniel Ghiringhelli's PhD thesis[2]. Cornette et al.[1] suggests an scalar equal or greater than 2, means apmhipathicity. On alpha helix cases this is only valid for segments shorter than 20-25 residues. When an alpha helix go further in longitude, the index is not valid anymore.

It also accept a nucleotide sequence to perform the same analysis:

import amphipathic
resume = amphipathic.index('cgcgtccttggagcaatgcagttcaagaccaagaatcgaattgaacctgt')
print resume

And the output:

[[
    {'end': 12,
     'begin': 0,
     'type': u'c',
     'seq': 'rvlgamqfktkn',
     'amphipathic': {'index': 0.007560225956225585, 'mean': 0.7825000000000001}},
    {'end': 15,
     'begin': 12,
     'type': u'e',
     'seq': 'rie',
     'amphipathic': {'index': 1.6297837670649824, 'mean': 1.4599999999999997}},
    {'end': 16,
     'begin': 15,
     'type': u'c',
     'seq': 'p',
     'amphipathic': {'index': 0.0, 'mean': -2.23}}
]]

Last, it also accept a polyprotein sequence. When working with aminoacid it detect the '*' character as a stop signal:

import amphipathic
resume = amphipathic.index('NLYIQWLKDG*GPSSGRPPPS') 
print resume

Usages

This library was used into mistic2.

Bibliography

[1] Cornette, J. L., Cease, K. B., Margalit, H., Spouge, J. L., Berzofsky, J. A., & DeLisi, C. (1987). Hydrophobicity scales and computational techniques for detecting amphipathic structures in proteins. Journal of Molecular Biology, 195(3), 659–685. doi:10.1016/0022-2836(87)90189-6.

[2] Ghiringhelli D (2002). Virus Junín: Clonado molecular y análisis estructural y funcional del RNA S y sus productos génicos, Facultad de Ciencias Exactas, Universidad Nacional de La Plata.

Questions?

If you want to develope with us or have any questions, please file an issue into this repository. Please check the existing (and closed) issues to make sure yours hasn't already been addressed.

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.