Files
fpocket/doc/deprecated/programmers_guide/html/fparams_8c-source.html
2020-06-06 16:04:20 +02:00

694 lines
66 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: fparams.c 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>fparams.c</h1><a href="fparams_8c.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="preprocessor">#include "../headers/fparams.h"</span>
<a name="l00003"></a>00003
<a name="l00004"></a>00004 <span class="comment">/*</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">## GENERAL INFORMATION</span>
<a name="l00007"></a>00007 <span class="comment">##</span>
<a name="l00008"></a>00008 <span class="comment">## FILE fparams.c</span>
<a name="l00009"></a>00009 <span class="comment">## AUTHORS P. Schmidtke and V. Le Guilloux</span>
<a name="l00010"></a>00010 <span class="comment">## LAST MODIFIED 28-11-08</span>
<a name="l00011"></a>00011 <span class="comment">##</span>
<a name="l00012"></a>00012 <span class="comment">## SPECIFICATIONS</span>
<a name="l00013"></a>00013 <span class="comment">##</span>
<a name="l00014"></a>00014 <span class="comment">## Handle parameters (parse the command line and sore values)</span>
<a name="l00015"></a>00015 <span class="comment">## for the fpocket programm.</span>
<a name="l00016"></a>00016 <span class="comment">##</span>
<a name="l00017"></a>00017 <span class="comment">## MODIFICATIONS HISTORY</span>
<a name="l00018"></a>00018 <span class="comment">##</span>
<a name="l00019"></a>00019 <span class="comment">-## 17-03-09 (v) Segfault avoided when freeing pdb list</span>
<a name="l00020"></a>00020 <span class="comment">## 15-12-08 (v) Added function to check if a single letter is a fpocket</span>
<a name="l00021"></a>00021 <span class="comment">## command line option (usefull for t/dpocket) + minor modifs</span>
<a name="l00022"></a>00022 <span class="comment">## 28-11-08 (v) List of pdb taken into account as a single file input.</span>
<a name="l00023"></a>00023 <span class="comment">## Comments UTD</span>
<a name="l00024"></a>00024 <span class="comment">## 27-11-08 (v) PDB file check moved in fpmain + minor modif + relooking</span>
<a name="l00025"></a>00025 <span class="comment">## 01-04-08 (v) Added comments and creation of history</span>
<a name="l00026"></a>00026 <span class="comment">## 01-01-08 (vp) Created (random date...)</span>
<a name="l00027"></a>00027 <span class="comment">## </span>
<a name="l00028"></a>00028 <span class="comment">## TODO or SUGGESTIONS</span>
<a name="l00029"></a>00029 <span class="comment">##</span>
<a name="l00030"></a>00030 <span class="comment">## (v) Check and update if necessary comments of each function!!</span>
<a name="l00031"></a>00031 <span class="comment">## (v) Review the main function and handle all possible crashes.</span>
<a name="l00032"></a>00032 <span class="comment">##</span>
<a name="l00033"></a>00033 <span class="comment">*/</span>
<a name="l00034"></a>00034 <span class="comment"></span>
<a name="l00035"></a>00035 <span class="comment">/**</span>
<a name="l00036"></a>00036 <span class="comment"> ## FUNCTION:</span>
<a name="l00037"></a>00037 <span class="comment"> init_def_fparams</span>
<a name="l00038"></a>00038 <span class="comment"> </span>
<a name="l00039"></a>00039 <span class="comment"> ## SPECIFICATION:</span>
<a name="l00040"></a>00040 <span class="comment"> Initialisation of default parameters</span>
<a name="l00041"></a>00041 <span class="comment"> </span>
<a name="l00042"></a>00042 <span class="comment"> ## PARAMETRES: void</span>
<a name="l00043"></a>00043 <span class="comment"> </span>
<a name="l00044"></a>00044 <span class="comment"> ## RETURN: </span>
<a name="l00045"></a>00045 <span class="comment"> s_fparams*: Pointer to allocated paramers.</span>
<a name="l00046"></a>00046 <span class="comment"> </span>
<a name="l00047"></a>00047 <span class="comment">*/</span>
<a name="l00048"></a><a class="code" href="fparams_8h.html#7f23db4971a109deb1ab5e841ace1607">00048</a> <a class="code" href="structs__fparams.html">s_fparams</a>* <a class="code" href="fparams_8c.html#7f23db4971a109deb1ab5e841ace1607">init_def_fparams</a>(<span class="keywordtype">void</span>)
<a name="l00049"></a>00049 {
<a name="l00050"></a>00050 <a class="code" href="structs__fparams.html">s_fparams</a> *par = (<a class="code" href="structs__fparams.html">s_fparams</a> *) <a class="code" href="memhandler_8c.html#52d7260a38c396cb2dd1dd7abcfd61cb">my_malloc</a>(<span class="keyword">sizeof</span>(<a class="code" href="structs__fparams.html">s_fparams</a>)) ;
<a name="l00051"></a>00051
<a name="l00052"></a>00052 par-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> = <a class="code" href="fparams_8h.html#243ad6dc96e3f975fb8a224426810bb6">M__MIN_APOL_NEIGH_DEFAULT</a> ;
<a name="l00053"></a>00053 par-&gt;<a class="code" href="structs__fparams.html#545b7bea97958089689608fff6b8910d">asph_min_size</a> = <a class="code" href="fparams_8h.html#f83d8c1f0a4a16b144b63e88d6b211bf">M_MIN_ASHAPE_SIZE_DEFAULT</a> ;
<a name="l00054"></a>00054 par-&gt;<a class="code" href="structs__fparams.html#7439af209766e39dad7e39f4c6e19711">asph_max_size</a> = <a class="code" href="fparams_8h.html#50c6e2d2eb22a7c7b529c67fc04b56c9">M_MAX_ASHAPE_SIZE_DEFAULT</a> ;
<a name="l00055"></a>00055 par-&gt;<a class="code" href="structs__fparams.html#71691bbfb98d90e12ca8cb3c79e2688c">sl_clust_max_dist</a> = <a class="code" href="fparams_8h.html#e5f7357fe7ddb5b03bc18b45159f64c4">M_SLCLUST_MAX_DIST</a> ;
<a name="l00056"></a>00056 par-&gt;<a class="code" href="structs__fparams.html#b23279857aaf7861b452cd2bf463f624">sl_clust_min_nneigh</a> = <a class="code" href="fparams_8h.html#721fc2c4a9b89fa4a0c0de0f31967d9a">M_SLCLUST_MIN_NUM_NEIGH</a> ;
<a name="l00057"></a>00057 par-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a>[0] = 0 ;
<a name="l00058"></a>00058 par-&gt;<a class="code" href="structs__fparams.html#289a1193bf0ffa2f737cd9dc914b63e0">basic_volume_div</a> = <a class="code" href="fparams_8h.html#4caa4e2b63f97eae1c52a1e7cf51dc5b">M_BASIC_VOL_DIVISION</a> ;
<a name="l00059"></a>00059 par-&gt;<a class="code" href="structs__fparams.html#8caeadbae2db7d24763497290e6b9220">nb_mcv_iter</a> = <a class="code" href="fparams_8h.html#17764121ba6792298aba0da59482cc60">M_MC_ITER</a> ;
<a name="l00060"></a>00060 par-&gt;<a class="code" href="structs__fparams.html#2ccafe788e970f4e00bdae591d834865">min_pock_nb_asph</a> = <a class="code" href="fparams_8h.html#d6f4bc5db7427ee0e333f483e1632022">M_MIN_POCK_NB_ASPH</a> ;
<a name="l00061"></a>00061 par-&gt;<a class="code" href="structs__fparams.html#8ba147c559344c3f0406c1e7a86b98d1">refine_clust_dist</a> = <a class="code" href="fparams_8h.html#37a7ca05610fcb4aff8759267e83e4af">M_REFINE_DIST</a> ;
<a name="l00062"></a>00062 par-&gt;<a class="code" href="structs__fparams.html#50d6211ea1f5d9b90c10f866c82e54b8">refine_min_apolar_asphere_prop</a> = <a class="code" href="fparams_8h.html#cadff4aad15c6ece2eb248488b4221eb">M_REFINE_MIN_PROP_APOL_AS</a> ;
<a name="l00063"></a>00063 par-&gt;<a class="code" href="structs__fparams.html#cd506e600d2b5077f7925847be38c854">clust_max_dist</a> = <a class="code" href="fparams_8h.html#0f6138f1929550d8ff600529496b83b4">M_CLUST_MAX_DIST</a> ;
<a name="l00064"></a>00064 par-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> = 0 ;
<a name="l00065"></a>00065 par-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a> = NULL ;
<a name="l00066"></a>00066 par-&gt;<a class="code" href="structs__fparams.html#771a10e1c94346d353eb6cb87b4abb18">flag_do_asa_and_volume_calculations</a>=1;
<a name="l00067"></a>00067 par-&gt;<a class="code" href="structs__fparams.html#b8d794447932a12435a628f3462df7ad">db_run</a>=<a class="code" href="fparams_8h.html#43a40d4fa640254998f4e0cf2a3fd7a6">M_DB_RUN</a>;
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="keywordflow">return</span> par ;
<a name="l00070"></a>00070 }
<a name="l00071"></a>00071 <span class="comment"></span>
<a name="l00072"></a>00072 <span class="comment">/**</span>
<a name="l00073"></a>00073 <span class="comment"> ## FUNCTION: </span>
<a name="l00074"></a>00074 <span class="comment"> get_fpocket_args</span>
<a name="l00075"></a>00075 <span class="comment"> </span>
<a name="l00076"></a>00076 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00077"></a>00077 <span class="comment"> This function analyse the user's command line and parse it to store parameters</span>
<a name="l00078"></a>00078 <span class="comment"> for the pocket finder programm.</span>
<a name="l00079"></a>00079 <span class="comment"> </span>
<a name="l00080"></a>00080 <span class="comment"> ## PARAMETRES:</span>
<a name="l00081"></a>00081 <span class="comment"> @ int nargs : Number of arguments</span>
<a name="l00082"></a>00082 <span class="comment"> @ char **args : Arguments of main program</span>
<a name="l00083"></a>00083 <span class="comment"> </span>
<a name="l00084"></a>00084 <span class="comment"> ## RETURN: </span>
<a name="l00085"></a>00085 <span class="comment"> s_params*: Pointer to parameters</span>
<a name="l00086"></a>00086 <span class="comment"> </span>
<a name="l00087"></a>00087 <span class="comment">*/</span>
<a name="l00088"></a><a class="code" href="fparams_8h.html#c1806d3567baea11616fc5fdfca417d7">00088</a> <a class="code" href="structs__fparams.html">s_fparams</a>* <a class="code" href="fparams_8c.html#c1806d3567baea11616fc5fdfca417d7">get_fpocket_args</a>(<span class="keywordtype">int</span> nargs, <span class="keywordtype">char</span> **args)
<a name="l00089"></a>00089 {
<a name="l00090"></a>00090 <span class="keywordtype">int</span> i,
<a name="l00091"></a>00091 npdb = 0,
<a name="l00092"></a>00092 status = 0 ;
<a name="l00093"></a>00093
<a name="l00094"></a>00094 <a class="code" href="structs__fparams.html">s_fparams</a> *par = <a class="code" href="fparams_8c.html#7f23db4971a109deb1ab5e841ace1607">init_def_fparams</a>() ;
<a name="l00095"></a>00095 <span class="keywordtype">char</span> *pdb_lst = NULL ;
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="comment">//read arguments by flags</span>
<a name="l00098"></a>00098 <span class="keywordflow">for</span> (i = 1; i &lt; nargs; i++) {
<a name="l00099"></a>00099 <span class="keywordflow">if</span> (strlen(args[i]) == 2 &amp;&amp; args[i][0] == <span class="charliteral">'-'</span> &amp;&amp; i &lt;= (nargs-1)) {
<a name="l00100"></a>00100
<a name="l00101"></a>00101 <span class="keywordflow">switch</span> (args[i][1]) {
<a name="l00102"></a>00102 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#9fe722d12f7ed6c181c1022aace70e21">M_PAR_MAX_ASHAPE_SIZE</a> :
<a name="l00103"></a>00103 status += <a class="code" href="fparams_8c.html#8ba1cfff825efc1d30099d85f1f85b01">parse_asph_max_size</a>(args[++i], par) ; break ;
<a name="l00104"></a>00104 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#c2dcc50d93bac7e0fe16850062556626">M_PAR_MIN_ASHAPE_SIZE</a> :
<a name="l00105"></a>00105 status += <a class="code" href="fparams_8c.html#0356665c59c8eda7fb483f47dbbe8d3b">parse_asph_min_size</a>(args[++i], par) ; break ;
<a name="l00106"></a>00106 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#6868a969cd3e83643a099bb3a93498fb">M_PAR_MIN_APOL_NEIGH</a> :
<a name="l00107"></a>00107 status += <a class="code" href="fparams_8c.html#40cf684e6c79bc0d5494cf63ee40b8d3">parse_min_apol_neigh</a>(args[++i], par) ; break ;
<a name="l00108"></a>00108 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#ace76e1ea0d5b9bd44c7833fc257f9d5">M_PAR_CLUST_MAX_DIST</a> :
<a name="l00109"></a>00109 status += <a class="code" href="fparams_8c.html#8471dca4fb8f09806aed3be18a79c6b2">parse_clust_max_dist</a>(args[++i], par) ; break ;
<a name="l00110"></a>00110 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#e5eccb0710c00b2c304cc688b8041f54">M_PAR_SL_MAX_DIST</a> :
<a name="l00111"></a>00111 status += <a class="code" href="fparams_8c.html#da442addde23a799e50cecae103974bf">parse_sclust_max_dist</a>(args[++i], par) ; break ;
<a name="l00112"></a>00112 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#bc2dc478b856e70af235992072620d91">M_PAR_SL_MIN_NUM_NEIGH</a> :
<a name="l00113"></a>00113 status += <a class="code" href="fparams_8c.html#39b0715eb1fb67b993d494570f866135">parse_sclust_min_nneigh</a>(args[++i], par) ; break ;
<a name="l00114"></a>00114 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#bdef86070652cf4d0fa5493ccf73d4fa">M_PAR_MC_ITER</a> :
<a name="l00115"></a>00115 status += <a class="code" href="fparams_8c.html#ffc4eabc99149ff419340f11297312c6">parse_mc_niter</a>(args[++i], par) ; break ;
<a name="l00116"></a>00116 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#74ad0900c04fd7855cb4914deabe0ba3">M_PAR_BASIC_VOL_DIVISION</a> :
<a name="l00117"></a>00117 status += <a class="code" href="fparams_8c.html#bb8b6f641fc59aea7b6915fd3c197fba">parse_basic_vol_div</a>(args[++i], par) ; break ;
<a name="l00118"></a>00118 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#2558ed6c1ac5aefc7366c607caefde34">M_PAR_MIN_POCK_NB_ASPH</a> :
<a name="l00119"></a>00119 status += <a class="code" href="fparams_8c.html#c09155f5ca513066b30c9d1485d810a8">parse_min_pock_nb_asph</a>(args[++i], par) ; break ;
<a name="l00120"></a>00120 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#9bbf5319350592125ab3504cea9c10e4">M_PAR_REFINE_DIST</a> :
<a name="l00121"></a>00121 status += <a class="code" href="fparams_8c.html#cca6c1f10d064997753458d61e052f7d">parse_refine_dist</a>(args[++i], par) ; break ;
<a name="l00122"></a>00122 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#a53522d41aaa000c99a53f29ea5c60cf">M_PAR_REFINE_MIN_NAPOL_AS</a>:
<a name="l00123"></a>00123 status += <a class="code" href="fparams_8c.html#a08e358edc9c6941f595da45c4741fe0">parse_refine_minaap</a>(args[++i], par) ;
<a name="l00124"></a>00124 break ;
<a name="l00125"></a>00125 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#598416cef61191786dcc416d92da84dd">M_PAR_DB_RUN</a> :
<a name="l00126"></a>00126 par-&gt;<a class="code" href="structs__fparams.html#b8d794447932a12435a628f3462df7ad">db_run</a>=1;
<a name="l00127"></a>00127 <span class="keywordflow">break</span>;
<a name="l00128"></a>00128
<a name="l00129"></a>00129 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#c9f20b54cb35b4bcc3b7a1b49b6e5ebe">M_PAR_PDB_LIST</a> :
<a name="l00130"></a>00130 pdb_lst = args[++i] ;
<a name="l00131"></a>00131 break ;
<a name="l00132"></a>00132
<a name="l00133"></a>00133 <span class="keywordflow">case</span> <a class="code" href="fparams_8h.html#7773b427778268b6569aae255f04c68c">M_PAR_PDB_FILE</a> :
<a name="l00134"></a>00134 <span class="keywordflow">if</span>(npdb &gt;= 1) fprintf(stderr,
<a name="l00135"></a>00135 <span class="stringliteral">"! Only first input pdb will be used.\n"</span>) ;
<a name="l00136"></a>00136 <span class="keywordflow">else</span> {
<a name="l00137"></a>00137 strcpy(par-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a>, args[++i]) ; npdb++ ;
<a name="l00138"></a>00138 }
<a name="l00139"></a>00139 break ;
<a name="l00140"></a>00140 <span class="keywordflow">default</span>: break ;
<a name="l00141"></a>00141 }
<a name="l00142"></a>00142 }
<a name="l00143"></a>00143 }
<a name="l00144"></a>00144
<a name="l00145"></a>00145 <span class="keywordflow">if</span>(status &gt; 0) {
<a name="l00146"></a>00146 <a class="code" href="fparams_8c.html#112335ac520ae98bdcf93e0c75c3c5db">free_fparams</a>(par) ;
<a name="l00147"></a>00147 <a class="code" href="fparams_8c.html#ab8c5397c1eaa6388ae24aa9ae605481">print_pocket_usage</a>(stdout);
<a name="l00148"></a>00148 <span class="keywordflow">return</span> NULL ;
<a name="l00149"></a>00149 }
<a name="l00150"></a>00150
<a name="l00151"></a>00151 par-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> = npdb ;
<a name="l00152"></a>00152
<a name="l00153"></a>00153 <span class="comment">/* Handle a file containing a list of PDB */</span>
<a name="l00154"></a>00154 <span class="keywordflow">if</span>(pdb_lst != NULL) {
<a name="l00155"></a>00155 FILE *f = fopen(pdb_lst, <span class="stringliteral">"r"</span>) ;
<a name="l00156"></a>00156 <span class="keywordflow">if</span>(f != NULL) {
<a name="l00157"></a>00157 <span class="comment">/* Count the number of lines */</span>
<a name="l00158"></a>00158 <span class="keywordtype">int</span> n = 0 ;
<a name="l00159"></a>00159 <span class="keywordtype">char</span> cline [<a class="code" href="utils_8h.html#ea69486910da420cbfe816d80ecc8b0c">M_MAX_PDB_NAME_LEN</a> + 1] ;
<a name="l00160"></a>00160
<a name="l00161"></a>00161 <span class="keywordflow">while</span>(fgets(cline, <a class="code" href="utils_8h.html#ea69486910da420cbfe816d80ecc8b0c">M_MAX_PDB_NAME_LEN</a>, f) != NULL) {
<a name="l00162"></a>00162 <span class="keywordflow">if</span>(strcmp(<span class="stringliteral">"\n"</span>, cline) != 0) {
<a name="l00163"></a>00163 n ++ ;
<a name="l00164"></a>00164 }
<a name="l00165"></a>00165 }
<a name="l00166"></a>00166 fclose(f) ;
<a name="l00167"></a>00167 <span class="keywordflow">if</span>(n == 0) {
<a name="l00168"></a>00168 <span class="keywordflow">return</span> par ;
<a name="l00169"></a>00169 }
<a name="l00170"></a>00170
<a name="l00171"></a>00171 <span class="comment">/* Allocate memory and store each line */</span>
<a name="l00172"></a>00172 par-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a> = (<span class="keywordtype">char</span> **)<a class="code" href="memhandler_8c.html#52d7260a38c396cb2dd1dd7abcfd61cb">my_malloc</a>(n*<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>*)) ;
<a name="l00173"></a>00173
<a name="l00174"></a>00174 f = fopen (pdb_lst, <span class="stringliteral">"r"</span>) ;
<a name="l00175"></a>00175 <span class="keywordtype">int</span> i = 0, l = 0 ;
<a name="l00176"></a>00176 <span class="keywordtype">char</span> *line;
<a name="l00177"></a>00177 <span class="keywordflow">while</span>(fgets(cline, <a class="code" href="utils_8h.html#ea69486910da420cbfe816d80ecc8b0c">M_MAX_PDB_NAME_LEN</a>, f) != NULL) {
<a name="l00178"></a>00178 <span class="keywordflow">if</span>(strcmp(<span class="stringliteral">"\n"</span>, cline) != 0) {
<a name="l00179"></a>00179 l = strlen(cline) ;
<a name="l00180"></a>00180 <span class="keywordflow">if</span>(cline[l-1] == <span class="charliteral">'\n'</span>) {
<a name="l00181"></a>00181 l-- ;
<a name="l00182"></a>00182 cline[l] = <span class="charliteral">'\0'</span> ;
<a name="l00183"></a>00183 }
<a name="l00184"></a>00184 line = (<span class="keywordtype">char</span> *) <a class="code" href="memhandler_8c.html#52d7260a38c396cb2dd1dd7abcfd61cb">my_malloc</a>((l+1)*<span class="keyword">sizeof</span>(char)) ;
<a name="l00185"></a>00185 memcpy (line, cline, l+1);
<a name="l00186"></a>00186
<a name="l00187"></a>00187 par-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>[i] = line ;
<a name="l00188"></a>00188 i ++ ;
<a name="l00189"></a>00189 }
<a name="l00190"></a>00190 }
<a name="l00191"></a>00191
<a name="l00192"></a>00192 par-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> = n ;
<a name="l00193"></a>00193 }
<a name="l00194"></a>00194 }
<a name="l00195"></a>00195
<a name="l00196"></a>00196 <span class="keywordflow">return</span> par;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 <span class="comment"></span>
<a name="l00199"></a>00199 <span class="comment">/**</span>
<a name="l00200"></a>00200 <span class="comment"> ## FUNCTION: </span>
<a name="l00201"></a>00201 <span class="comment"> parse_clust_max_dist</span>
<a name="l00202"></a>00202 <span class="comment"> </span>
<a name="l00203"></a>00203 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00204"></a>00204 <span class="comment"> Parsing function for the distance criteria first clustering algorithm.</span>
<a name="l00205"></a>00205 <span class="comment"> </span>
<a name="l00206"></a>00206 <span class="comment"> ## PARAMETERS:</span>
<a name="l00207"></a>00207 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00208"></a>00208 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00209"></a>00209 <span class="comment"> </span>
<a name="l00210"></a>00210 <span class="comment"> ## RETURN: </span>
<a name="l00211"></a>00211 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00212"></a>00212 <span class="comment"> </span>
<a name="l00213"></a>00213 <span class="comment">*/</span>
<a name="l00214"></a><a class="code" href="fparams_8h.html#8471dca4fb8f09806aed3be18a79c6b2">00214</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#8471dca4fb8f09806aed3be18a79c6b2">parse_clust_max_dist</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00215"></a>00215 {
<a name="l00216"></a>00216 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00217"></a>00217 p-&gt;<a class="code" href="structs__fparams.html#cd506e600d2b5077f7925847be38c854">clust_max_dist</a> = atof(str) ;
<a name="l00218"></a>00218 }
<a name="l00219"></a>00219 <span class="keywordflow">else</span> {
<a name="l00220"></a>00220 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the single linkage max dist.\n"</span>, str) ;
<a name="l00221"></a>00221 <span class="keywordflow">return</span> 1 ;
<a name="l00222"></a>00222 }
<a name="l00223"></a>00223
<a name="l00224"></a>00224 <span class="keywordflow">return</span> 0 ;
<a name="l00225"></a>00225 }
<a name="l00226"></a>00226
<a name="l00227"></a>00227 <span class="comment"></span>
<a name="l00228"></a>00228 <span class="comment">/**</span>
<a name="l00229"></a>00229 <span class="comment"> ## FUNCTION: </span>
<a name="l00230"></a>00230 <span class="comment"> parse_sclust_max_dist</span>
<a name="l00231"></a>00231 <span class="comment"> </span>
<a name="l00232"></a>00232 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00233"></a>00233 <span class="comment"> Parsing function for the distance criteria in the single linkage clustering.</span>
<a name="l00234"></a>00234 <span class="comment"> </span>
<a name="l00235"></a>00235 <span class="comment"> ## PARAMETERS:</span>
<a name="l00236"></a>00236 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00237"></a>00237 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00238"></a>00238 <span class="comment"> </span>
<a name="l00239"></a>00239 <span class="comment"> ## RETURN: </span>
<a name="l00240"></a>00240 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00241"></a>00241 <span class="comment"> </span>
<a name="l00242"></a>00242 <span class="comment">*/</span>
<a name="l00243"></a><a class="code" href="fparams_8h.html#da442addde23a799e50cecae103974bf">00243</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#da442addde23a799e50cecae103974bf">parse_sclust_max_dist</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00244"></a>00244 {
<a name="l00245"></a>00245 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00246"></a>00246 p-&gt;<a class="code" href="structs__fparams.html#71691bbfb98d90e12ca8cb3c79e2688c">sl_clust_max_dist</a> = atof(str) ;
<a name="l00247"></a>00247 }
<a name="l00248"></a>00248 <span class="keywordflow">else</span> {
<a name="l00249"></a>00249 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the single linkage max dist.\n"</span>, str) ;
<a name="l00250"></a>00250 <span class="keywordflow">return</span> 1 ;
<a name="l00251"></a>00251 }
<a name="l00252"></a>00252
<a name="l00253"></a>00253 <span class="keywordflow">return</span> 0 ;
<a name="l00254"></a>00254 }
<a name="l00255"></a>00255 <span class="comment"></span>
<a name="l00256"></a>00256 <span class="comment">/**</span>
<a name="l00257"></a>00257 <span class="comment"> ## FUNCTION: </span>
<a name="l00258"></a>00258 <span class="comment"> parse_sclust_min_nneigh</span>
<a name="l00259"></a>00259 <span class="comment"> </span>
<a name="l00260"></a>00260 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00261"></a>00261 <span class="comment"> Parsing function for the number of neighbours in the single linkage clustering.</span>
<a name="l00262"></a>00262 <span class="comment"> </span>
<a name="l00263"></a>00263 <span class="comment"> ## PARAMETERS:</span>
<a name="l00264"></a>00264 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00265"></a>00265 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00266"></a>00266 <span class="comment"> </span>
<a name="l00267"></a>00267 <span class="comment"> ## RETURN: </span>
<a name="l00268"></a>00268 <span class="comment"> int: 0 if the parameter is valid (here a valid int), 1 if not</span>
<a name="l00269"></a>00269 <span class="comment"> </span>
<a name="l00270"></a>00270 <span class="comment">*/</span>
<a name="l00271"></a><a class="code" href="fparams_8h.html#39b0715eb1fb67b993d494570f866135">00271</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#39b0715eb1fb67b993d494570f866135">parse_sclust_min_nneigh</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00272"></a>00272 {
<a name="l00273"></a>00273 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#bb731c23a19ad89ea0a69951672a1952">str_is_number</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00274"></a>00274 p-&gt;<a class="code" href="structs__fparams.html#b23279857aaf7861b452cd2bf463f624">sl_clust_min_nneigh</a> = atoi(str) ;
<a name="l00275"></a>00275 }
<a name="l00276"></a>00276 <span class="keywordflow">else</span> {
<a name="l00277"></a>00277 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the single linkage max dist.\n"</span>, str) ;
<a name="l00278"></a>00278 <span class="keywordflow">return</span> 1 ;
<a name="l00279"></a>00279 }
<a name="l00280"></a>00280
<a name="l00281"></a>00281 <span class="keywordflow">return</span> 0 ;
<a name="l00282"></a>00282 }
<a name="l00283"></a>00283 <span class="comment"></span>
<a name="l00284"></a>00284 <span class="comment">/**</span>
<a name="l00285"></a>00285 <span class="comment"> ## FUNCTION: </span>
<a name="l00286"></a>00286 <span class="comment"> parse_min_apol_neigh</span>
<a name="l00287"></a>00287 <span class="comment"> </span>
<a name="l00288"></a>00288 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00289"></a>00289 <span class="comment"> Parsing function for the minimum number of apolar contacted atom for an alpha</span>
<a name="l00290"></a>00290 <span class="comment"> sphere to be considered as apolar.</span>
<a name="l00291"></a>00291 <span class="comment"> </span>
<a name="l00292"></a>00292 <span class="comment"> ## PARAMETERS:</span>
<a name="l00293"></a>00293 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00294"></a>00294 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00295"></a>00295 <span class="comment"> </span>
<a name="l00296"></a>00296 <span class="comment"> ## RETURN: </span>
<a name="l00297"></a>00297 <span class="comment"> int: 0 if the parameter is valid (here a valid int), 1 if not</span>
<a name="l00298"></a>00298 <span class="comment"> </span>
<a name="l00299"></a>00299 <span class="comment">*/</span>
<a name="l00300"></a><a class="code" href="fparams_8h.html#40cf684e6c79bc0d5494cf63ee40b8d3">00300</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#40cf684e6c79bc0d5494cf63ee40b8d3">parse_min_apol_neigh</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00301"></a>00301 {
<a name="l00302"></a>00302 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#bb731c23a19ad89ea0a69951672a1952">str_is_number</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00303"></a>00303 p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> = (int) atoi(str) ;
<a name="l00304"></a>00304 <span class="keywordflow">if</span>(p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> &lt; 0) p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> = 0 ;
<a name="l00305"></a>00305 <span class="keywordflow">if</span>(p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> &gt; 4) p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a> = 4 ;
<a name="l00306"></a>00306 }
<a name="l00307"></a>00307 <span class="keywordflow">else</span> {
<a name="l00308"></a>00308 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the min radius of alpha shperes.\n"</span>, str) ;
<a name="l00309"></a>00309 <span class="keywordflow">return</span> 1 ;
<a name="l00310"></a>00310 }
<a name="l00311"></a>00311
<a name="l00312"></a>00312 <span class="keywordflow">return</span> 0 ;
<a name="l00313"></a>00313 }
<a name="l00314"></a>00314 <span class="comment"></span>
<a name="l00315"></a>00315 <span class="comment">/**</span>
<a name="l00316"></a>00316 <span class="comment"> ## FUNCTION: </span>
<a name="l00317"></a>00317 <span class="comment"> parse_asph_min_size</span>
<a name="l00318"></a>00318 <span class="comment"> </span>
<a name="l00319"></a>00319 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00320"></a>00320 <span class="comment"> Parsing function for the minimum radius of each alpha shpere</span>
<a name="l00321"></a>00321 <span class="comment"> </span>
<a name="l00322"></a>00322 <span class="comment"> ## PARAMETERS:</span>
<a name="l00323"></a>00323 <span class="comment"> @ char *str: The string to parse</span>
<a name="l00324"></a>00324 <span class="comment"> @ s_fparams *p: The structure than will contain the parsed parameter</span>
<a name="l00325"></a>00325 <span class="comment"> </span>
<a name="l00326"></a>00326 <span class="comment"> ## RETURN: </span>
<a name="l00327"></a>00327 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00328"></a>00328 <span class="comment"> </span>
<a name="l00329"></a>00329 <span class="comment">*/</span>
<a name="l00330"></a><a class="code" href="fparams_8h.html#0356665c59c8eda7fb483f47dbbe8d3b">00330</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#0356665c59c8eda7fb483f47dbbe8d3b">parse_asph_min_size</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00331"></a>00331 {
<a name="l00332"></a>00332 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00333"></a>00333 p-&gt;<a class="code" href="structs__fparams.html#545b7bea97958089689608fff6b8910d">asph_min_size</a> = (float) atof(str) ;
<a name="l00334"></a>00334 }
<a name="l00335"></a>00335 <span class="keywordflow">else</span> {
<a name="l00336"></a>00336 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the min radius of alpha shperes.\n"</span>, str) ;
<a name="l00337"></a>00337 <span class="keywordflow">return</span> 1 ;
<a name="l00338"></a>00338 }
<a name="l00339"></a>00339
<a name="l00340"></a>00340 <span class="keywordflow">return</span> 0 ;
<a name="l00341"></a>00341 }
<a name="l00342"></a>00342 <span class="comment"></span>
<a name="l00343"></a>00343 <span class="comment">/**</span>
<a name="l00344"></a>00344 <span class="comment"> ## FUNCTION: </span>
<a name="l00345"></a>00345 <span class="comment"> parse_asph_max_size</span>
<a name="l00346"></a>00346 <span class="comment"> </span>
<a name="l00347"></a>00347 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00348"></a>00348 <span class="comment"> Parsing function for the maximum radius of each alpha shpere</span>
<a name="l00349"></a>00349 <span class="comment"> </span>
<a name="l00350"></a>00350 <span class="comment"> ## PARAMETERS:</span>
<a name="l00351"></a>00351 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00352"></a>00352 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00353"></a>00353 <span class="comment"> </span>
<a name="l00354"></a>00354 <span class="comment"> ## RETURN: </span>
<a name="l00355"></a>00355 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00356"></a>00356 <span class="comment"> </span>
<a name="l00357"></a>00357 <span class="comment">*/</span>
<a name="l00358"></a><a class="code" href="fparams_8h.html#8ba1cfff825efc1d30099d85f1f85b01">00358</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#8ba1cfff825efc1d30099d85f1f85b01">parse_asph_max_size</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00359"></a>00359 {
<a name="l00360"></a>00360 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00361"></a>00361 p-&gt;<a class="code" href="structs__fparams.html#7439af209766e39dad7e39f4c6e19711">asph_max_size</a> = (float) atof(str) ;
<a name="l00362"></a>00362 }
<a name="l00363"></a>00363 <span class="keywordflow">else</span> {
<a name="l00364"></a>00364 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the max radius of alpha shperes.\n"</span>, str) ;
<a name="l00365"></a>00365 <span class="keywordflow">return</span> 1 ;
<a name="l00366"></a>00366 }
<a name="l00367"></a>00367
<a name="l00368"></a>00368 <span class="keywordflow">return</span> 0 ;
<a name="l00369"></a>00369 }
<a name="l00370"></a>00370 <span class="comment"></span>
<a name="l00371"></a>00371 <span class="comment">/**</span>
<a name="l00372"></a>00372 <span class="comment"> ## FUNCTION: </span>
<a name="l00373"></a>00373 <span class="comment"> parse_mc_niter</span>
<a name="l00374"></a>00374 <span class="comment"> </span>
<a name="l00375"></a>00375 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00376"></a>00376 <span class="comment"> Parsing function for the number of iteration for the Monte Carlo volume</span>
<a name="l00377"></a>00377 <span class="comment"> calculation.</span>
<a name="l00378"></a>00378 <span class="comment"> </span>
<a name="l00379"></a>00379 <span class="comment"> ## PARAMETERS:</span>
<a name="l00380"></a>00380 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00381"></a>00381 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00382"></a>00382 <span class="comment"> </span>
<a name="l00383"></a>00383 <span class="comment"> ## RETURN: </span>
<a name="l00384"></a>00384 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00385"></a>00385 <span class="comment"> </span>
<a name="l00386"></a>00386 <span class="comment">*/</span>
<a name="l00387"></a><a class="code" href="fparams_8h.html#ffc4eabc99149ff419340f11297312c6">00387</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#ffc4eabc99149ff419340f11297312c6">parse_mc_niter</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00388"></a>00388 {
<a name="l00389"></a>00389 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00390"></a>00390 p-&gt;<a class="code" href="structs__fparams.html#8caeadbae2db7d24763497290e6b9220">nb_mcv_iter</a> = (int) atoi(str) ;
<a name="l00391"></a>00391 }
<a name="l00392"></a>00392 <span class="keywordflow">else</span> {
<a name="l00393"></a>00393 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the number of monte-carlo iteration for the volume.\n"</span>, str) ;
<a name="l00394"></a>00394 <span class="keywordflow">return</span> 1 ;
<a name="l00395"></a>00395 }
<a name="l00396"></a>00396
<a name="l00397"></a>00397 <span class="keywordflow">return</span> 0 ;
<a name="l00398"></a>00398 }
<a name="l00399"></a>00399 <span class="comment"></span>
<a name="l00400"></a>00400 <span class="comment">/**</span>
<a name="l00401"></a>00401 <span class="comment"> ## FUNCTION: </span>
<a name="l00402"></a>00402 <span class="comment"> parse_basic_vol_div</span>
<a name="l00403"></a>00403 <span class="comment"> </span>
<a name="l00404"></a>00404 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00405"></a>00405 <span class="comment"> Parsing function for the number of iteration for the basic volume calculation.</span>
<a name="l00406"></a>00406 <span class="comment"> </span>
<a name="l00407"></a>00407 <span class="comment"> ## PARAMETERS:</span>
<a name="l00408"></a>00408 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00409"></a>00409 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00410"></a>00410 <span class="comment"> </span>
<a name="l00411"></a>00411 <span class="comment"> ## RETURN: </span>
<a name="l00412"></a>00412 <span class="comment"> int: 0 if the parameter is valid (here a valid integer), 1 if not</span>
<a name="l00413"></a>00413 <span class="comment"> </span>
<a name="l00414"></a>00414 <span class="comment">*/</span>
<a name="l00415"></a><a class="code" href="fparams_8h.html#bb8b6f641fc59aea7b6915fd3c197fba">00415</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#bb8b6f641fc59aea7b6915fd3c197fba">parse_basic_vol_div</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00416"></a>00416 {
<a name="l00417"></a>00417 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#bb731c23a19ad89ea0a69951672a1952">str_is_number</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00418"></a>00418 p-&gt;<a class="code" href="structs__fparams.html#289a1193bf0ffa2f737cd9dc914b63e0">basic_volume_div</a> = (int) atoi(str) ;
<a name="l00419"></a>00419 }
<a name="l00420"></a>00420 <span class="keywordflow">else</span> {
<a name="l00421"></a>00421 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the precision of the basic volume calculation.\n"</span>, str) ;
<a name="l00422"></a>00422 <span class="keywordflow">return</span> 1 ;
<a name="l00423"></a>00423 }
<a name="l00424"></a>00424
<a name="l00425"></a>00425 <span class="keywordflow">return</span> 0 ;
<a name="l00426"></a>00426 }
<a name="l00427"></a>00427 <span class="comment"></span>
<a name="l00428"></a>00428 <span class="comment">/**</span>
<a name="l00429"></a>00429 <span class="comment"> ## FUNCTION: </span>
<a name="l00430"></a>00430 <span class="comment"> parse_refine_dist</span>
<a name="l00431"></a>00431 <span class="comment"> </span>
<a name="l00432"></a>00432 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00433"></a>00433 <span class="comment"> Parsing function for the distance in the refine algorithm</span>
<a name="l00434"></a>00434 <span class="comment"> </span>
<a name="l00435"></a>00435 <span class="comment"> ## PARAMETERS:</span>
<a name="l00436"></a>00436 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00437"></a>00437 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00438"></a>00438 <span class="comment"> </span>
<a name="l00439"></a>00439 <span class="comment"> ## RETURN: </span>
<a name="l00440"></a>00440 <span class="comment"> int: 0 if the parameter is valid (here a valid float), 1 if not</span>
<a name="l00441"></a>00441 <span class="comment"> </span>
<a name="l00442"></a>00442 <span class="comment">*/</span>
<a name="l00443"></a><a class="code" href="fparams_8h.html#cca6c1f10d064997753458d61e052f7d">00443</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#cca6c1f10d064997753458d61e052f7d">parse_refine_dist</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00444"></a>00444 {
<a name="l00445"></a>00445 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00446"></a>00446 p-&gt;<a class="code" href="structs__fparams.html#8ba147c559344c3f0406c1e7a86b98d1">refine_clust_dist</a> = (float) atof(str) ;
<a name="l00447"></a>00447 }
<a name="l00448"></a>00448 <span class="keywordflow">else</span> {
<a name="l00449"></a>00449 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the refine distance.\n"</span>, str) ;
<a name="l00450"></a>00450 <span class="keywordflow">return</span> 1 ;
<a name="l00451"></a>00451 }
<a name="l00452"></a>00452
<a name="l00453"></a>00453 <span class="keywordflow">return</span> 0 ;
<a name="l00454"></a>00454 }
<a name="l00455"></a>00455 <span class="comment"></span>
<a name="l00456"></a>00456 <span class="comment">/**</span>
<a name="l00457"></a>00457 <span class="comment"> ## FUNCTION: </span>
<a name="l00458"></a>00458 <span class="comment"> parse_refine_min_apol</span>
<a name="l00459"></a>00459 <span class="comment"> </span>
<a name="l00460"></a>00460 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00461"></a>00461 <span class="comment"> Parsing function for the minimum number of apolar sphere per pocket.</span>
<a name="l00462"></a>00462 <span class="comment"> </span>
<a name="l00463"></a>00463 <span class="comment"> ## PARAMETERS:</span>
<a name="l00464"></a>00464 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00465"></a>00465 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00466"></a>00466 <span class="comment"> </span>
<a name="l00467"></a>00467 <span class="comment"> ## RETURN: </span>
<a name="l00468"></a>00468 <span class="comment"> int: 0 if the parameter is valid (here a valid integer), 1 if not</span>
<a name="l00469"></a>00469 <span class="comment"> </span>
<a name="l00470"></a>00470 <span class="comment">*/</span>
<a name="l00471"></a><a class="code" href="fparams_8h.html#a08e358edc9c6941f595da45c4741fe0">00471</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#a08e358edc9c6941f595da45c4741fe0">parse_refine_minaap</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00472"></a>00472 {
<a name="l00473"></a>00473 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#b2155f59a3e9691956e8501985f5f362">str_is_float</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00474"></a>00474 p-&gt;<a class="code" href="structs__fparams.html#50d6211ea1f5d9b90c10f866c82e54b8">refine_min_apolar_asphere_prop</a> = (float) atof(str) ;
<a name="l00475"></a>00475 }
<a name="l00476"></a>00476 <span class="keywordflow">else</span> {
<a name="l00477"></a>00477 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the refine distance.\n"</span>, str) ;
<a name="l00478"></a>00478 <span class="keywordflow">return</span> 1 ;
<a name="l00479"></a>00479 }
<a name="l00480"></a>00480
<a name="l00481"></a>00481 <span class="keywordflow">return</span> 0 ;
<a name="l00482"></a>00482 }
<a name="l00483"></a>00483 <span class="comment"></span>
<a name="l00484"></a>00484 <span class="comment">/**</span>
<a name="l00485"></a>00485 <span class="comment"> ## FUNCTION: </span>
<a name="l00486"></a>00486 <span class="comment"> parse_min_pock_nb_asph</span>
<a name="l00487"></a>00487 <span class="comment"> </span>
<a name="l00488"></a>00488 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00489"></a>00489 <span class="comment"> Parsing function for the minimum number of alpha sphere per pocket.</span>
<a name="l00490"></a>00490 <span class="comment"> </span>
<a name="l00491"></a>00491 <span class="comment"> ## PARAMETERS:</span>
<a name="l00492"></a>00492 <span class="comment"> @ char *str : The string to parse</span>
<a name="l00493"></a>00493 <span class="comment"> @ s_fparams *p : The structure than will contain the parsed parameter</span>
<a name="l00494"></a>00494 <span class="comment"> </span>
<a name="l00495"></a>00495 <span class="comment"> ## RETURN: </span>
<a name="l00496"></a>00496 <span class="comment"> int: 0 if the parameter is valid (here a valid integer), 1 if not</span>
<a name="l00497"></a>00497 <span class="comment"> </span>
<a name="l00498"></a>00498 <span class="comment">*/</span>
<a name="l00499"></a><a class="code" href="fparams_8h.html#c09155f5ca513066b30c9d1485d810a8">00499</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#c09155f5ca513066b30c9d1485d810a8">parse_min_pock_nb_asph</a>(<span class="keywordtype">char</span> *str, <a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00500"></a>00500 {
<a name="l00501"></a>00501 <span class="keywordflow">if</span>(<a class="code" href="utils_8c.html#bb731c23a19ad89ea0a69951672a1952">str_is_number</a>(str, <a class="code" href="utils_8h.html#1d2d01db9e7d6bb5200d8cfd398217d6">M_NO_SIGN</a>)) {
<a name="l00502"></a>00502 p-&gt;<a class="code" href="structs__fparams.html#2ccafe788e970f4e00bdae591d834865">min_pock_nb_asph</a> = (int) atoi(str) ;
<a name="l00503"></a>00503 }
<a name="l00504"></a>00504 <span class="keywordflow">else</span> {
<a name="l00505"></a>00505 fprintf(stdout, <span class="stringliteral">"! Invalid value (%s) given for the refine distance.\n"</span>, str) ;
<a name="l00506"></a>00506 <span class="keywordflow">return</span> 1 ;
<a name="l00507"></a>00507 }
<a name="l00508"></a>00508
<a name="l00509"></a>00509 <span class="keywordflow">return</span> 0 ;
<a name="l00510"></a>00510 }
<a name="l00511"></a>00511
<a name="l00512"></a>00512 <span class="comment"></span>
<a name="l00513"></a>00513 <span class="comment">/**</span>
<a name="l00514"></a>00514 <span class="comment"> ## FUNCTION:</span>
<a name="l00515"></a>00515 <span class="comment"> is_fpocket_opt</span>
<a name="l00516"></a>00516 <span class="comment"> </span>
<a name="l00517"></a>00517 <span class="comment"> ## SPECIFICATION:</span>
<a name="l00518"></a>00518 <span class="comment"> Say either or not a single letter code is a fpocket option (excluding</span>
<a name="l00519"></a>00519 <span class="comment"> input file/list option.)</span>
<a name="l00520"></a>00520 <span class="comment"> </span>
<a name="l00521"></a>00521 <span class="comment"> ## PARAMETRES:</span>
<a name="l00522"></a>00522 <span class="comment"> @ const char opt: The one letter code option.</span>
<a name="l00523"></a>00523 <span class="comment"> </span>
<a name="l00524"></a>00524 <span class="comment"> ## RETURN:</span>
<a name="l00525"></a>00525 <span class="comment"> integer: 1 if it's a valid option parmeter, 0 if not.</span>
<a name="l00526"></a>00526 <span class="comment"> </span>
<a name="l00527"></a>00527 <span class="comment">*/</span>
<a name="l00528"></a>00528
<a name="l00529"></a><a class="code" href="fparams_8h.html#bdc82d2e467d8dd8765d605d1ae26dc6">00529</a> <span class="keywordtype">int</span> <a class="code" href="fparams_8c.html#bdc82d2e467d8dd8765d605d1ae26dc6">is_fpocket_opt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> opt)
<a name="l00530"></a>00530 {
<a name="l00531"></a>00531 <span class="keywordflow">if</span>( opt == <a class="code" href="fparams_8h.html#9fe722d12f7ed6c181c1022aace70e21">M_PAR_MAX_ASHAPE_SIZE</a> ||
<a name="l00532"></a>00532 opt == <a class="code" href="fparams_8h.html#c2dcc50d93bac7e0fe16850062556626">M_PAR_MIN_ASHAPE_SIZE</a> ||
<a name="l00533"></a>00533 opt == <a class="code" href="fparams_8h.html#6868a969cd3e83643a099bb3a93498fb">M_PAR_MIN_APOL_NEIGH</a> ||
<a name="l00534"></a>00534 opt == <a class="code" href="fparams_8h.html#ace76e1ea0d5b9bd44c7833fc257f9d5">M_PAR_CLUST_MAX_DIST</a> ||
<a name="l00535"></a>00535 opt == <a class="code" href="fparams_8h.html#e5eccb0710c00b2c304cc688b8041f54">M_PAR_SL_MAX_DIST</a> ||
<a name="l00536"></a>00536 opt == <a class="code" href="fparams_8h.html#bc2dc478b856e70af235992072620d91">M_PAR_SL_MIN_NUM_NEIGH</a> ||
<a name="l00537"></a>00537 opt == <a class="code" href="fparams_8h.html#bdef86070652cf4d0fa5493ccf73d4fa">M_PAR_MC_ITER</a> ||
<a name="l00538"></a>00538 opt == <a class="code" href="fparams_8h.html#74ad0900c04fd7855cb4914deabe0ba3">M_PAR_BASIC_VOL_DIVISION</a> ||
<a name="l00539"></a>00539 opt == <a class="code" href="fparams_8h.html#2558ed6c1ac5aefc7366c607caefde34">M_PAR_MIN_POCK_NB_ASPH</a> ||
<a name="l00540"></a>00540 opt == <a class="code" href="fparams_8h.html#9bbf5319350592125ab3504cea9c10e4">M_PAR_REFINE_DIST</a> ||
<a name="l00541"></a>00541 opt == <a class="code" href="fparams_8h.html#a53522d41aaa000c99a53f29ea5c60cf">M_PAR_REFINE_MIN_NAPOL_AS</a>) {
<a name="l00542"></a>00542 <span class="keywordflow">return</span> 1 ;
<a name="l00543"></a>00543 }
<a name="l00544"></a>00544
<a name="l00545"></a>00545 <span class="keywordflow">return</span> 0 ;
<a name="l00546"></a>00546 }
<a name="l00547"></a>00547 <span class="comment"></span>
<a name="l00548"></a>00548 <span class="comment">/**</span>
<a name="l00549"></a>00549 <span class="comment"> ## FUNCTION: </span>
<a name="l00550"></a>00550 <span class="comment"> free_fparams</span>
<a name="l00551"></a>00551 <span class="comment"> </span>
<a name="l00552"></a>00552 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00553"></a>00553 <span class="comment"> Free parameters</span>
<a name="l00554"></a>00554 <span class="comment"> </span>
<a name="l00555"></a>00555 <span class="comment"> ## PARAMETRES: </span>
<a name="l00556"></a>00556 <span class="comment"> @ s_params *p: Pointer to the structure to free</span>
<a name="l00557"></a>00557 <span class="comment"> </span>
<a name="l00558"></a>00558 <span class="comment"> ## RETURN: </span>
<a name="l00559"></a>00559 <span class="comment"> void</span>
<a name="l00560"></a>00560 <span class="comment"> </span>
<a name="l00561"></a>00561 <span class="comment">*/</span>
<a name="l00562"></a><a class="code" href="fparams_8h.html#112335ac520ae98bdcf93e0c75c3c5db">00562</a> <span class="keywordtype">void</span> <a class="code" href="fparams_8c.html#112335ac520ae98bdcf93e0c75c3c5db">free_fparams</a>(<a class="code" href="structs__fparams.html">s_fparams</a> *p)
<a name="l00563"></a>00563 {
<a name="l00564"></a>00564 <span class="keywordtype">int</span> i ;
<a name="l00565"></a>00565 <span class="keywordflow">if</span>(p) {
<a name="l00566"></a>00566 <span class="keywordflow">if</span>(p-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> &gt; 0 &amp;&amp; p-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a> != NULL) {
<a name="l00567"></a>00567 <span class="keywordflow">for</span> (i = 0 ; i &lt; p-&gt;<a class="code" href="structs__fparams.html#5427055e24cc2dea5c41a9fd6bba8cac">npdb</a> ; i++) {
<a name="l00568"></a>00568 <span class="keywordflow">if</span>(p-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>[i] != NULL) <a class="code" href="memhandler_8c.html#a49400242a007d208c641f79856ea4c6">my_free</a>(p-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>[i]) ;
<a name="l00569"></a>00569 }
<a name="l00570"></a>00570 <a class="code" href="memhandler_8c.html#a49400242a007d208c641f79856ea4c6">my_free</a>(p-&gt;<a class="code" href="structs__fparams.html#b620ac1ea6b8ad4c4ed0b95a8664a560">pdb_lst</a>) ;
<a name="l00571"></a>00571 }
<a name="l00572"></a>00572 <a class="code" href="memhandler_8c.html#a49400242a007d208c641f79856ea4c6">my_free</a>(p) ;
<a name="l00573"></a>00573 }
<a name="l00574"></a>00574 }
<a name="l00575"></a>00575 <span class="comment"></span>
<a name="l00576"></a>00576 <span class="comment">/**</span>
<a name="l00577"></a>00577 <span class="comment"> ## FUNCTION: </span>
<a name="l00578"></a>00578 <span class="comment"> print_pocket_usage</span>
<a name="l00579"></a>00579 <span class="comment"> </span>
<a name="l00580"></a>00580 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00581"></a>00581 <span class="comment"> Displaying usage of the programm in the given buffer</span>
<a name="l00582"></a>00582 <span class="comment"> </span>
<a name="l00583"></a>00583 <span class="comment"> ## PARAMETRES:</span>
<a name="l00584"></a>00584 <span class="comment"> @ FILE *f: buffer to print in</span>
<a name="l00585"></a>00585 <span class="comment"> </span>
<a name="l00586"></a>00586 <span class="comment"> ## RETURN:</span>
<a name="l00587"></a>00587 <span class="comment"> void</span>
<a name="l00588"></a>00588 <span class="comment"> </span>
<a name="l00589"></a>00589 <span class="comment">*/</span>
<a name="l00590"></a><a class="code" href="fparams_8h.html#ab8c5397c1eaa6388ae24aa9ae605481">00590</a> <span class="keywordtype">void</span> <a class="code" href="fparams_8c.html#ab8c5397c1eaa6388ae24aa9ae605481">print_pocket_usage</a>(FILE *f)
<a name="l00591"></a>00591 {
<a name="l00592"></a>00592 f = (f == NULL) ? stdout:f ;
<a name="l00593"></a>00593
<a name="l00594"></a>00594 fprintf(f, <a class="code" href="fparams_8h.html#6148535acc1f81ca26cbaaf678c1cfc5">M_FP_USAGE</a>) ;
<a name="l00595"></a>00595 }
<a name="l00596"></a>00596 <span class="comment"></span>
<a name="l00597"></a>00597 <span class="comment">/**</span>
<a name="l00598"></a>00598 <span class="comment"> ## FUNCTION: </span>
<a name="l00599"></a>00599 <span class="comment"> print_fparams</span>
<a name="l00600"></a>00600 <span class="comment"> </span>
<a name="l00601"></a>00601 <span class="comment"> ## SPECIFICATION: </span>
<a name="l00602"></a>00602 <span class="comment"> Print function</span>
<a name="l00603"></a>00603 <span class="comment"> </span>
<a name="l00604"></a>00604 <span class="comment"> ## PARAMETRES:</span>
<a name="l00605"></a>00605 <span class="comment"> @ s_fparams *p : Parameters to print</span>
<a name="l00606"></a>00606 <span class="comment"> @ FILE *f : Buffer to write in</span>
<a name="l00607"></a>00607 <span class="comment"> </span>
<a name="l00608"></a>00608 <span class="comment"> ## RETURN: </span>
<a name="l00609"></a>00609 <span class="comment"> </span>
<a name="l00610"></a>00610 <span class="comment">*/</span>
<a name="l00611"></a><a class="code" href="fparams_8h.html#00d0d0ea58e0b3fd1f6a785427e6b5f1">00611</a> <span class="keywordtype">void</span> <a class="code" href="fparams_8c.html#00d0d0ea58e0b3fd1f6a785427e6b5f1">print_fparams</a>(<a class="code" href="structs__fparams.html">s_fparams</a> *p, FILE *f)
<a name="l00612"></a>00612 {
<a name="l00613"></a>00613 <span class="keywordflow">if</span>(p) {
<a name="l00614"></a>00614 fprintf(f, <span class="stringliteral">"==============\nParameters of fpocket: \n"</span>);
<a name="l00615"></a>00615 fprintf(f, <span class="stringliteral">"&gt; Minimum alpha sphere radius: %f\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#545b7bea97958089689608fff6b8910d">asph_min_size</a>);
<a name="l00616"></a>00616 fprintf(f, <span class="stringliteral">"&gt; Maximum alpha sphere radius: %f\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#7439af209766e39dad7e39f4c6e19711">asph_max_size</a>);
<a name="l00617"></a>00617 fprintf(f, <span class="stringliteral">"&gt; Minimum number of apolar neighbor: %d\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#b0875eddf8815f766657713b3f4ba0b0">min_apol_neigh</a>);
<a name="l00618"></a>00618 fprintf(f, <span class="stringliteral">"&gt; Maximum distance for first clustering algorithm: %f \n"</span>, p-&gt;<a class="code" href="structs__fparams.html#cd506e600d2b5077f7925847be38c854">clust_max_dist</a>) ;
<a name="l00619"></a>00619 fprintf(f, <span class="stringliteral">"&gt; Single linkage clustering distance: %f\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#71691bbfb98d90e12ca8cb3c79e2688c">sl_clust_max_dist</a>);
<a name="l00620"></a>00620 fprintf(f, <span class="stringliteral">"&gt; Single linkage clustering neighbor: %d\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#b23279857aaf7861b452cd2bf463f624">sl_clust_min_nneigh</a>);
<a name="l00621"></a>00621 fprintf(f, <span class="stringliteral">"&gt; Refine clustering distance: %f\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#8ba147c559344c3f0406c1e7a86b98d1">refine_clust_dist</a>);
<a name="l00622"></a>00622 fprintf(f, <span class="stringliteral">"&gt; Min number of apolar sphere in refine to keep a pocket: %f\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#50d6211ea1f5d9b90c10f866c82e54b8">refine_min_apolar_asphere_prop</a>) ;
<a name="l00623"></a>00623 fprintf(f, <span class="stringliteral">"&gt; Monte carlo iterations: %d\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#8caeadbae2db7d24763497290e6b9220">nb_mcv_iter</a>);
<a name="l00624"></a>00624 fprintf(f, <span class="stringliteral">"&gt; Basic method for volume calculation: %d\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#289a1193bf0ffa2f737cd9dc914b63e0">basic_volume_div</a>);
<a name="l00625"></a>00625 fprintf(f, <span class="stringliteral">"&gt; PDB file: %s\n"</span>, p-&gt;<a class="code" href="structs__fparams.html#4e1b3892d1e42947408cdcaed497bf97">pdb_path</a>);
<a name="l00626"></a>00626 fprintf(f, <span class="stringliteral">"==============\n"</span>);
<a name="l00627"></a>00627 }
<a name="l00628"></a>00628 <span class="keywordflow">else</span> fprintf(f, <span class="stringliteral">"&gt; No parameters detected\n"</span>);
<a name="l00629"></a>00629 }
<a name="l00630"></a>00630
</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>