Coder Social home page Coder Social logo

choderalab / ensembler Goto Github PK

View Code? Open in Web Editor NEW
52.0 22.0 21.0 31.46 MB

Automated omics-scale protein modeling and simulation setup.

Home Page: http://ensembler.readthedocs.io/

License: GNU General Public License v2.0

Shell 0.58% Python 98.34% Parrot 0.77% Scala 0.31%
python molecular-dynamics-simulation homology-modeling modeller superfamily

ensembler's Introduction

Ensembler

Anaconda Cloud Documentation Status Build Status

Software pipeline for automating omics-scale protein modeling and simulation setup.

Online documentation

Authors

Overview of pipeline

  1. Retrieve protein target sequences and template structures.
  2. Build models by mapping each target sequence onto every available template structure, using Modeller.
  3. Filter out non-unique models (based on a RMSD cutoff).
  4. Refine models with implicit solvent molecular dynamics simulation.
  5. Refine models with explicit solvent molecular dynamics simulation.
  6. (optional) Package and/or compress the final models, ready for transfer or for set-up on other platforms such as Folding@Home.

Installation

First go to the Modeller website and get a license key (registration required; free for academic non-profit institutions).

Save the key as an environment variable:

export KEY_MODELLER=XXX

Then, using conda (installs all dependencies except the optional dependency Rosetta):

conda config --add channels omnia
conda config --add channels salilab
conda install ensembler

From source:

git clone https://github.com/choderalab/ensembler.git
cd ensembler
python setup.py install

Dependencies

Recommended approach is to install using conda (https://store.continuum.io/cshop/anaconda/). This will install all dependencies except for the optional dependency Rosetta, which must be installed separately by the user.

ensembler's People

Contributors

danielparton avatar jchodera avatar mikemhenry avatar nhstanley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ensembler's Issues

Conditional imports in nosetests?

It might be useful to have the nosetests fail gracefully when things like rosetta and modeller are absent. This can be done using either the skipif decorator or by doing the import inside the test function and raising a SkipTest if the import fails

Ensembler usage for missing parts in crystal structure

Hi Danny and Ensembler team,
Using ensembler, if I want to only model missing parts of the protein crystal structure I have, what are my options?

    ensembler quickmodel --target_uniprot_entry_name my_protein --uniprot_domain_regex '^my protein' --template_pdbids ./my_pdb.pdb --no-loopmodel

SIFTS file format has changed

Was testing loopmodel code on PDB template 4AF3, for which there should be a stretch of 16 missing residues missing. These are no longer discovered properly by pdbfixer.findMissingResidues(), and the ultimate cause is apparently a change in the SIFTS file format - a conflicting residue is no longer annotated as Conflict. This means the sequence stored by the gather_templates code (which should not include conflicts) is incorrect. Will need to update gather_templates code to directly compare PDB and UniProt residue names in SIFTS files.

New:

        <residue dbSource="PDBe" dbCoordSys="PDBe" dbResNum="246" dbResName="THR">
          <crossRefDb dbSource="PDB" dbCoordSys="PDBresnum" dbAccessionId="4af3" dbResNum="298" dbResName="THR" dbChainId="A"/>
          <crossRefDb dbSource="UniProt" dbCoordSys="UniProt" dbAccessionId="Q96GD4" dbResNum="298" dbResName="M"/>
          <crossRefDb dbSource="Pfam" dbCoordSys="UniProt" dbAccessionId="PF00069" dbResNum="298" dbResName="M"/>
          <crossRefDb dbSource="CATH" dbCoordSys="PDBresnum" dbAccessionId="1.10.510.10" dbResNum="298" dbResName="THR" dbChainId="A"/>
          <crossRefDb dbSource="NCBI" dbCoordSys="UniProt" dbAccessionId="9606" dbResNum="298" dbResName="M"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR002290" dbResNum="298" dbResName="M" dbEvidence="SM00220"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR000719" dbResNum="298" dbResName="M" dbEvidence="PF00069"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR011009" dbResNum="298" dbResName="M" dbEvidence="SSF56112"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR028772" dbResNum="298" dbResName="M" dbEvidence="PTHR24350:SF4"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR011009" dbResNum="298" dbResName="M" dbEvidence="SSF56112"/>
          <crossRefDb dbSource="InterPro" dbCoordSys="UniProt" dbAccessionId="IPR000719" dbResNum="298" dbResName="M" dbEvidence="PS50011"/>
          <residueDetail dbSource="PDBe" property="codeSecondaryStructure">H</residueDetail>
          <residueDetail dbSource="PDBe" property="nameSecondaryStructure">helix</residueDetail>
        </residue>

Old:

        <residue dbResNum="246" dbResName="THR">
          <crossRefDb dbSource="PDB" dbVersion="20130408"
          dbCoordSys="PDBresnum" dbAccessionId="4af3"
          dbResNum="298" dbResName="THR" dbChainId="A">
          </crossRefDb>

          <crossRefDb dbSource="UniProt" dbVersion="143-3"
          dbCoordSys="UniProt" dbAccessionId="Q96GD4"
          dbResNum="298" dbResName="M">
          </crossRefDb>

          <residueDetail dbSource="MSD" property="Annotation">
          Conflict</residueDetail>

          <residueDetail dbSource="MSD"
          property="codeSecondaryStructure">H</residueDetail>

          <residueDetail dbSource="MSD"
          property="nameSecondaryStructure">
          ALPHA-HELIX</residueDetail>
        </residue>

Model residue variants are not consistent for target FAK2_HUMAN_D0

During the implicit solvent MD stage, models should be given the same protonation states as a reference model (the model with highest template-target sequence identity).

However, the implicit solvent MD models for the TK target FAK2_HUMAN_D0 have different topologies:

  • FAK2_HUMAN_D0_3CC6_A - 4227 atoms; CYS35-CYS39 no disulfide bond; reference model
  • FAK1_HUMAN_D0_4Q9S_A - 4225 atoms; CYS35-CYS39 disulfide bond

I'm looking into this now, but it's not immediately clear why this happened. They were generated during the same ensembler run, so really should have been using the same residue variants.

New name?

@dannyparton points out:

I don't really like Conformation Explorer. The software is aimed more at generating conformations than exploring them. It also suffers from ambiguity (could be a visualization tool, for example). And I don't really want to go the route of naming all software *Explorer. There can only be one Dora...

We've just been brainstorming names some more. These were the favorites:

Not sure if you want to avoid having "homology model" in the name though.

Other, more boring names:

  • MDSeeder
  • HMSeeder
  • HMAggregator
    What do you think?

Selecting protonation states?

Is it possible to manually specify which residues should be in different protonation states?

If so, would it be possible to add a note about this to the docs, or add an example? For example, selecting that the Asp of the DFG loop of ABL1 be in the protonated state would be a great example. (ASH instead of ASP).

Serialization problems

PDB objects experience difficulty being serialized, which causes errors using the Spark version. Worst case, will send strings across network instead of serialized PDB file.

Omnia binstar

We should change the official conda distribution channel from dannyparton to omnia.

Issue while downloading sifts files

I was trying to use the quickmodel command and it kept failing while trying to download the sifts files.

I am using the latest conda build and here is the command that I ran

ensembler quickmodel --target_uniprot_entry_name ABL1_HUMAN --uniprot_domain_regex '^Protein kinase' --template_pdbids 2SRC

Here is the error

Querying UniProt web server...
Number of entries returned from initial UniProt search: 2

Set of unique domain names returned from the initial UniProt search using the query string 'mnemonic:ABL1_HUMAN':
set(['SH2', 'SH3', 'Protein kinase'])

Unique domain names selected after searching with the case-sensitive regex string '^Protein kinase':
set(['Protein kinase'])

Done.
Downloading PDB file for: 2SRC
Downloading sifts file for: 2SRC
ERROR downloading SIFTS file with PDB ID: 2SRC
Traceback (most recent call last):
  File "/home/msultan/software/anaconda/bin/ensembler", line 6, in <module>
    sys.exit(main())
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/cli.py", line 40, in main
    command.dispatch(args)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/cli_commands/quickmodel.py", line 106, in dispatch
    QuickModel(targetid=args['--targetid'], templateids=templateids, target_uniprot_entry_name=args['--target_uniprot_entry_name'], uniprot_domain_regex=args['--uniprot_domain_regex'], pdbids=pdbids, chainids=chainids_dict, template_uniprot_query=args['--template_uniprot_query'], template_seqid_cutoff=template_seqid_cutoff, loopmodel=not args['--no-loopmodel'], package_for_fah=args['--package_for_fah'], nfahclones=nfahclones, structure_dirs=structure_paths)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/tools/quick_model.py", line 78, in __init__
    ensembler.initproject.gather_templates_from_pdb(self.pdbids, self.uniprot_domain_regex, chainids=self.chainids, structure_dirs=self.structure_dirs)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/utils.py", line 37, in print_done
    fn(*args, **kwargs)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/initproject.py", line 373, in gather_templates_from_pdb
    get_structure_files_for_single_pdbchain(pdbid, structure_dirs)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/initproject.py", line 493, in get_structure_files_for_single_pdbchain
    pdbid, project_structure_filepath, structure_type=structure_type
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/initproject.py", line 451, in download_structure_file
    download_sifts_file(pdbid, project_structure_filepath)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/initproject.py", line 463, in download_sifts_file
    sifts_page = ensembler.pdb.retrieve_sifts(pdbid)
  File "/home/msultan/software/anaconda/lib/python2.7/site-packages/ensembler/pdb.py", line 68, in retrieve_sifts
    response = urlopen(url)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 1412, in ftp_open
    fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib2.py", line 1434, in connect_ftp
    persistent=False)
  File "/home/msultan/software/anaconda/lib/python2.7/urllib.py", line 875, in __init__
    self.init()
  File "/home/msultan/software/anaconda/lib/python2.7/urllib.py", line 887, in init
    self.ftp.cwd(_target)
  File "/home/msultan/software/anaconda/lib/python2.7/ftplib.py", line 562, in cwd
    return self.voidcmd(cmd)
  File "/home/msultan/software/anaconda/lib/python2.7/ftplib.py", line 254, in voidcmd
    return self.voidresp()
  File "/home/msultan/software/anaconda/lib/python2.7/ftplib.py", line 229, in voidresp
    resp = self.getresp()
  File "/home/msultan/software/anaconda/lib/python2.7/ftplib.py", line 224, in getresp
    raise error_perm, resp
