[med-svn] r12363 - trunk/packages/concavity/trunk/debian/patches

Laszlo Kajan lkajan-guest at alioth.debian.org
Wed Oct 10 16:00:51 UTC 2012


Author: lkajan-guest
Date: 2012-10-10 16:00:51 +0000 (Wed, 10 Oct 2012)
New Revision: 12363

Added:
   trunk/packages/concavity/trunk/debian/patches/threshold_range_cutoff
Modified:
   trunk/packages/concavity/trunk/debian/patches/series
Log:
added cmd line argument to control iterative search

Modified: trunk/packages/concavity/trunk/debian/patches/series
===================================================================
--- trunk/packages/concavity/trunk/debian/patches/series	2012-10-10 15:45:24 UTC (rev 12362)
+++ trunk/packages/concavity/trunk/debian/patches/series	2012-10-10 16:00:51 UTC (rev 12363)
@@ -6,3 +6,4 @@
 noopengllink
 compiler_errors
 manpage
+threshold_range_cutoff

Added: trunk/packages/concavity/trunk/debian/patches/threshold_range_cutoff
===================================================================
--- trunk/packages/concavity/trunk/debian/patches/threshold_range_cutoff	                        (rev 0)
+++ trunk/packages/concavity/trunk/debian/patches/threshold_range_cutoff	2012-10-10 16:00:51 UTC (rev 12363)
@@ -0,0 +1,116 @@
+Author: Laszlo Kajan <lkajan at rostlab.org>
+Description: command line argument for controlling iterative search
+Forwarded: no
+--- a/apps/concavity/concavity.C
++++ b/apps/concavity/concavity.C
+@@ -113,6 +113,7 @@
+ RNScalar exterior_ligand_sigma = 0;
+ int pocket_threshold_type = 0; // 0=none, 1=absolute, 2=stddev, 3=percentile
+ RNScalar pocket_threshold = 0;
++RNScalar thresh_rng_cutoff = 0;
+ int cavity_rank_method = 0;
+ int normalization_type = 0;
+ int max_cavities = 0;
+@@ -534,6 +535,9 @@
+       else if (!strcmp(*argv, "-max_total_volume_as_fraction_of_protein")) { 
+         argc--; argv++; max_total_volume_as_fraction_of_protein = atof(*argv); 
+       }
++      else if (!strcmp(*argv, "-extraction_threshold_range_cutoff")) {
++        argc--; argv++; thresh_rng_cutoff = atof(*argv); 
++      }
+ 
+       // Residue Mapping options
+       else if (!strcmp(*argv, "-res_map_method")){
+@@ -739,7 +743,7 @@
+   // Extract pockets
+   R3Grid *pocket_grid;
+   if (strcmp(extraction_method, "none")) {
+-    pocket_grid = ExtractPockets(pdb_file, grid, protein_atoms, ligand_atoms);
++    pocket_grid = ExtractPockets(pdb_file, grid, protein_atoms, ligand_atoms, thresh_rng_cutoff );
+   } else {
+     pocket_grid = grid;
+   }
+--- a/apps/concavity/pocket_extraction.C
++++ b/apps/concavity/pocket_extraction.C
+@@ -939,7 +939,7 @@
+ 
+ static void 
+ MaskToTotalVolume(R3Grid *mask, RNScalar max_total_volume, 
+-                  RNScalar min_cavity_radius, RNScalar min_cavity_volume, int max_cavities)
++                  RNScalar min_cavity_radius, RNScalar min_cavity_volume, int max_cavities, RNScalar __thresh_rng_cutoff )
+ {
+   // Start statistics
+   RNTime start_time;
+@@ -964,7 +964,12 @@
+   R3Grid mask_copy(*mask);
+ 
+   // Binary search for threshold that provides target volume
+-  for (int i = 0; i < 100; i++) {
++  bool converged = false;
++  int i;
++  for (i = 0; i < 100; i++) {
++    // lkajan: if the max and min thresholds are close at the given cutoff, stop.
++    if( threshold_range.Diameter() < threshold_range.Max() * __thresh_rng_cutoff ) break;
++
+     // Compute new guess for threshold
+     // RNScalar t = (max_total_volume - volume_range.Min()) / (volume_range.Max() - volume_range.Min());
+     // RNScalar threshold = threshold_range.Max() - t * (threshold_range.Max() - threshold_range.Min());
+@@ -1010,6 +1015,7 @@
+     }
+     else {
+       // Found target volume!
++      converged = true;
+       break;
+     }
+   }
+@@ -1029,6 +1035,8 @@
+     printf("  Minimum cavity volume = %g\n", min_cavity_volume);
+     printf("  Max cavities = %d\n", max_cavities);
+     printf("  Grid threshold = %g\n", threshold_range.Mid());
++    printf("  Threshold range cutoff = %g\n", __thresh_rng_cutoff);
++    printf("  Iterations = %d %s\n", i, converged ? "(converged)" : "" );
+     printf("  Cardinality = %d\n", mask->Cardinality());
+     printf("  Volume = %g\n", mask->Volume());
+     RNInterval grid_range = mask->Range();
+@@ -1334,7 +1342,7 @@
+ 
+ 
+ R3Grid * 
+-ExtractPockets(PDBFile *file, R3Grid *grid, const RNArray<PDBAtom *> *protein_atoms, const RNArray<PDBAtom *> *ligand_atoms)
++ExtractPockets(PDBFile *file, R3Grid *grid, const RNArray<PDBAtom *> *protein_atoms, const RNArray<PDBAtom *> *ligand_atoms, RNScalar __thresh_rng_cutoff )
+ {
+   // Determine number of cavities
+   if (max_cavities < 0) max_cavities = NumConnectedComponents(*ligand_atoms);
+@@ -1388,7 +1396,7 @@
+   // MaskToTotalVolume executes MaskToCavityRadius, MaskToCavityVolume, and MaskToLargestCavities
+   if ((max_total_volume > 0) && (max_total_volume < RN_INFINITY)) {
+     // Mask by total volume
+-    MaskToTotalVolume(mask, max_total_volume, min_cavity_radius, min_cavity_volume, max_cavities);
++    MaskToTotalVolume(mask, max_total_volume, min_cavity_radius, min_cavity_volume, max_cavities, __thresh_rng_cutoff );
+   }
+   else if ((max_cavity_volume > 0) && (max_cavity_volume < RN_INFINITY)) {
+     // Mask by cavity radius
+--- a/apps/concavity/pocket_extraction.h
++++ b/apps/concavity/pocket_extraction.h
+@@ -31,7 +31,7 @@
+ // public pocket_extraction functions
+ RNArray<PDBAtom *> * FindProteinAtoms(PDBFile *file);
+ RNArray<PDBAtom *> * FindLigandAtoms(PDBFile *file, const char *ligand_name);
+-R3Grid * ExtractPockets(PDBFile *file, R3Grid *grid, const RNArray<PDBAtom *> *protein_atoms, const RNArray<PDBAtom *> *ligand_atoms);
++R3Grid * ExtractPockets(PDBFile *file, R3Grid *grid, const RNArray<PDBAtom *> *protein_atoms, const RNArray<PDBAtom *> *ligand_atoms, RNScalar __thresh_rng_cutoff = 0 );
+ 
+ 
+ 
+--- a/concavity.1.pod
++++ b/concavity.1.pod
+@@ -107,6 +107,10 @@
+ 
+ =item B<-extraction_method> I<search|topn|custom>
+ 
++=item B<-extraction_threshold_range_cutoff> I<FLOAT>
++
++Stop the iterative I<search> method when the diameter of the binary search window is less than B<-extraction_threshold_range_cutoff> * upper_threshold. Recommended value: I<1e-6>. Default: I<0>.
++
+ =back
+ 
+ =head2 Residue Mapping




More information about the debian-med-commit mailing list