Giter Club home page Giter Club logo

idpflex's Introduction

idpflex

image

image

Documentation Status

Join the chat at https://gitter.im/idpflex/Lobby

image

Analysis of intrinsically disordered proteins by comparing MD simulations to Small Angle Scattering experiments.

idpflex's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

idpflex's Issues

drop support for python 2.x

All Linux and OS distros have python 3.x, no need to convolute the code with python 2.x backwards compatibility

Add weights to fit call

lmfit does not assume any weights when calculating residual, we need to pass the inverse of the experimental errors as weights

parallelize calls to an external executable

Some property class like SecondaryStructureProperty and SaxsProperty can be instatiated using an
executable command through a method call. For instance:

saxs_prop = SaxsProperty().from_crysol_pdb(pdb_file)

will create X-ray property saxs_prop by running executable crysol using PDB file pdb_file.
Analogously,

ss_prop = SecondaryStructureProperty().from_dssp_pdb(pdb_file)

will create secondary structure property ss_prop by running executable dssp using PDB file pdb_file.

The task is to create a utility function so that given: (1)a property class, (2) a method, and (3) a list of files will create one property for each file, and this should be done in parallel.

For instance,

import multiprocessing
from tqdm import tqdm
with multiprocessing.Pool(processes=multiprocessing.cpu_count()) as pool:
    profiles = list(tqdm(pool.imap(SaxsProperty().from_crysol_pdb, pdb_names),
                         total=len(pdb_names)))

will create list of saxs properties profiles using all available cores.

The utility function should be implemented in file utils.py

plot histogram for ScalarProperty

Description

Reach for the node attribute in a ScalarProperty and plot a histogram of the set of y-values obtained from the leafs under the node.

Property for secondary structure

  • should use dssp
  • for every residue, save a dictionary like {'T': 0.12, 'H': 0.34} indicating the probability of the residue to
    be in a turn (T), helix (H), and so on. Probabilities should be normalized.

Update setup.py so that package will install in a virtual environment

  • idpflex version:
  • Python version:
  • Operating System:

Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

Incorrect recapitulation of weight clusters in notebook example

When creating artificial experimental X-ray profile in the example notebooks, we select a particular level of the tree and then assign weights to the nodes. For instance, for file hiAPP_clustering.ipynb we have in cell 13:

weights = [0.00, 0.13, 0.0, 0.55, 0.0, 0.32, 0.00] # the weights add up to one

Then in after executing cell 18 we obtain

('n192_amplitude', '0.32')
('n189_amplitude', '0.00')
('n187_amplitude', '0.00')
('n181_amplitude', '0.00')
('n191_amplitude', '0.00')
('n188_amplitude', '0.13')
('n190_amplitude', '0.55')

Containing three nodes with non-zero weigths, as expected.

If instead we use

weights = [0.00, 0.13, 0.0, 0.55, 0.0, 0.00, 0.32] # the weights add up to one

The we obtain

('n192_amplitude', '0.00')
('n189_amplitude', '0.00')
('n187_amplitude', '0.00')
('n181_amplitude', '0.00')
('n191_amplitude', '0.00')
('n188_amplitude', '0.13')
('n190_amplitude', '0.55')

There's no node with weight 32 !
This happens allways when we assign a non-zero weight to the last item of list weights.

Verify tests pass locally in python 3.5

  • idpflex version:
  • Python version:
  • Operating System:

Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

property for a residue contact map

This is a matrix property, not a profile one.
Each entry will be a real number indicating the probability that two residues are in contact.
There should be additional information indicating how the contact is defined. If implemented with MDAnalysis, optional arguments could be provided when creating the property.

plot secondary structure for a node

Three kinds of plotting:

  1. node
  2. leafs
  3. fractions

node plotting will create a 2D colored plot where each column denotes a particular element of secondary structure and each row denotes a particular residue. The entries on each row should be normalized to one, and colored from blue (zero) to one (red).

leafs will plot the secondary structure assignments for each leaf of the node. Leafs will be sorted according to distance to the secondary structure assignment of the node.

Fractions plotting will create a bars plot, with each bar representing the fraction of certain secondary structure in the protein. Fractions will be created from the secondary structure assignment of the node.

Make sure all tests pass in Travis-CI

  • idpflex version:
  • Python version:
  • Operating System:

Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

cluster random distance

Function to create a cluster of certain number of leafs, each with a random distance from zero to one. Then cluster according to this random distance

Add a property to calculate asphericity

When you calculate the e-e-d using gmx polystat, you will find the eigenvalues (say L1, L2 and L3) of radius of gyration tensor in the last three columns of the output file. Then, we can just use the standard asphericity formula as used in Loukas's JACS paper (eq 1). I wrote very simple shell script to calculate that for each frame. I think it will be much easier for you to implement in python. Here's the link for that paper

Publish in readthedocs and build docs in travis

  • idpflex version:
  • Python version:
  • Operating System:

Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

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.