urllib2.URLError: <urlopen error ftp error: 550 Failed to change directory.>

I have reproduced the error on two different clusters and with a variety of template ids. As of this post, the sifts page for 2src seems to be up as well.

py3k support

Might be useful to make py3k compatible at some point

Add travis continuous integration?

I wonder if it would be useful to add travis continuous integration tests. These could test the construction of a very small number of templates and targets for small proteins, though we would need to figure out how to install the non-conda-installable dependencies.

Something to think about if it becomes easy to satisfy those dependencies.

Default pH for refinement stages is currently 8 - change to 7?

I believe we decided to use 8 because it matches the buffer we use in our experimental assays.
However, I think for the general user, it would make more sense for the default value to be 7.
We (the Chodera lab) would just have to remember to set the pH to 8 (via the CLI) when necessary.

Add an option to specify (or "pin") the protonation states / variants of specified residues

@sonyahanson would like to select the protonation states of some residues (such as the DFG Asp in kinases).

Currently, the code uses the highest sequence identity PDB file model.pdb.gz to extract reference residue variants that are used to assign the protonation state variants of all residues in all models.

To manually make alterations, this would mean editing the model.pdb.gz of the highest sequence identity model(s) manually after the modelling stage in order to change residue names appropriately (e.g. change ASP to ASH to select the protonated aspartic acid).

In future, it would be useful to allow these alterations to be specified either via the command-line or a YAML file or something.

Zinc multivalent ion model incorporation

cc #40

Opening this to discuss the changes to code that need to be done. Have started playing around and looking into the code, but for now this is completely new. Any starting advice on what will need to be changed and where to start?

Write test runner script

Command-line syntax could be something like this:

ensembler test
ensembler integration_tests

Should be possible to run tests from any location, so the tests will need to be able to access test data stored in the install directory.

Skip template loop modeling for templates not missing any loops

mski1776:ensembler-test choderaj$ ensembler quickmodel --target_uniprot_entry_name ABL1_HUMAN --uniprot_domain_regex '^Protein kinase' --template_pdbids 2SRC
WARNING: /opt/anaconda1anaconda2anaconda3 not found.
Ignoring mpi4py.
Using mpi4py on OS X with Anaconda currently requires that /opt/anaconda1anaconda2anaconda3 points to your Anaconda installation.
As a workaround, you can create a symlink, e.g. "sudo ln -s ~/anaconda /opt/anaconda1anaconda2anaconda3
Done.
Querying UniProt web server...
Number of entries returned from initial UniProt search: 2

Set of unique domain names returned from the initial UniProt search using the query string 'mnemonic:ABL1_HUMAN':
set(['SH2', 'SH3', 'Protein kinase'])

Unique domain names selected after searching with the case-sensitive regex string '^Protein kinase':
set(['Protein kinase'])

