[med-svn] [libfreecontact-perl] 26/46: Imported Upstream version 0.05

Laszlo Kajan lkajan at alioth.debian.org
Thu Sep 19 15:55:03 UTC 2013


This is an automated email from the git hooks/post-receive script.

lkajan pushed a commit to branch master
in repository libfreecontact-perl.

commit 0dc703f15446ac0f0679c17db818e9ddfe5bd4d9
Author: Laszlo Kajan <lkajan at debian.org>
Date:   Fri Jun 7 21:49:53 2013 +0200

    Imported Upstream version 0.05
---
 Changes            |    3 +++
 FreeContact.xsp    |   11 ++++++++---
 META.yml           |    2 +-
 Makefile.PL        |    2 +-
 lib/FreeContact.pm |   14 +++++++++++---
 t/02test.t         |    9 +++++++--
 6 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/Changes b/Changes
index bd59e74..3ab1006 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
 Revision history for Perl extension FreeContact.
 
+0.05  Fri Jun  7 21:24:38 CEST 2013
+	- New libfreecontact - added timout argument.
+
 0.04  Fri Jun  7 14:12:18 CEST 2013
 	- Fixed density bug.
 
diff --git a/FreeContact.xsp b/FreeContact.xsp
index 791a6a6..76bf990 100644
--- a/FreeContact.xsp
+++ b/FreeContact.xsp
@@ -41,7 +41,7 @@ get_ps_psicov_sd()
 
 %{
 cont_res_t
-predictor::_run( __ali, __cp, __dens, __gapth, __mincontsep, __pseudocnt, __pscnt_weight, __estimate_ivcov, __shrink_lambda, __cov20, __gap_incovm, __vecw, __rho, __num_threads = 0, __timing = NULL )
+predictor::_run( __ali, __cp, __dens, __gapth, __mincontsep, __pseudocnt, __pscnt_weight, __estimate_ivcov, __shrink_lambda, __cov20, __gap_incovm, __vecw, __rho, __num_threads = 0, __icme_timeout = 1800, __timing = NULL )
     ali_t& __ali
     double __cp
     double __dens
@@ -56,13 +56,18 @@ predictor::_run( __ali, __cp, __dens, __gapth, __mincontsep, __pseudocnt, __pscn
     bool __vecw
     double __rho
     int __num_threads
+    time_t __icme_timeout
     time_res_t* __timing
   PREINIT:
     time_res_t timing;
   CODE:
     try {
-      if(items>=16 && SvROK(ST(15)) && SvTYPE(SvRV(ST(15))) == SVt_PVHV) __timing = &timing;
-      RETVAL = THIS->run( __ali, __cp, __dens, __gapth, __mincontsep, __pseudocnt, __pscnt_weight, __estimate_ivcov, __shrink_lambda, __cov20, __gap_incovm, __vecw, __rho, __num_threads, __timing );
+      if(items>=17 && SvROK(ST(16)) && SvTYPE(SvRV(ST(16))) == SVt_PVHV) __timing = &timing;
+      RETVAL = THIS->run( __ali, __cp, __dens, __gapth, __mincontsep, __pseudocnt, __pscnt_weight, __estimate_ivcov, __shrink_lambda, __cov20, __gap_incovm, __vecw, __rho, __num_threads, __icme_timeout, __timing );
+    }
+    catch (freecontact::icme_timeout_error& e)
+    {
+      croak("Caught FreeContact timeout exception: %s", e.what());
     }
     catch (std::exception& e) {
       croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
diff --git a/META.yml b/META.yml
index b440cbe..48f94f2 100644
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               FreeContact
-version:            0.04
+version:            0.05
 abstract:           fast protein contact predictor
 author:
     - Laszlo Kajan <lkajan at rostlab.org>
diff --git a/Makefile.PL b/Makefile.PL
index ecae2ac..d12c4ce 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -16,7 +16,7 @@ WriteMakefile(
     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
       (ABSTRACT_FROM  => 'lib/FreeContact.pm',
        AUTHOR         => 'Laszlo Kajan <lkajan at rostlab.org>') : ()),
-    LIBS              => ['-lfreecontact '],
+    LIBS              => ['-lfreecontact'],
     DEFINE            => '', # e.g., '-DHAVE_SOMETHING'
     INC               => '-I.',
     OBJECT            => '$(O_FILES)',
diff --git a/lib/FreeContact.pm b/lib/FreeContact.pm
index 730e4c3..c5ec6c2 100644
--- a/lib/FreeContact.pm
+++ b/lib/FreeContact.pm
@@ -35,7 +35,7 @@ our @EXPORT = qw(
 	
 );
 
-our $VERSION = '0.04';
+our $VERSION = '0.05';
 
 require XSLoader;
 XSLoader::load('FreeContact', $VERSION);
@@ -60,7 +60,7 @@ sub                 FreeContact::Predictor::run
         $args{clustpc}, $args{density}, $args{gapth}, $args{mincontsep},
         $args{pseudocnt}, $args{pscnt_weight}, $args{estimate_ivcov}, $args{shrink_lambda},
         $args{cov20}, $args{gap_incovm}, $args{veczw}, $args{rho},
-        $args{num_threads} || 0, $args{timing}
+        $args{num_threads} || 0, $args{icme_timeout} || 1800, $args{timing}
     );
 }
 
@@ -143,7 +143,7 @@ Creates an "FreeContact::Predictor".
 =item run( ali => I<[]>, clustpc => dbl, density => dbl, gapth => dbl, mincontsep => uint,
     pseudocnt => dbl, pscnt_weight => dbl, estimate_ivcov => bool, shrink_lambda => dbl,
     cov20 => bool, gap_incovm => bool, veczw => bool, rho => dbl,
-    [num_threads => int], [timing => I<{}>] )
+    [num_threads => int], [icme_timeout => int], [timing => I<{}>] )
 
 Defaults for the arguments are obtained with get_ps_evfold().
 
@@ -156,6 +156,14 @@ row must hold the query, with no gaps.
 
 =item TODO
 
+=item icme_timeout
+
+Inverse covariance matrix estimation timeout in seconds. Default: 1800.
+
+The estimation sometimes gets stuck. If the timeout is reached, the run()
+method dies with "Caught FreeContact timeout exception: ...". You can catch
+this exception and handle it as needed, e.g. by setting a higher B<rho> value.
+
 =item num_threads
 
 Number of OpenMP threads to use. If unset, all CPUs are used.
diff --git a/t/02test.t b/t/02test.t
index 6c30f3a..13b3f17 100644
--- a/t/02test.t
+++ b/t/02test.t
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 
 use Scalar::Util 'reftype';
-use Test::More tests => 7;
+use Test::More tests => 8;
 BEGIN { use_ok('FreeContact') };
 
 # /usr/share/doc/libextutils-xspp-perl/examples/Object-WithIntAndString/t/02test.t
@@ -25,7 +25,6 @@ sub check_obj {
     my @aln = <EXAMPLE>; chomp(@aln);
     close(EXAMPLE);
 
-    my %test_parset = FreeContact::get_ps_evfold();
     my $num_threads = 1; # test will not work with 0
     my $timing = {};
 
@@ -36,6 +35,12 @@ sub check_obj {
     ok($timing->{num_threads} == $num_threads, "timing results test");
 
     #use Data::Dumper; warn(Dumper($timing));
+
+    my %test_parset = FreeContact::get_ps_psicov();
+    eval {
+        $res = FreeContact::Predictor->new(dbg => 1)->run(%test_parset, ali => \@aln, num_threads => $num_threads, icme_timeout => 2, timing => $timing);
+    };
+    like($@, qr/^Caught FreeContact timeout exception:/);
 }
 
 # vim:et:ts=4:ai:

-- 
Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/libfreecontact-perl.git



More information about the debian-med-commit mailing list