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

229 lines
16 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: fpmain.c File Reference</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>
</div>
<div class="contents">
<h1>fpmain.c File Reference</h1><code>#include &quot;<a class="el" href="fpmain_8h-source.html">../headers/fpmain.h</a>&quot;</code><br>
<p>
<a href="fpmain_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpmain_8c.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpmain_8c.html#cf95b6de655c7084b731cc8204d6f108">process_pdb</a> (char *pdbname, <a class="el" href="structs__fparams.html">s_fparams</a> *params)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="fpmain.c::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>argv</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
## FUNCTION: int main(int argc, char *argv[])<p>
## SPECIFICATION: Main program!
<p>Definition at line <a class="el" href="fpmain_8c-source.html#l00071">71</a> of file <a class="el" href="fpmain_8c-source.html">fpmain.c</a>.</p>
<p>References <a class="el" href="fparams_8h-source.html#l00141">s_fparams::db_run</a>, <a class="el" href="memhandler_8c-source.html#l00427">free_all()</a>, <a class="el" href="fparams_8c-source.html#l00562">free_fparams()</a>, <a class="el" href="fparams_8c-source.html#l00088">get_fpocket_args()</a>, <a class="el" href="fparams_8h-source.html#l00138">s_fparams::npdb</a>, <a class="el" href="fparams_8h-source.html#l00137">s_fparams::pdb_lst</a>, <a class="el" href="fparams_8h-source.html#l00136">s_fparams::pdb_path</a>, <a class="el" href="fparams_8c-source.html#l00590">print_pocket_usage()</a>, and <a class="el" href="fpmain_8c-source.html#l00130">process_pdb()</a>.</p>
<div class="fragment"><pre class="fragment"><a name="l00072"></a>00072 {
<a name="l00073"></a>00073
<a name="l00074"></a>00074
<a name="l00075"></a>00075 <a class="code" href="structs__fparams.html">s_fparams</a> *params = <a class="code" href="fparams_8c.html#c1806d3567baea11616fc5fdfca417d7">get_fpocket_args</a>(argc, argv) ;
<a name="l00076"></a>00076 <span class="keywordflow">if</span>(!params-&gt;<a class="code" href="structs__fparams.html#b8d794447932a12435a628f3462df7ad">db_run</a>) fprintf(stdout, <span class="stringliteral">"***** POCKET HUNTING BEGINS ***** \n"</span>) ;
<a name="l00077"></a>00077 <span class="comment">/* If parameters parsing is ok */</span>
<a name="l00078"></a>00078 <span class="keywordflow">if</span>(params) {
<a name="l00079"></a>00079 <span class="keywordflow">if</span>(params-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a> != NULL) {
<a name="l00080"></a>00080 <span class="comment">/* Handle a list of pdb */</span>
<a name="l00081"></a>00081 <span class="keywordtype">int</span> i ;
<a name="l00082"></a>00082 <span class="keywordflow">for</span> (i = 0 ; i &lt; params-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> ; i++) {
<a name="l00083"></a>00083
<a name="l00084"></a>00084 printf(<span class="stringliteral">"&gt; Protein %d / %d : %s"</span>, i, params-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a>,
<a name="l00085"></a>00085 params-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>[i]) ;
<a name="l00086"></a>00086 <span class="keywordflow">if</span>(i == params-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> - 1) fprintf(stdout, <span class="stringliteral">"\n"</span>) ;
<a name="l00087"></a>00087 <span class="keywordflow">else</span> fprintf(stdout, <span class="stringliteral">"\r"</span>) ;
<a name="l00088"></a>00088 fflush(stdout) ;
<a name="l00089"></a>00089 <a class="code" href="fpmain_8c.html#cf95b6de655c7084b731cc8204d6f108">process_pdb</a>(params-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>[i], params) ;
<a name="l00090"></a>00090 }
<a name="l00091"></a>00091 }
<a name="l00092"></a>00092 <span class="keywordflow">else</span> {
<a name="l00093"></a>00093 <span class="keywordflow">if</span>(params-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a> == NULL || strlen(params-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a>) &lt;= 0) {
<a name="l00094"></a>00094 fprintf(stdout, <span class="stringliteral">"! Invalid pdb name given.\n"</span>);
<a name="l00095"></a>00095 <a class="code" href="fparams_8c.html#ab8c5397c1eaa6388ae24aa9ae605481">print_pocket_usage</a>(stdout) ;
<a name="l00096"></a>00096 }
<a name="l00097"></a>00097 <span class="keywordflow">else</span> {
<a name="l00098"></a>00098
<a name="l00099"></a>00099 <a class="code" href="fpmain_8c.html#cf95b6de655c7084b731cc8204d6f108">process_pdb</a>(params-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a>, params) ;
<a name="l00100"></a>00100 }
<a name="l00101"></a>00101 }
<a name="l00102"></a>00102
<a name="l00103"></a>00103 <a class="code" href="fparams_8c.html#112335ac520ae98bdcf93e0c75c3c5db">free_fparams</a>(params) ;
<a name="l00104"></a>00104 }
<a name="l00105"></a>00105 <span class="keywordflow">else</span> {
<a name="l00106"></a>00106 <a class="code" href="fparams_8c.html#ab8c5397c1eaa6388ae24aa9ae605481">print_pocket_usage</a>(stdout) ;
<a name="l00107"></a>00107 }
<a name="l00108"></a>00108
<a name="l00109"></a>00109 <span class="keywordflow">if</span>(!params-&gt;<a class="code" href="structs__fparams.html#b8d794447932a12435a628f3462df7ad">db_run</a>)fprintf(stdout, <span class="stringliteral">"***** POCKET HUNTING ENDS ***** \n"</span>) ;
<a name="l00110"></a>00110 <a class="code" href="memhandler_8c.html#506df742641c3db2e00869a5c2f4dcd9">free_all</a>() ;
<a name="l00111"></a>00111
<a name="l00112"></a>00112 <span class="keywordflow">return</span> 0;
<a name="l00113"></a>00113 }
</pre></div>
<p>
</div>
</div><p>
<a class="anchor" name="cf95b6de655c7084b731cc8204d6f108"></a><!-- doxytag: member="fpmain.c::process_pdb" ref="cf95b6de655c7084b731cc8204d6f108" args="(char *pdbname, s_fparams *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void process_pdb </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>pdbname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structs__fparams.html">s_fparams</a> *&nbsp;</td>
<td class="paramname"> <em>params</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
## FUNCTION: process_pdb<p>
## SPECIFICATION: Handle a single pdb: check the pdb name, load data, and launch fpocket if the pdb file have been successfully read.<p>
## PARAMETRES: @ char *pdbname : Name of the pdb @ <a class="el" href="structs__fparams.html">s_fparams</a> *params : Parameters of the algorithm. See <a class="el" href="fparams_8c.html">fparams.c</a>/.h<p>
## RETURN: void
<p>Definition at line <a class="el" href="fpmain_8c-source.html#l00130">130</a> of file <a class="el" href="fpmain_8c-source.html">fpmain.c</a>.</p>
<p>References <a class="el" href="pocket_8c-source.html#l01214">c_lst_pocket_free()</a>, <a class="el" href="fparams_8h-source.html#l00141">s_fparams::db_run</a>, <a class="el" href="rpdb_8h-source.html#l00070">s_pdb::fpdb</a>, <a class="el" href="rpdb_8h-source.html#l00050">M_DONT_KEEP_LIG</a>, <a class="el" href="rpdb_8h-source.html#l00049">M_KEEP_LIG</a>, <a class="el" href="utils_8h-source.html#l00057">M_MAX_PDB_NAME_LEN</a>, <a class="el" href="rpdb_8c-source.html#l00478">rpdb_open()</a>, <a class="el" href="rpdb_8c-source.html#l00599">rpdb_read()</a>, <a class="el" href="fpocket_8c-source.html#l00082">search_pocket()</a>, <a class="el" href="fpout_8c-source.html#l00212">write_descriptors_DB()</a>, <a class="el" href="fpout_8c-source.html#l00079">write_out_fpocket()</a>, and <a class="el" href="fpout_8c-source.html#l00145">write_out_fpocket_DB()</a>.</p>
<p>Referenced by <a class="el" href="fpmain_8c-source.html#l00071">main()</a>.</p>
<div class="fragment"><pre class="fragment"><a name="l00131"></a>00131 {
<a name="l00132"></a>00132 <span class="comment">/* Check the PDB file */</span>
<a name="l00133"></a>00133 <span class="keywordflow">if</span>(pdbname == NULL) return ;
<a name="l00134"></a>00134
<a name="l00135"></a>00135 <span class="keywordtype">int</span> len = strlen(pdbname) ;
<a name="l00136"></a>00136 <span class="keywordflow">if</span>(len &gt;= <a class="code" href="utils_8h.html#ea69486910da420cbfe816d80ecc8b0c">M_MAX_PDB_NAME_LEN</a> || len &lt;= 0) {
<a name="l00137"></a>00137 fprintf(stderr, <span class="stringliteral">"! Invalid length for the pdb file name. (Max: %d, Min 1)\n"</span>,
<a name="l00138"></a>00138 <a class="code" href="utils_8h.html#ea69486910da420cbfe816d80ecc8b0c">M_MAX_PDB_NAME_LEN</a>) ;
<a name="l00139"></a>00139 return ;
<a name="l00140"></a>00140 }
<a name="l00141"></a>00141
<a name="l00142"></a>00142 <span class="comment">/* Try to open it */</span>
<a name="l00143"></a>00143 <a class="code" href="structs__pdb.html">s_pdb</a> *pdb = <a class="code" href="rpdb_8c.html#29ed3bff6fdc59fd8bf806a35c3127d7">rpdb_open</a>(pdbname, NULL, <a class="code" href="rpdb_8h.html#067223f2b95bbd02c1861d7d45f393b7">M_DONT_KEEP_LIG</a>) ;
<a name="l00144"></a>00144 <a class="code" href="structs__pdb.html">s_pdb</a> *pdb_w_lig = <a class="code" href="rpdb_8c.html#29ed3bff6fdc59fd8bf806a35c3127d7">rpdb_open</a>(pdbname, NULL, <a class="code" href="rpdb_8h.html#66a6a8deb20e74fd1fd4e597b46ead20">M_KEEP_LIG</a>) ;
<a name="l00145"></a>00145
<a name="l00146"></a>00146 <span class="keywordflow">if</span>(pdb) {
<a name="l00147"></a>00147 <span class="comment">/* Actual reading of pdb data and then calculation */</span>
<a name="l00148"></a>00148 <a class="code" href="rpdb_8c.html#1ec399102f369c72b06a9944616715b0">rpdb_read</a>(pdb, NULL, <a class="code" href="rpdb_8h.html#067223f2b95bbd02c1861d7d45f393b7">M_DONT_KEEP_LIG</a>) ;
<a name="l00149"></a>00149 <a class="code" href="rpdb_8c.html#1ec399102f369c72b06a9944616715b0">rpdb_read</a>(pdb_w_lig, NULL, <a class="code" href="rpdb_8h.html#66a6a8deb20e74fd1fd4e597b46ead20">M_KEEP_LIG</a>) ;
<a name="l00150"></a>00150 <a class="code" href="structc__lst__pockets.html">c_lst_pockets</a> *pockets = <a class="code" href="fpocket_8c.html#23faf120fcf6ef1442496cba08d4fbd1">search_pocket</a>(pdb, params,pdb_w_lig);
<a name="l00151"></a>00151 <span class="keywordflow">if</span>(pockets) {
<a name="l00152"></a>00152
<a name="l00153"></a>00153 <span class="keywordflow">if</span>(params-&gt;<a class="code" href="structs__fparams.html#b8d794447932a12435a628f3462df7ad">db_run</a>) {
<a name="l00154"></a>00154 <a class="code" href="fpout_8c.html#c09d905063785ad38a3024b4d52fc738">write_descriptors_DB</a>(pockets,stdout);
<a name="l00155"></a>00155 <a class="code" href="fpout_8c.html#71ba639c2b65b5a52ffcc3b9e211ec15">write_out_fpocket_DB</a>(pockets, pdb, pdbname);
<a name="l00156"></a>00156 }
<a name="l00157"></a>00157 <span class="keywordflow">else</span> <a class="code" href="fpout_8c.html#d3ae1c465f038fad47776a4e1649e995">write_out_fpocket</a>(pockets, pdb, pdbname);
<a name="l00158"></a>00158 <a class="code" href="pocket_8c.html#a9afcc69c1f7bdce1f22b0c48397b242">c_lst_pocket_free</a>(pockets) ;
<a name="l00159"></a>00159 }
<a name="l00160"></a>00160 fclose(pdb-&gt;<a class="code" href="structs__pdb.html#ee6f65655c18f873a00ab5ab376c84c7">fpdb</a>);
<a name="l00161"></a>00161 }
<a name="l00162"></a>00162 <span class="keywordflow">else</span> fprintf(stderr, <span class="stringliteral">"! PDB reading failed!\n"</span>);
<a name="l00163"></a>00163 }
</pre></div>
<p>
</div>
</div><p>
</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>