Done.
Downloading PDB file for: 2SRC
Downloading sifts file for: 2SRC
1 PDB chains selected.
Extracting residues from PDB chains...
1 templates selected.

Writing template structures...
Done.
MPI rank 0 pdbfixer error for template SRC_HUMAN_D0_2SRC_A - see logfile
Modeling missing loops for template SRC_HUMAN_D0_2SRC_A
Traceback (most recent call last):
  File "/Users/choderaj/miniconda/bin/ensembler", line 6, in <module>
    sys.exit(main())
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/cli.py", line 40, in main
    command.dispatch(args)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/cli_commands/quickmodel.py", line 106, in dispatch
    QuickModel(targetid=args['--targetid'], templateids=templateids, target_uniprot_entry_name=args['--target_uniprot_entry_name'], uniprot_domain_regex=args['--uniprot_domain_regex'], pdbids=pdbids, chainids=chainids_dict, template_uniprot_query=args['--template_uniprot_query'], template_seqid_cutoff=template_seqid_cutoff, loopmodel=not args['--no-loopmodel'], package_for_fah=args['--package_for_fah'], nfahclones=nfahclones, structure_dirs=structure_paths)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/tools/quick_model.py", line 95, in __init__
    self._model(self.targetid, self.templateids, loopmodel=self.loopmodel, package_for_fah=self.package_for_fah, nfahclones=self.nfahclones)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/tools/quick_model.py", line 138, in _model
    ensembler.modeling.model_template_loops(process_only_these_templates=templateids)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/utils.py", line 37, in print_done
    fn(*args, **kwargs)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/modeling.py", line 74, in model_template_loops
    loopmodel_templates(templates_resolved_seq, missing_residues_list, process_only_these_templates=process_only_these_templates, overwrite_structures=overwrite_structures)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/modeling.py", line 221, in loopmodel_templates
    loopmodel_template(template, missing_residues[template_index], overwrite_structures=overwrite_structures)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/modeling.py", line 234, in loopmodel_template
    write_loop_file(template, missing_residues)
  File "/Users/choderaj/miniconda/lib/python2.7/site-packages/ensembler/modeling.py", line 259, in write_loop_file
    loop_residues_data = [(key[1], len(residues)) for key, residues in missing_residues.iteritems()]
AttributeError: 'NoneType' object has no attribute 'iteritems'

Disulfide bonds

This is some analysis of disulfide bonds in protein kinases, to help with deciding how to handle them in Ensembler.
Also, this is a long message - for a quick summary, see the "My tentative conclusions" section.

I have analyzed the protein kinase templates we are using for the kinome project - these correspond to the 4433 protein kinase domains annotated in UniProt from any species. Of these domains, 41 have a SSBOND annotation in the original PDB structure which involves a residue within the span of the kinase domain. This analysis excludes disulfide bonds formed between chains, and those with the same residue index, since these represent disulfide bonds formed between crystal subunits.

The 41 templates come from 12 different protein kinases, 11 of which are human, and 2 of which are human TKs. These are the UniProt entry names:

FAK1_HUMAN (TK)
TIE2_HUMAN (TK)
MKNK2_HUMAN
PKN1_HUMAN
M3K7_HUMAN
MELK_HUMAN
AKT1_HUMAN
SGK1_HUMAN
IKKB_HUMAN
AKT2_HUMAN
KS6A5_HUMAN
FAK1_CHICK

Analysis of a few example template structures with disulfide bonds

  • FAK1_HUMAN_D0_1MP8_A (TK)
    • resids: 456, 459
    • appearance: bridges a beta-turn on exterior of small lobe
    • paper: see below
  • TIE2_HUMAN_D0_2WQB_A (TK)
    • resids: 1040, 1118
    • appearance: between two unstructured regions, one in large lobe, one ~20 residues after the kinase domain
    • paper: disulfide bond not mentioned
  • AKT1_HUMAN_D0_4EJN_A
    • resids: 60, 77
    • appearance: links A-loop
  • KS6A5_HUMAN_D1_3KN5_A
    • resids: 631, 714
    • appearance: between two helices in the large lobe
  • MELK_HUMAN_D0_4IXP_A
    • resids: 154, 168
    • appearance: links A-loop
  • SGK1_HUMAN_D0_3JDM_A
    • resids: 193, 258
    • appearance: erroneous annotation? - cysteines are a long long way apart

More detail on FAK1

(Note: FAK1 is also known as PTK2)

There are 16 different FAK1 PDB entries which all have a disulfide bond in the same position. However, the following paragraph is the only discussion I can find in the literature.

"A striking feature of the FAK kinase is the presence of an intramolecular disulphide bond in the N-terminal lobe of the kinase Figure 2 and Figure 4. The disulphide spans a short turn of four residues between C456 and C459. This turn closely resembles a type-I ฮฒ turn, with residues n and n + 3 covalently linked through the disulphide bond. This unusual feature is located on the surface of the N-terminal lobe adjacent to the ฮฑC helix (Figure 2B). Cysteines 456 and 459 are conserved in vertebrate FAK sequences, suggesting a possible role in kinase function (Figure 4B). The proximity of the disulphide to the ฮฑC helix suggests also that its role may lie in fine-tuning the orientation of this helix. Disulfide bonds are extremely rare in cytoplasmic proteins because of the reducing nature of the intracellular environment. It is unknown whether the C456-C459 bond formed in the FAK crystal structure is maintained in vivo, especially since this feature is located close to the protein surface. The corresponding structural region in other kinases has been implicated in the regulation of kinase activity through protein-protein interactions [50], and it is conceivable that the disulphide bond might be protected upon binding of regulatory proteins."

  • from 1MP8 paper (2003) - I think this is the first FAK1 crystal structure

My tentative conclusions

Disulfide bonds in cytosolic proteins are thought to be extremely rare due to the reducing environment. Furthermore, only a small proportion of protein kinase domain PDB structures have SSBOND annotations, and these may not even be present physiologically, since crystal conditions โ‰  cytosol. Therefore, I would suggest that the general approach for most cytosolic proteins should be to ignore disulfide bonds. And I suggest we take this approach for the current TK project, including FAK1.

As @jchodera was saying in #21, it would probably also be helpful to implement the following functionality:

  • "automatic" addition of disulfide bonds from PDB structures, based on the SSBOND annotations
  • manual addition of disulfide bonds, given user-defined residue positions

Also, for reference, @jchodera mentioned this paper which indicates that kinase disulfide bonds may play some role under oxidative conditions: http://www.ncbi.nlm.nih.gov/m/pubmed/21078955/

