Skip to content

Instantly share code, notes, and snippets.

@asford
Created January 5, 2018 22:51
Show Gist options
  • Save asford/8ae8a49a1fa2fa3f5f3bfd9e5314fd89 to your computer and use it in GitHub Desktop.
Save asford/8ae8a49a1fa2fa3f5f3bfd9e5314fd89 to your computer and use it in GitHub Desktop.
Python interface example for structure search database.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Installation\n\nInstall on ubuntu 16.04 (aka the digs) via:\n\n`pip install 'https://storage.googleapis.com/protein-design-ipd-public/wheelhouse/pyrosetta-2017.48.post0.dev0%2B92.fordas.dev.17260dd14b0-cp35-cp35m-linux_x86_64.whl'`\n\nYou will also need:\n\n`numpy`, `h5py`, `pandas`"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "!cat /home/fordas/dev/environment.yml",
"execution_count": 50,
"outputs": [
{
"output_type": "stream",
"text": "name: dev\r\nchannels:\r\n - conda-forge\r\ndependencies:\r\n - python=3.5\r\n - requests\r\n - ipykernel\r\n - ipython\r\n - pandas\r\n - numpy\r\n - scipy\r\n - scikit-learn\r\n - scikit-optimize\r\n - fastcluster\r\n - biopython\r\n - seaborn\r\n - cmake>=3.9.3\r\n - h5py\r\n - dask >= 0.16\r\n - distributed\r\n - line_profiler\r\n - pip:\r\n - nose\r\n - ipdbplugin \r\n - cppimport\r\n - flake8\r\n - yapf\r\n - humanize\r\n - cufflinks\r\n - plotly\r\n - vega3\r\n - qgrid==1.0.0b10\r\n #- -e /home/fordas/distributed_dev/gcsfs\r\n #- -e /home/fordas/dev/pyrosetta\r\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "pyrosetta.rosetta_version",
"execution_count": 49,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 49,
"data": {
"text/plain": "'devel 2017.48.post.dev+92.fordas.dev.17260dd14b017260dd14b0ee938cbbb2afb0e32bdd02a1095af'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import pyrosetta\nimport pyrosetta.tests.core.indexed_structure_store",
"execution_count": 7,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import pyrosetta.distributed.io as io\nimport pyrosetta.distributed.packed_pose as packed_pose",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import pyrosetta.core.structure_search\nimport pyrosetta.core.h5_structure_store_provider",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "!ls /home/fordas/databases",
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": "vall.h5 vall.json\r\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "store_manager = pyrosetta.rosetta.core.indexed_structure_store.StructureStoreManager.get_instance()",
"execution_count": 12,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Load database from disk via h5_structure_store_provider "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "store = store_manager.load_structure_store(\"/home/fordas/databases/vall.h5\")",
"execution_count": 19,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Setup python-level access to search database infrastructure "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "search_manager = pyrosetta.core.structure_search.StructureSearchManager(store.residue_entries)",
"execution_count": 21,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Make a test structure, extract \"residue entries\" from search structure into numpy array. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "test_pack = io.pose_from_sequence(\"TEST\" * 10)\ntest_pose = packed_pose.to_pose(test_pack)\ntest_residue_entries = pyrosetta.rosetta.core.indexed_structure_store.extract_residue_entries(test_pose, True)",
"execution_count": 4,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Search db via alignment using first residues, the residue # in arbitrary"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "query_results = search_manager.single_query(test_residue_entries[\"orient\"][:15], 100)",
"execution_count": 54,
"outputs": [
{
"output_type": "stream",
"text": "/home/fordas/.conda/envs/dev/lib/python3.5/site-packages/pyrosetta/utility/array.py:150: FutureWarning: Numpy has detected that you may be viewing or writing to an array returned by selecting multiple fields in a structured array. \n\nThis code may break in numpy 1.13 because this will return a view instead of a copy -- see release notes for details.\n return numpy.ascontiguousarray(in_array).view(dtype=expected_dtype).reshape(expected_shape)\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import seaborn",
"execution_count": 55,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "seaborn.distplot(query_results[\"result_rmsd\"])",
"execution_count": 56,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 56,
"data": {
"text/plain": "<matplotlib.axes._subplots.AxesSubplot at 0x7f11d39b9198>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x7f11d39a98d0>",
"image/png": "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\n"
},
"metadata": {}
}
]
}
],
"metadata": {
"kernelspec": {
"name": "conda-env-dev-py",
"display_name": "Python [conda env:dev]",
"language": "python"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
},
"language_info": {
"name": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4",
"file_extension": ".py",
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"codemirror_mode": {
"name": "ipython",
"version": 3
}
},
"gist": {
"id": "",
"data": {
"description": "Python interface example for structure search database.",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment