Files
fpocket/doc/programmers_guide/html/descriptors_8h-source.html
2017-03-22 23:31:13 +01:00

188 lines
21 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>fpocket: descriptors.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<img src="fpocket_logo_small.png" width="545" height="150">
<!-- Generated by Doxygen 1.5.6 -->
<script type="text/javascript">
<!--
function changeDisplayState (e){
var num=this.id.replace(/[^[0-9]/g,'');
var button=this.firstChild;
var sectionDiv=document.getElementById('dynsection'+num);
if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
sectionDiv.style.display='block';
button.src='open.gif';
}else{
sectionDiv.style.display='none';
button.src='closed.gif';
}
}
function initDynSections(){
var divs=document.getElementsByTagName('div');
var sectionCounter=1;
for(var i=0;i<divs.length-1;i++){
if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
var header=divs[i];
var section=divs[i+1];
var button=header.firstChild;
if (button!='IMG'){
divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
button=document.createElement('img');
divs[i].insertBefore(button,divs[i].firstChild);
}
header.style.cursor='pointer';
header.onclick=changeDisplayState;
header.id='dynheader'+sectionCounter;
button.src='closed.gif';
section.id='dynsection'+sectionCounter;
section.style.display='none';
section.style.marginLeft='14px';
sectionCounter++;
}
}
}
window.onload = initDynSections;
-->
</script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>descriptors.h</h1><a href="descriptors_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> COPYRIGHT DISCLAIMER</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment"> Vincent Le Guilloux, Peter Schmidtke and Pierre Tuffery, hereby</span>
<a name="l00006"></a>00006 <span class="comment"> disclaim all copyright interest in the program “fpocket” (which</span>
<a name="l00007"></a>00007 <span class="comment"> performs protein cavity detection) written by Vincent Le Guilloux and Peter</span>
<a name="l00008"></a>00008 <span class="comment"> Schmidtke.</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment"> Vincent Le Guilloux 28 November 2008</span>
<a name="l00011"></a>00011 <span class="comment"> Peter Schmidtke 28 November 2008</span>
<a name="l00012"></a>00012 <span class="comment"> Pierre Tuffery 28 November 2008</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment"> GNU GPL</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment"> This file is part of the fpocket package.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment"> fpocket is free software: you can redistribute it and/or modify</span>
<a name="l00019"></a>00019 <span class="comment"> it under the terms of the GNU General Public License as published by</span>
<a name="l00020"></a>00020 <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span>
<a name="l00021"></a>00021 <span class="comment"> (at your option) any later version.</span>
<a name="l00022"></a>00022 <span class="comment"></span>
<a name="l00023"></a>00023 <span class="comment"> fpocket is distributed in the hope that it will be useful,</span>
<a name="l00024"></a>00024 <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00025"></a>00025 <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<a name="l00026"></a>00026 <span class="comment"> GNU General Public License for more details.</span>
<a name="l00027"></a>00027 <span class="comment"></span>
<a name="l00028"></a>00028 <span class="comment"> You should have received a copy of the GNU General Public License</span>
<a name="l00029"></a>00029 <span class="comment"> along with fpocket. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00030"></a>00030 <span class="comment"></span>
<a name="l00031"></a>00031 <span class="comment">**/</span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="preprocessor">#ifndef DH_DESCR</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define DH_DESCR</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036 <span class="comment">/* ---------------------------------INCLUDES--------------------------------- */</span>
<a name="l00037"></a>00037
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;math.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00044"></a>00044
<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="voronoi_8h.html">voronoi.h</a>"</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="voronoi__lst_8h.html">voronoi_lst.h</a>"</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="atom_8h.html">atom.h</a>"</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="aa_8h.html">aa.h</a>"</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span>
<a name="l00050"></a>00050
<a name="l00051"></a>00051
<a name="l00052"></a>00052 <span class="comment">/* --------------------------------STRUCTURES---------------------------------*/</span><span class="comment"></span>
<a name="l00053"></a>00053 <span class="comment">/**</span>
<a name="l00054"></a>00054 <span class="comment"> Structure containing descriptors for binding pockets</span>
<a name="l00055"></a>00055 <span class="comment">*/</span>
<a name="l00056"></a><a class="code" href="structs__desc.html">00056</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structs__desc.html">s_desc</a>
<a name="l00057"></a>00057 {
<a name="l00058"></a><a class="code" href="structs__desc.html#0bf245c3d85f2fc8dec41d560313588a">00058</a> <span class="keywordtype">float</span> <a class="code" href="structs__desc.html#ec451be95312187f418e20b87ebc0c1c">hydrophobicity_score</a>, <span class="comment">/**&lt; Hydropathie score - for each aa */</span>
<a name="l00059"></a>00059 <a class="code" href="structs__desc.html#0bf245c3d85f2fc8dec41d560313588a">volume_score</a>, <span class="comment">/**&lt; Volume score - for each aa */</span>
<a name="l00060"></a>00060 <a class="code" href="structs__desc.html#ec106f2a35f5676a6af920311aa4260e">volume</a>, <span class="comment">/**&lt; Pocket volume */</span>
<a name="l00061"></a>00061 <a class="code" href="structs__desc.html#6363a7adfb5bc485f3524b8d4f0b5326">prop_polar_atm</a>, <span class="comment">/**&lt; Proportion of polar atoms */</span>
<a name="l00062"></a>00062 <a class="code" href="structs__desc.html#6e455ee4a61943b81a09fb9c4a816967">mean_asph_ray</a>, <span class="comment">/**&lt; Mean alpha sphere radius */</span>
<a name="l00063"></a>00063 <a class="code" href="structs__desc.html#8d8c1b492a8f07602c496ffe907a7135">masph_sacc</a>, <span class="comment">/**&lt; Mean alpha sphere solvent accessibility */</span>
<a name="l00064"></a>00064 <a class="code" href="structs__desc.html#1e842880419a0616060301b4eacf858f">apolar_asphere_prop</a>, <span class="comment">/**&lt; Proportion of apolar alpha spheres */</span>
<a name="l00065"></a>00065 <a class="code" href="structs__desc.html#b48b3533d79c147285ca50eabc12ef63">mean_loc_hyd_dens</a>, <span class="comment">/**&lt; Mean local hydrophobic density (from alpha spheres) */</span>
<a name="l00066"></a>00066 <a class="code" href="structs__desc.html#2aeb19cfc5f53e2d22f1a2065ede1010">as_density</a>, <span class="comment">/**&lt; Pocket density, defined as mean distance between alpha spheres*/</span>
<a name="l00067"></a>00067 <a class="code" href="structs__desc.html#6620d6b2cdaaa469b32a66a5e5260a80">as_max_dst</a>, <span class="comment">/**&lt; Maximum distance between two alpha spheres */</span><span class="comment"></span>
<a name="l00068"></a>00068 <span class="comment"> /**&lt; The following descriptors are all normalized using observed</span>
<a name="l00069"></a>00069 <span class="comment"> values among all pocket found by the algorithm. These</span>
<a name="l00070"></a>00070 <span class="comment"> are not set in descriptor.c, but in pocket.c as we have to check</span>
<a name="l00071"></a>00071 <span class="comment"> all pocket first to store boundaries of the descriptor to</span>
<a name="l00072"></a>00072 <span class="comment"> normalize. */</span>
<a name="l00073"></a>00073
<a name="l00074"></a>00074 <a class="code" href="structs__desc.html#537c647e77f9ca129c77b31e3d15b2ca">flex</a>, <span class="comment">/**&lt; Normalized flexibility - based on B factors - ABUSIVE */</span>
<a name="l00075"></a>00075 <a class="code" href="structs__desc.html#8c4599be9319ff05ecf42dd6c70d0d6d">nas_norm</a>, <span class="comment">/**&lt; Normalized number of alpha sphere */</span>
<a name="l00076"></a>00076 <a class="code" href="structs__desc.html#15f213905d46949ade4dc9ec9e413d4f">polarity_score_norm</a>, <span class="comment">/**&lt; Normalized polarity score*/</span>
<a name="l00077"></a>00077 <a class="code" href="structs__desc.html#3a111a68d68713a0c9b2d5e904951820">mean_loc_hyd_dens_norm</a>,<span class="comment">/**&lt; Normalized mean local hydrophobic density */</span>
<a name="l00078"></a>00078 <a class="code" href="structs__desc.html#a18101e18ed5d1714470a026621037f3">prop_asapol_norm</a>, <span class="comment">/**&lt; Normalized proportion of apolar alphasphere */</span>
<a name="l00079"></a>00079 <a class="code" href="structs__desc.html#a97dfcc5ad6152e55ef0ebe9985cce5c">as_density_norm</a>, <span class="comment">/**&lt; Normalized alpha sphere density */</span>
<a name="l00080"></a>00080 <a class="code" href="structs__desc.html#9a9c0a666cb104843a278525e556087a">as_max_dst_norm</a>, <span class="comment">/**&lt; normalized maximum distance between alpha sphere centers*/</span>
<a name="l00081"></a>00081 <span class="comment"></span>
<a name="l00082"></a>00082 <span class="comment"> /**&lt; The following descriptors are various surface calculations*/</span>
<a name="l00083"></a>00083 <a class="code" href="structs__desc.html#a179ebac9b5489ad1bf1ad267d1d0427">surf_vdw</a>, <span class="comment">/**&lt; Van der Waals surface of the pocket*/</span>
<a name="l00084"></a>00084 <a class="code" href="structs__desc.html#46c2b1ee640b31802839e88bb91f3aac">surf_vdw14</a>, <span class="comment">/**&lt; Van der Waals surface + 1.4 A probe*/</span>
<a name="l00085"></a>00085 <a class="code" href="structs__desc.html#8d64efb827570330fb20cac0a48507f3">surf_vdw22</a>, <span class="comment">/**&lt; Van der Waals surface + 2.2 A probe*/</span>
<a name="l00086"></a>00086 <a class="code" href="structs__desc.html#b7799be0c2ecba2a04248d70df6b8795">surf_pol_vdw</a>, <span class="comment">/**&lt; polar van der Waals surface of the pocket*/</span>
<a name="l00087"></a>00087 <a class="code" href="structs__desc.html#b427b3ce5e431f0ca3e3df5c659f2de0">surf_pol_vdw14</a>, <span class="comment">/**&lt; polar van der Waals surface + 1.4 A probe*/</span>
<a name="l00088"></a>00088 <a class="code" href="structs__desc.html#090bbaf1b3d709e7575ab400ce1848a1">surf_pol_vdw22</a>, <span class="comment">/**&lt; polar an der Waals surface + 2.2 A probe*/</span>
<a name="l00089"></a>00089 <a class="code" href="structs__desc.html#0bfdf7a2147f074d6977a4ee31f95046">surf_apol_vdw</a>, <span class="comment">/**&lt; polar van der Waals surface of the pocket*/</span>
<a name="l00090"></a>00090 <a class="code" href="structs__desc.html#7ce0d0f8a0e977c3f5ecbd1a64ec02c7">surf_apol_vdw14</a>, <span class="comment">/**&lt; polar van der Waals surface + 1.4 A probe*/</span>
<a name="l00091"></a>00091 <a class="code" href="structs__desc.html#30adaa999c80fb0f9c3e357730ab5c3c">surf_apol_vdw22</a> <span class="comment">/**&lt; polar van der Waals surface + 2.2 A probe*/</span>
<a name="l00092"></a>00092 ;
<a name="l00093"></a>00093
<a name="l00094"></a><a class="code" href="structs__desc.html#12f239c0748ce08dba80fac61722117f">00094</a> <span class="keywordtype">int</span> <a class="code" href="structs__desc.html#12f239c0748ce08dba80fac61722117f">aa_compo</a>[20] ; <span class="comment">/**&lt; Absolute amino acid composition */</span>
<a name="l00095"></a><a class="code" href="structs__desc.html#d612b029bba06646381771d4b61dc5e6">00095</a> <span class="keywordtype">int</span> <a class="code" href="structs__desc.html#d481d25ff964a6858975b5abfb671412">nb_asph</a>, <span class="comment">/**&lt; Number of alpha spheres */</span>
<a name="l00096"></a>00096 <a class="code" href="structs__desc.html#d612b029bba06646381771d4b61dc5e6">polarity_score</a>, <span class="comment">/**&lt; Polarity score (based on amino acids properties ; see aa.c &amp; aa.h) */</span>
<a name="l00097"></a>00097 <a class="code" href="structs__desc.html#00da80b684d1bb1af13ec779e282c7e0">charge_score</a> ; <span class="comment">/**&lt; Sum of all net charges at pH = 7 (see aa.c &amp; aa.h) */</span>
<a name="l00098"></a><a class="code" href="structs__desc.html#eb15aebab64687c1c18d261e40b96901">00098</a> <span class="keywordtype">float</span> <a class="code" href="structs__desc.html#eb15aebab64687c1c18d261e40b96901">as_max_r</a> ; <span class="comment">/**&lt; Alpha sphere maximum radius*/</span>
<a name="l00099"></a><a class="code" href="structs__desc.html#27317d1ebeb59e4ea4ebdbca11069c3c">00099</a> <span class="keywordtype">float</span> <a class="code" href="structs__desc.html#27317d1ebeb59e4ea4ebdbca11069c3c">drug_score</a>; <span class="comment">/**&lt; Drug score of the binding site*/</span>
<a name="l00100"></a><a class="code" href="structs__desc.html#bcbc3f48a90c23ac7678804a411abd90">00100</a> <span class="keywordtype">int</span> <a class="code" href="structs__desc.html#bced97f35d6447d67d3dda6b09039a86">interChain</a>, <span class="comment">/**&lt; 0 if pocket in single chain, 1 if between 2 chains*/</span>
<a name="l00101"></a>00101 <a class="code" href="structs__desc.html#8e7dd8b06d5e732c055f5c2a46279f00">characterChain1</a>, <span class="comment">/**&lt; 0 if protein, 1 if nucl acid pocket, 2 if HETATM pocket*/</span>
<a name="l00102"></a>00102 <a class="code" href="structs__desc.html#c18283db8c6ebb14a806f3fd73b41b5e">characterChain2</a>, <span class="comment">/**&lt; 0 if protein, 1 if nucl acid pocket, 2 if HETATM pocket*/</span>
<a name="l00103"></a>00103 <a class="code" href="structs__desc.html#1d09eefd576e05f70a489363575f32aa">numResChain1</a>, <span class="comment">/**&lt;number of resdiues on chain 1*/</span>
<a name="l00104"></a>00104 <a class="code" href="structs__desc.html#bcbc3f48a90c23ac7678804a411abd90">numResChain2</a>; <span class="comment">/**&lt;number of res on chain 2*/</span>
<a name="l00105"></a><a class="code" href="structs__desc.html#686ea7cc191da8c6ab8e8d7178a9a5ea">00105</a> <span class="keywordtype">char</span> <a class="code" href="structs__desc.html#ba87f099c4cb32f55ae66977b9cdb8e4">nameChain1</a>[2], <span class="comment">/**&lt;name of the first chain in contact with the pocket*/</span>
<a name="l00106"></a>00106 <a class="code" href="structs__desc.html#686ea7cc191da8c6ab8e8d7178a9a5ea">nameChain2</a>[2]; <span class="comment">/**&lt;name of the second chain in contact with the pocket, if there is*/</span>
<a name="l00107"></a><a class="code" href="structs__desc.html#20bd4d9024f38edb2a79b721ff4558c8">00107</a> <span class="keywordtype">char</span> <a class="code" href="structs__desc.html#20bd4d9024f38edb2a79b721ff4558c8">ligTag</a>[8]; <span class="comment">/**&lt;het atom tag of ligands situated in the pocket*/</span>
<a name="l00108"></a><a class="code" href="structs__desc.html#15d78f3262dcfa80bfba6c1872c51f6e">00108</a> <span class="keywordtype">int</span> <a class="code" href="structs__desc.html#15d78f3262dcfa80bfba6c1872c51f6e">n_abpa</a>; <span class="comment">/**&lt;number of abpas in the binding site*/</span>
<a name="l00109"></a>00109 } <a class="code" href="structs__desc.html">s_desc</a> ;
<a name="l00110"></a>00110
<a name="l00111"></a>00111 <span class="comment">/* ------------------------------PROTOTYPES---------------------------------- */</span>
<a name="l00112"></a>00112
<a name="l00113"></a>00113 <a class="code" href="structs__desc.html">s_desc</a>* <a class="code" href="descriptors_8c.html#0313250c68f4a7a8e292b674c30ae9fa">allocate_s_desc</a>(<span class="keywordtype">void</span>) ;
<a name="l00114"></a>00114 <span class="keywordtype">void</span> <a class="code" href="descriptors_8c.html#9380470e1ad56a99f5a0597355eeb5ea">reset_desc</a>(<a class="code" href="structs__desc.html">s_desc</a> *desc) ;
<a name="l00115"></a>00115
<a name="l00116"></a>00116
<a name="l00117"></a>00117 <span class="keywordtype">void</span> <a class="code" href="descriptors_8c.html#9cfae44d2e72d4c92d38a4b73538d8c4">set_descriptors</a>(<a class="code" href="structs__atm.html">s_atm</a> **tatoms, <span class="keywordtype">int</span> natoms, <a class="code" href="structs__vvertice.html">s_vvertice</a> **tvert, <span class="keywordtype">int</span> nvert, <a class="code" href="structs__desc.html">s_desc</a> *desc, <span class="keywordtype">int</span> niter,<a class="code" href="structs__pdb.html">s_pdb</a> *pdb,<span class="keywordtype">int</span> flag_do_expensive_calculations) ;
<a name="l00118"></a>00118
<a name="l00119"></a>00119 <span class="keywordtype">int</span> <a class="code" href="descriptors_8c.html#9759d226e51f3e4829391181ead808b9">get_vert_apolar_density</a>(<a class="code" href="structs__vvertice.html">s_vvertice</a> **tvert, <span class="keywordtype">int</span> nvert, <a class="code" href="structs__vvertice.html">s_vvertice</a> *vert) ;
<a name="l00120"></a>00120 <span class="keywordtype">void</span> <a class="code" href="descriptors_8c.html#18991bc3f2c0fb6d81667f412d516e70">set_atom_based_descriptors</a>(<a class="code" href="structs__atm.html">s_atm</a> **atoms, <span class="keywordtype">int</span> natoms, <a class="code" href="structs__desc.html">s_desc</a> *desc,<a class="code" href="structs__atm.html">s_atm</a> *all_atoms, <span class="keywordtype">int</span> all_natoms);
<a name="l00121"></a>00121 <span class="keywordtype">void</span> <a class="code" href="descriptors_8c.html#4fae028d2c83da127914b336e71f8340">set_aa_desc</a>(<a class="code" href="structs__desc.html">s_desc</a> *desc, <span class="keyword">const</span> <span class="keywordtype">char</span> *aa_name) ;
<a name="l00122"></a>00122 <span class="keywordtype">int</span> <a class="code" href="descriptors_8c.html#62ddb86953349fc86736a5a149133e27">countResidues</a>(<a class="code" href="structs__atm.html">s_atm</a> *atoms, <span class="keywordtype">int</span> natoms, <span class="keywordtype">char</span> chain[2]);
<a name="l00123"></a>00123
<a name="l00124"></a>00124 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Jun 7 16:44:23 2010 for fpocket by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>