Data for the 41 disulfide bonds

First line is the template ID.
Second is the SSBOND line from the PDB file.
(No templates have > 1 disulfide bond within their span)

1: = AKT1_HUMAN_D0_4EJN_A =
SSBOND   2 CYS A  296    CYS A  310                          1555   1555  2.05

2: = AKT2_HUMAN_D0_1MRY_A =
SSBOND   1 CYS A  297    CYS A  311                          1555   1555  2.04

3: = FAK1_CHICK_D0_2JKK_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.00

4: = FAK1_CHICK_D0_2JKM_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

5: = FAK1_CHICK_D0_2JKO_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.05

6: = FAK1_CHICK_D0_2JKQ_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

7: = FAK1_HUMAN_D0_1MP8_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.01

8: = FAK1_HUMAN_D0_2ETM_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

9: = FAK1_HUMAN_D0_2ETM_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.03

10: = FAK1_HUMAN_D0_2IJM_B =
SSBOND   1 CYS B  456    CYS B  459                          1555   1555  2.02

11: = FAK1_HUMAN_D0_3BZ3_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

12: = FAK1_HUMAN_D0_3PXK_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

13: = FAK1_HUMAN_D0_3PXK_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.04

14: = FAK1_HUMAN_D0_4EBV_A =
SSBOND   1 CYS A  459    CYS A  456                          1555   1555  2.03

15: = FAK1_HUMAN_D0_4EBW_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

16: = FAK1_HUMAN_D0_4GU6_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

17: = FAK1_HUMAN_D0_4GU6_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.04

18: = FAK1_HUMAN_D0_4GU9_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

19: = FAK1_HUMAN_D0_4GU9_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.04

20: = FAK1_HUMAN_D0_4I4E_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

21: = FAK1_HUMAN_D0_4I4F_A =
SSBOND   1 CYS A  459    CYS A  456                          1555   1555  2.03

22: = FAK1_HUMAN_D0_4K8A_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

23: = FAK1_HUMAN_D0_4K8A_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.05

24: = FAK1_HUMAN_D0_4K9Y_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

25: = FAK1_HUMAN_D0_4KAB_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

26: = FAK1_HUMAN_D0_4KAB_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.05

27: = FAK1_HUMAN_D0_4KAO_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.04

28: = FAK1_HUMAN_D0_4KAO_B =
SSBOND   2 CYS B  456    CYS B  459                          1555   1555  2.04

29: = FAK1_HUMAN_D0_4Q9S_A =
SSBOND   1 CYS A  456    CYS A  459                          1555   1555  2.03

30: = IKKB_HUMAN_D0_4E3C_E =
SSBOND   1 CYS E  114    CYS E  115                          1555   1555  2.05

31: = IKKB_HUMAN_D0_4E3C_F =
SSBOND   2 CYS F  114    CYS F  115                          1555   1555  2.05

32: = KS6A5_HUMAN_D1_3KN5_A =
SSBOND   1 CYS A  631    CYS A  714                          1555   1555  2.05

33: = KS6A5_HUMAN_D1_3KN5_B =
SSBOND   2 CYS B  631    CYS B  714                          1555   1555  2.06

34: = KS6A5_HUMAN_D1_3KN6_A =
SSBOND   1 CYS A  631    CYS A  714                          1555   1555  0.64

35: = KS6A5_HUMAN_D1_3KN6_B =
SSBOND   2 CYS B  631    CYS B  714                          1555   1555  2.06

36: = M3K7_HUMAN_D0_4L52_A =
SSBOND   1 CYS A   96    CYS A  101                          1555   1555  2.71

37: = MELK_HUMAN_D0_4IXP_A =
SSBOND   1 CYS A  154    CYS A  168                          1555   1555  2.03

38: = MKNK2_HUMAN_D0_2HW7_A =
SSBOND   1 CYS A  311    CYS A  314                          1555   1555  2.06

39: = PKN1_HUMAN_D0_4OTH_A =
SSBOND   1 CYS A  668    CYS A  768                          1555   1555  2.06

40: = SGK1_HUMAN_D0_3HDM_A =
SSBOND   1 CYS A  193    CYS A  258                          1555  12555  2.75

41: = TIE2_HUMAN_D0_2WQB_A =
SSBOND   1 CYS A 1040    CYS A 1118                          1555   1555  2.01

Analysis code:
https://gist.github.com/danielparton/c825dec98c360b428de7

Confusing Error messages

Just wanted to bring this up, but some of the error messages are difficult to interpret! I was running the following step of the pipeline:

ensembler gather_templates --gather_from uniprot --query 'domain:"Protein kinase" AND reviewed:yes' --uniprot_domain_regex '^Protein kinase(?!; truncated)(?!; inactive)'

and got the following error:

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/bin/ensembler", line 6, in <module>
    sys.exit(main())
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/cli.py", line 40, in main
    command.dispatch(args)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/cli_commands/gather_templates.py", line 116, in dispatch
    ensembler.initproject.gather_templates_from_uniprot(args['--query'], uniprot_domain_regex=args['--uniprot_domain_regex'], structure_dirs=structure_paths, loglevel=loglevel)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/utils.py", line 37, in print_done
    fn(*args, **kwargs)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 342, in gather_templates_from_uniprot
    uniprotxml = ensembler.uniprot.get_uniprot_xml(uniprot_query_string)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/uniprot.py", line 43, in get_uniprot_xml
    uniprotxml = etree.fromstring(uniprotxmlstring, parser)
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:82934)
  File "src/lxml/parser.pxi", line 1819, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:124533)
  File "src/lxml/parser.pxi", line 1707, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:123074)
  File "src/lxml/parser.pxi", line 1079, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:117114)
  File "src/lxml/parser.pxi", line 573, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:110510)
  File "src/lxml/parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:112276)
  File "src/lxml/parser.pxi", line 613, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:111124)
lxml.etree.XMLSyntaxError: AttValue: ' expected, line 2865323, column 15

It turned out that I was able to fix this by specifying taxonomy for --query. I then got the following error while running in an interactive session:

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/bin/ensembler", line 6, in <module>
    sys.exit(main())
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/cli.py", line 40, in main
    command.dispatch(args)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/cli_commands/gather_templates.py", line 116, in dispatch
    ensembler.initproject.gather_templates_from_uniprot(args['--query'], uniprot_domain_regex=args['--uniprot_domain_regex'], structure_dirs=structure_paths, loglevel=loglevel)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/utils.py", line 37, in print_done
    fn(*args, **kwargs)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 348, in gather_templates_from_uniprot
    get_structure_files(selected_pdbchains, structure_dirs)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 474, in get_structure_files
    get_structure_files_for_single_pdbchain(pdbchain['pdbid'], structure_dirs)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 493, in get_structure_files_for_single_pdbchain
    pdbid, project_structure_filepath, structure_type=structure_type
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 449, in download_structure_file
    download_pdb_file(pdbid, project_structure_filepath)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/initproject.py", line 456, in download_pdb_file
    pdbgz_page = ensembler.pdb.retrieve_pdb(pdbid, compressed='yes')
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/pdb.py", line 103, in retrieve_pdb
    response = urlopen(url)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>

Still looking into how to fix this

Strangely modeled loops in templates after loop modeling.

Seeing some strange output structures-modeled-loops/...pdbfixed.pdb files resulting from ensembler loopmodel, this pdb can be found here:

strange-loop-sticks
strange-loop-cartoon

Not sure if this might be a pymol representation thing that would be resolved after minimization, but I have a feeling there is a real problem here.

This also happened, but turns out these were not the templates we wanted anyway (these pdbs can be found here and here:

howthefuck

Giving users flexibility in specifying residue numbering

(Moved from #35.)

It would be useful to allow users to manually specify their desired residue numbering scheme to be propagated through to Ensembler-generated models.

Currently, the FASTA format is supported for manually-specified sequences, e.g.:

>sp|Q08345|610-905
LRFKEKLGEGQFGEVHLCEVDSPQDLVSLDFPLNVRKGHPLLVAVKILRPDATKNARNDF
LKEVKIMSRLKDPNIIRLLGVCVQDDPLCMITDYMENGDLNQFLSAHQLEDKAAEGAPGD
GQAAQGPTISYPMLLHVAAQIASGMRYLATLNFVHRDLATRNCLVGENFTIKIADFGMSR
NLYAGDYYRVQGRAVLPIRWMAWECILMGKFTTASDVWAFGVTLWEVLMLCRAQPFGQLT
DEQVIENAGEFFRDQGRQVYLSRPPACPQGLYELMLRCWSRESEQRPPFSQLHRFL

This unfortunately provides no means to specify residue numbering schemes.

Some alternative possibilities exist:

Specify an initial residue number along with the one-letter-code sequence. For example, in YAML:

targets:
    DDR1_HUMAN_D0_PROTONATED:
        initial_residue: 610
        sequence: LRFKEKLGEGQFGEVHLCEVDSPQDLVSLDFPLNVRKGHPLLVAVKILRPDATKNARNDFLKEVKIMSRLKDPNIIRLLGVCVQDDPLCMITDYMENGDLNQFLSAHQLEDKAAEGAPGDGQAAQGPTISYPMLLHVAAQIASGMRYLATLNFVHRDLATRNCLVGENFTIKIADFGMSRNLYAGDYYRVQGRAVLPIRWMAWECILMGKFTTASDVWAFGVTLWEVLMLCRAQPFGQLTDEQVIENAGEFFRDQGRQVYLSRPPACPQGLYELMLRCWSRESEQRPPFSQLHRFL

Specify a PDB SEQRES and DBREF section. This would allow the residue index span to be specified, but has a stricter syntax in which the UniProt gene name is expected:

DBREF  5BVN A  595   913  UNP    Q08345   DDR1_HUMAN     576    894              
SEQRES   1 A  324  GLY ALA MET GLY SER ALA VAL GLY ASP GLY PRO PRO ARG           
SEQRES   2 A  324  VAL ASP PHE PRO ARG SER ARG LEU ARG PHE LYS GLU LYS           
SEQRES   3 A  324  LEU GLY GLU GLY GLN PHE GLY GLU VAL HIS LEU CYS GLU           
SEQRES   4 A  324  VAL ASP SER PRO GLN ASP LEU VAL SER LEU ASP PHE PRO           
SEQRES   5 A  324  LEU ASN VAL ARG LYS GLY HIS PRO LEU LEU VAL ALA VAL           
SEQRES   6 A  324  LYS ILE LEU ARG PRO ASP ALA THR LYS ASN ALA ARG ASN           
SEQRES   7 A  324  ASP PHE LEU LYS GLU VAL LYS ILE MET SER ARG LEU LYS           
SEQRES   8 A  324  ASP PRO ASN ILE ILE ARG LEU LEU GLY VAL CYS VAL GLN           
SEQRES   9 A  324  ASP ASP PRO LEU CYS MET ILE THR ASP TYR MET GLU ASN           
SEQRES  10 A  324  GLY ASP LEU ASN GLN PHE LEU SER ALA HIS GLN LEU GLU           
SEQRES  11 A  324  ASP LYS ALA ALA GLU GLY ALA PRO GLY ASP GLY GLN ALA           
SEQRES  12 A  324  ALA GLN GLY PRO THR ILE SER TYR PRO MET LEU LEU HIS           
SEQRES  13 A  324  VAL ALA ALA GLN ILE ALA SER GLY MET ARG TYR LEU ALA           
SEQRES  14 A  324  THR LEU ASN PHE VAL HIS ARG ASP LEU ALA THR ARG ASN           
SEQRES  15 A  324  CYS LEU VAL GLY GLU ASN PHE THR ILE LYS ILE ALA ASP           
SEQRES  16 A  324  PHE GLY MET SER ARG ASN LEU TYR ALA GLY ASP TYR TYR           
SEQRES  17 A  324  ARG VAL GLN GLY ARG ALA VAL LEU PRO ILE ARG TRP MET           
SEQRES  18 A  324  ALA TRP GLU CYS ILE LEU MET GLY LYS PHE THR THR ALA           
SEQRES  19 A  324  SER ASP VAL TRP ALA PHE GLY VAL THR LEU TRP GLU VAL           
SEQRES  20 A  324  LEU MET LEU CYS ARG ALA GLN PRO PHE GLY GLN LEU THR           
SEQRES  21 A  324  ASP GLU GLN VAL ILE GLU ASN ALA GLY GLU PHE PHE ARG           
SEQRES  22 A  324  ASP GLN GLY ARG GLN VAL TYR LEU SER ARG PRO PRO ALA           
SEQRES  23 A  324  CYS PRO GLN GLY LEU TYR GLU LEU MET LEU ARG CYS TRP           
SEQRES  24 A  324  SER ARG GLU SER GLU GLN ARG PRO PRO PHE SER GLN LEU           
SEQRES  25 A  324  HIS ARG PHE LEU ALA GLU ASP ALA LEU ASN THR VAL               

Other ideas?

Add ability to make models that have same hydrogens as final trajectories.

This is to plot 'reference pdbs' onto the same coordinates as trajectory analysis.

So far I have just been using implicit refined models for this, which has worked okay. It would be useful if it is not refined though, since we are using the pdb as a reference structure.

Additionally, if the implicit refined pdb is never made because the simulation crashed or because this structure is not in the database yet, then using the implicit refined structure is not a choice at all. Sometimes this has been the case for a specific structure requested by a collaborator, and we are not able to give them the comparisons that are most useful to them.

Rosetta loopmodel gets stuck on some models

Rosetta loopmodel seems to get stuck on the template AURKA_HUMAN_D0_3UOK_A, on the first loop build attempt. Output from a command-line run is below - the program has been stuck following that rmsd message for almost an hour now.
I'll look into whether Rosetta has some kind of option for working around this.
Otherwise I'll probably see if there is a way to implement a timeout for the subprocess call to loopmodel. Looks like this is possible in the Python 3 version of subprocess, and there is a backport to Python 2.7 here: https://pypi.python.org/pypi/subprocess32

> loopmodel.macosgccrelease -database $MINIROSETTA_DATABASE -in::file::s AURKA_HUMAN_D0_3UOK_A-pdbfixed.pdb -loops:loop_file AURKA_HUMAN_D0_3UOK_A.loop -loops:remodel perturb_kic -loops:refine refine_kic -ex1 -ex2 -nstruct 1 -loops:max_kic_build_attempts 100 -in:file:fullatom

core.init: Rosetta version exported  from http://www.rosettacommons.org
core.init: command: loopmodel.macosgccrelease -database /Users/partond/installers/rosetta/rosetta_2014.35.57232_bundle/main/database/ -in::file::s AURKA_HUMAN_D0_3UOK_A-pdbfixed.pdb -loops:loop_file AURKA_HUMAN_D0_3UOK_A.loop -loops:remodel perturb_kic -loops:refine refine_kic -ex1 -ex2 -nstruct 1 -loops:max_kic_build_attempts 100 -in:file:fullatom
core.init: 'RNG device' seed mode, using '/dev/urandom', seed=548778927 seed_offset=0 real_seed=548778927
core.init.random: RandomGenerator:init: Normal mode, seed=548778927 RG_type=mt19937
protocols.loop_build.LoopBuild: ==== Loop protocol: =================================================
protocols.loop_build.LoopBuild:  remodel        perturb_kic
protocols.loop_build.LoopBuild:  intermedrelax  no
protocols.loop_build.LoopBuild:  refine         refine_kic
protocols.loop_build.LoopBuild:  relax          no
basic.io.database: Database file opened: scoring/score_functions/EnvPairPotential/env_log.txt
basic.io.database: Database file opened: scoring/score_functions/EnvPairPotential/cbeta_den.txt
basic.io.database: Database file opened: scoring/score_functions/EnvPairPotential/pair_log.txt
basic.io.database: Database file opened: scoring/score_functions/EnvPairPotential/cenpack_log.txt
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBPoly1D.csv
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBFadeIntervals.csv
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBEval.csv
basic.io.database: Database file opened: scoring/score_functions/rama/Rama_smooth_dyn.dat_ss_6.4
core.scoring.ScoreFunctionFactory: SCOREFUNCTION: talaris2013
core.scoring.etable: Starting energy table calculation
core.scoring.etable: smooth_etable: changing atr/rep split to bottom of energy well
core.scoring.etable: smooth_etable: spline smoothing lj etables (maxdis = 6)
core.scoring.etable: smooth_etable: spline smoothing solvation etables (max_dis = 6)
core.scoring.etable: Finished calculating energy tables.
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA_n
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA_pp
protocols.jd2.PDBJobInputter: Instantiate PDBJobInputter
protocols.jd2.PDBJobInputter: PDBJobInputter::fill_jobs
protocols.jd2.PDBJobInputter: pushed AURKA_HUMAN_D0_3UOK_A-pdbfixed.pdb nstruct index 1
protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...
protocols.jd2.PDBJobInputter: PDBJobInputter::pose_from_job
protocols.jd2.PDBJobInputter: filling pose from PDB AURKA_HUMAN_D0_3UOK_A-pdbfixed.pdb
core.chemical.ResidueTypeSet: Finished initializing fa_standard residue type set.  Created 737 residue types
core.pack.task: Packer task: initialize from command line()
core.pose.util: Cannot open psipred_ss2 file tt
protocols.loops.loops_main: can not open DSSP file tt
protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...
protocols.loop_build.LoopBuildMover: Annotated sequence of pose: F[PHE:NtermProteinFull]EIGRPLGKGKFGNVYLAREKQSKFILALKVLFKAQLEKAGVEHQLRREVEIQSHLRHPNILRLYGYFHDATRVYLILEYAPLGTVYRELQKLSKFDEQRTATYITELANALSYCHSKRVIHRDIKPENLLLGSAGELKIADFGWSVHAPSSRRTTLCGTLDYLPPEMIEGRMHDEKVDLWSLGVLCYEFLVGKPPFEANTYQETYKRISRVEFTFPDFVTEGARDLISRLLKHNPSQRPMLREVLEHPWI[ILE:CtermProteinFull]
protocols.looprelax: ==== Loop protocol: =================================================
protocols.looprelax:  remodel        perturb_kic
protocols.looprelax:  intermedrelax  no
protocols.looprelax:  refine         refine_kic
protocols.looprelax:  relax          no
protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...
core.chemical.ResidueTypeSet: Finished initializing centroid residue type set.  Created 1010 residue types
protocols.loops.Loop: Autoset cut_ for loop 154 156 as 155.
protocols.looprelax: ====================================================================================
protocols.looprelax: ===
protocols.looprelax: ===   Remodel
protocols.looprelax: ===
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: ALL_LOOPS:LOOP  begin  end  cut  skip_rate  extended
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: LOOP start: 154  stop: 156  cut: 155  size: 3  skip rate: 0  extended?: True
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: SELECTEDLOOPS:LOOP  begin  end  cut  skip_rate  extended
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: LOOP start: 154  stop: 156  cut: 155  size: 3  skip rate: 0  extended?: True
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loops_main: Pose fold tree FOLD_TREE  EDGE 1 153 -1  EDGE 153 155 -1  EDGE 153 157 1  EDGE 157 156 -1  EDGE 157 251 -1
protocols.loops.loops_main:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: Setting extended torsions: LOOP start: 154  stop: 156  cut: 155  size: 3  skip rate: 0  extended?: True
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: Building Loop: LOOP start: 154  stop: 156  cut: 155  size: 3  skip rate: 0  extended?: True
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC:
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: Building Loop attempt: 0
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: perturb_one_loop_with_KIC: 154 3
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: remodel init temp: 2
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: remodel final temp: 1
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: kinematic initial perturb with start_res: 154  middle res: 155  end_res: 156
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: loop rmsd before initial kinematic perturbation:0
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: Attempting loop building: 0 ...
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: initial kinematic perturbation complete
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: loop rmsd after initial kinematic perturbation:1.83156
protocols.moves.MonteCarlo: MonteCarlo:: last_accepted_score,lowest_score: -5.9464 -5.9464
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.84795
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.85105
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.82974
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.86528
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.85976
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.66416
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.72086
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.6695
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.70251
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.65091
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.6348
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.6511
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.63551
protocols.loops.loop_mover.perturb.LoopMover_Perturb_KIC: new centroid perturb rmsd: 1.65253

Packaging Ensembler models for FAH

Since all RUNs should share the same system.xml, what about only copying the system.xml once into the top-level directory above the RUNs? This should save a significant amount of storage space. (Might be good to check that the system matches as a sanity check.)

Some test failures on `osx`

I noticed some nosetest failures on osx:

======================================================================
ERROR: ensembler.tests.test_loopmodel.test_pdbfix_KC1D_HUMAN_D0_4KB8_D
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 32, in test_pdbfix_KC1D_HUMAN_D0_4KB8_D
    assert (0, 278) not in missing_residues
TypeError: argument of type 'NoneType' is not iterable
-------------------- >> begin captured logging << --------------------
info: ERROR: MPI rank 0 pdbfixer error for template KC1D_HUMAN_D0_4KB8_D - see logfile
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: ensembler.tests.test_loopmodel.test_pdbfix_ABL1_HUMAN_D0_2E2B_B
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 59, in test_pdbfix_ABL1_HUMAN_D0_2E2B_B
    assert (0, 271) not in missing_residues
TypeError: argument of type 'NoneType' is not iterable
-------------------- >> begin captured logging << --------------------
info: ERROR: MPI rank 0 pdbfixer error for template ABL1_HUMAN_D0_2E2B_B - see logfile
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: ensembler.tests.test_loopmodel.test_find_loopmodel_executable
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 110, in test_find_loopmodel_executable
    ensembler.core.find_loopmodel_executable()
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/core.py", line 542, in find_loopmodel_executable
    for filename in os.listdir(path):
OSError: [Errno 20] Not a directory: '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home//bin/java'

======================================================================
ERROR: ensembler.tests.test_loopmodel.test_loopmodel_KC1D_HUMAN_D0_4KB8_D
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 122, in test_loopmodel_KC1D_HUMAN_D0_4KB8_D
    loopmodel_template(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 232, in loopmodel_template
    write_loop_file(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 257, in write_loop_file
    loop_residues_data = [(key[1], len(residues)) for key, residues in missing_residues.iteritems()]
AttributeError: 'NoneType' object has no attribute 'iteritems'
-------------------- >> begin captured logging << --------------------
info: INFO: Done.
info: INFO: Done.
info: ERROR: MPI rank 0 pdbfixer error for template KC1D_HUMAN_D0_4KB8_D - see logfile
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: ensembler.tests.test_loopmodel.test_loopmodel_KC1D_HUMAN_D0_4HNF_A
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 136, in test_loopmodel_KC1D_HUMAN_D0_4HNF_A
    loopmodel_template(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 232, in loopmodel_template
    write_loop_file(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 257, in write_loop_file
    loop_residues_data = [(key[1], len(residues)) for key, residues in missing_residues.iteritems()]
AttributeError: 'NoneType' object has no attribute 'iteritems'
-------------------- >> begin captured logging << --------------------
info: INFO: Done.
info: INFO: Done.
info: ERROR: MPI rank 0 pdbfixer error for template KC1D_HUMAN_D0_4HNF_A - see logfile
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: No missing residues
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/tests/test_loopmodel.py", line 153, in test_loopmodel_KC1D_HUMAN_D0_3UZP_A
    loopmodel_template(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 232, in loopmodel_template
    write_loop_file(template, missing_residues)
  File "/Users/choderaj/anaconda/lib/python2.7/site-packages/ensembler-1.0.3-py2.7.egg/ensembler/modeling.py", line 257, in write_loop_file
    loop_residues_data = [(key[1], len(residues)) for key, residues in missing_residues.iteritems()]
AttributeError: 'NoneType' object has no attribute 'iteritems'
-------------------- >> begin captured logging << --------------------
info: INFO: Done.
info: INFO: Done.
info: ERROR: MPI rank 0 pdbfixer error for template KC1D_HUMAN_D0_3UZP_A - see logfile
--------------------- >> end captured logging << ---------------------

Having trouble with implicit refinement

Trying to run the implicit refinement in parallel on the cluster using the following script:

#!/bin/bash                                                                                                                               
#  Batch script for mpirun job on cbio cluster.                                                                                           
#                                                                                                                                         
#                                                                                                                                         
# walltime : maximum wall clock time (hh:mm:ss)                                                                                           
#PBS -l walltime=24:00:00                                                                                                                 
#                                                                                                                                         
# join stdout and stderr                                                                                                                  
#PBS -j oe                                                                                                                                
#                                                                                                                                         
# spool output immediately                                                                                                                
#PBS -k oe                                                                                                                                
#                                                                                                                                         
# specify queue                                                                                                                           
#PBS -q gpu                                                                                                                               
#                                                                                                                                         
# nodes: number of 8-core nodes                                                                                                           
#   ppn: how many cores per node to use (1 through 8)                                                                                     
#       (you are always charged for the entire node)                                                                                      
#PBS -l nodes=4:ppn=4:gpus=4:shared                                                                                                       
#                                                                                                                                         
# export all my environment variables to the job                                                                                          
##PBS -V                                                                                                                                  
#                                                                                                                                         
# job name (default = name of script file)                                                                                                
#PBS -N implicit-refinement                                                                                                                
#                                                                                                                                          
#specifcy email for notifications                                                                                                         
#PBS -M [email protected]                                                                                                     

cd /cbio/jclab/home/albaness/ensembler/BRAF

module load cuda/6.5

build_mpirun_configfile --mpitype conda ensembler refine_implicit

mpirun -configfile configfile

It's modified from @sonyahanson's in dansu-dansu. I seem to be having some trouble with only a small subset of the processes. The log is shown below.

Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
Auto-selected OpenMM platform: CUDA
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4KSQ_B in implicit solvent for 100.0 ps (MPI rank: 2, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4MNE_G in implicit solvent for 100.0 ps (MPI rank: 7, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4MNE_C in implicit solvent for 100.0 ps (MPI rank: 5, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4MBJ_A in implicit solvent for 100.0 ps (MPI rank: 3, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4KSQ_A in implicit solvent for 100.0 ps (MPI rank: 1, GPU ID: 0)
-------------------------------------------------------------------------
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 7 hostname gpu-2-15.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 853, in addHydrogens
    context = Context(system, VerletIntegrator(0.0))
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 15050, in __init__
    this = _openmm.new_Context(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 7 hostname gpu-2-15.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 5 hostname gpu-2-15.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 853, in addHydrogens
    context = Context(system, VerletIntegrator(0.0))
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 15050, in __init__
    this = _openmm.new_Context(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 5 hostname gpu-2-15.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 2 hostname gpu-2-12.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 853, in addHydrogens
    context = Context(system, VerletIntegrator(0.0))
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 15050, in __init__
    this = _openmm.new_Context(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 2 hostname gpu-2-12.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_5CT7_B in implicit solvent for 100.0 ps (MPI rank: 2, GPU ID: 0)
-------------------------------------------------------------------------
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 1 hostname gpu-2-12.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 853, in addHydrogens
    context = Context(system, VerletIntegrator(0.0))
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 15050, in __init__
    this = _openmm.new_Context(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 1 hostname gpu-2-12.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 3 hostname gpu-2-12.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 853, in addHydrogens
    context = Context(system, VerletIntegrator(0.0))
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 15050, in __init__
    this = _openmm.new_Context(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 3 hostname gpu-2-12.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py:300: UserWarning: = ERROR start: MPI rank 2 hostname gpu-2-12.local gpuid 0 =
Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.

Traceback (most recent call last):
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 288, in refine_implicit_md
    simulate_implicit_md()
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/ensembler/refinement.py", line 110, in simulate_implicit_md
    modeller.addHydrogens(forcefield, pH=ph, variants=reference_variants)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/app/modeller.py", line 857, in addHydrogens
    LocalEnergyMinimizer.minimize(context, 1.0, 50)
  File "/cbio/jclab/home/albaness/miniconda/lib/python2.7/site-packages/simtk/openmm/openmm.py", line 12223, in minimize
    return _openmm.LocalEnergyMinimizer_minimize(*args)
Exception: Error launching CUDA compiler: 256
<built-in>:0:0: fatal error: when writing output to : Bad file descriptor
compilation terminated.


= ERROR end: MPI rank 2 hostname gpu-2-12.local gpuid 0
  mpistate.rank, socket.gethostname(), gpuid, e, trbk
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3II5_A in implicit solvent for 100.0 ps (MPI rank: 12, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3D4Q_A in implicit solvent for 100.0 ps (MPI rank: 8, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_1UWH_A in implicit solvent for 100.0 ps (MPI rank: 0, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_2FB8_A in implicit solvent for 100.0 ps (MPI rank: 4, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3PPJ_A in implicit solvent for 100.0 ps (MPI rank: 0, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3PRF_A in implicit solvent for 100.0 ps (MPI rank: 4, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3PSB_A in implicit solvent for 100.0 ps (MPI rank: 8, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3Q4C_A in implicit solvent for 100.0 ps (MPI rank: 12, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3SKC_A in implicit solvent for 100.0 ps (MPI rank: 0, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_3TV6_A in implicit solvent for 100.0 ps (MPI rank: 4, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4E26_A in implicit solvent for 100.0 ps (MPI rank: 8, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4EHE_A in implicit solvent for 100.0 ps (MPI rank: 12, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4FC0_A in implicit solvent for 100.0 ps (MPI rank: 0, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4G9C_A in implicit solvent for 100.0 ps (MPI rank: 4, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4KSP_B in implicit solvent for 100.0 ps (MPI rank: 0, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4MBJ_B in implicit solvent for 100.0 ps (MPI rank: 4, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4H58_A in implicit solvent for 100.0 ps (MPI rank: 8, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4JVG_C in implicit solvent for 100.0 ps (MPI rank: 12, GPU ID: 0)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Simulating BRAF_HUMAN_D0 => BRAF_HUMAN_D0_4PP7_B in implicit solvent for 100.0 ps (MPI rank: 12, GPU ID: 0)
-------------------------------------------------------------------------
Done.
Compute mode is already set to DEFAULT for GPU 0000:84:00.0.
All done.
Compute mode is already set to DEFAULT for GPU 0000:83:00.0.
All done.
Compute mode is already set to DEFAULT for GPU 0000:04:00.0.
All done.
Compute mode is already set to DEFAULT for GPU 0000:03:00.0.
All done.

Is this a problem with my clusterutils setup? It looks like the errors are with cuda on only certain nodes.

ensembler installation

Hi guys,
I am trying to install ensembler. We installed anaconda as one of the modules on or system and then followed ensembler installation steps using conda config. Now, ensembler --help displays help menu of ensembler.
But when I tried running ensembler example as follows,

$ensembler quickmodel --target_uniprot_entry_name EGFR_HUMAN --uniprot_domain_regex '^Protein kinase' --template_pdbids 4KB8 --no-loopmodel

Following is the output I get.

###################output

Traceback (most recent call last):
File "/opt/az/local/anaconda/2.3.0/installdir/bin/ensembler", line 6, in
sys.exit(main())
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/cli.py", line 40, in main
command.dispatch(args)
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/cli_commands/quickmodel.py", line 106, in dispatch
QuickModel(targetid=args['--targetid'], templateids=templateids, target_uniprot_entry_name=args['--target_uniprot_entry_name'], uniprot_domain_regex=args['--uniprot_domain_regex'], pdbids=pdbids, chainids=chainids_dict, template_uniprot_query=args['--template_uniprot_query'], template_seqid_cutoff=template_seqid_cutoff, loopmodel=not args['--no-loopmodel'], package_for_fah=args['--package_for_fah'], nfahclones=nfahclones, structure_dirs=structure_paths)
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/tools/quick_model.py", line 58, in init
gather_targets_obj = ensembler.initproject.GatherTargetsFromUniProt(uniprot_query_string, uniprot_domain_regex=self.uniprot_domain_regex)
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/initproject.py", line 181, in init
super(GatherTargetsFromUniProt, self).init()
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/initproject.py", line 90, in init
self.manual_overrides = ensembler.core.ManualOverrides()
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/core.py", line 257, in init
self.target = TargetManualOverrides(manual_overrides_yaml)
File "/opt/az/local/anaconda/2.3.0/installdir/lib/python2.7/site-packages/ensembler/core.py", line 275, in init
target_dict = manual_overrides_yaml.get('target-selection')
AttributeError: 'NoneType' object has no attribute 'get'

Can anyone tell if this is installation issue or usage?

Best,
Mihir

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.