[med-svn] r11985 - in trunk/packages/psipred/trunk/debian: . patches

Steffen Möller moeller at alioth.debian.org
Fri Aug 3 22:50:17 UTC 2012


Author: moeller
Date: 2012-08-03 22:50:17 +0000 (Fri, 03 Aug 2012)
New Revision: 11985

Added:
   trunk/packages/psipred/trunk/debian/patches/error_messages.patch
   trunk/packages/psipred/trunk/debian/psipred-data.links
Removed:
   trunk/packages/psipred/trunk/debian/psipred.links
Modified:
   trunk/packages/psipred/trunk/debian/README.source
   trunk/packages/psipred/trunk/debian/copyright
   trunk/packages/psipred/trunk/debian/patches/series
Log:
I-TASSER invokes psipred with its weights.dat4 file, which
throughs a format error. Now it throughs a more informative
error message. Sent upstream.
Added links to render /usr/share/psipred and /usr/lib/psipred
equal.


Modified: trunk/packages/psipred/trunk/debian/README.source
===================================================================
--- trunk/packages/psipred/trunk/debian/README.source	2012-08-03 15:18:05 UTC (rev 11984)
+++ trunk/packages/psipred/trunk/debian/README.source	2012-08-03 22:50:17 UTC (rev 11985)
@@ -10,4 +10,14 @@
 psipred/bin/psipred
 psipred/bin/pfilt
 
-Patches introduce a toplevel Makefile and adjust paths in the tcsh script.
+Patches:
+
+    Makefile.patch
+	introduce a toplevel Makefile
+
+    runpsipred.patch
+	adjust paths in the tcsh script.
+
+    error_messages.patch
+	extra effort was invested to improve error messages on files
+	that could not be opened.

Modified: trunk/packages/psipred/trunk/debian/copyright
===================================================================
--- trunk/packages/psipred/trunk/debian/copyright	2012-08-03 15:18:05 UTC (rev 11984)
+++ trunk/packages/psipred/trunk/debian/copyright	2012-08-03 22:50:17 UTC (rev 11985)
@@ -3,7 +3,7 @@
 Source: http://bioinfadmin.cs.ucl.ac.uk/downloads/psipred/
 
 Files: *
-Copyright: 1995-2012 David T. Jones, UCL, London
+Copyright: 1995-2012 David T. Jones, UCL, London <d.jones at cs.ucl.ac.uk>
 License: custom
  PLEASE READ THE FOLLOWING LICENSE AGREEMENT. BY USING THE PROGRAM YOU ARE
  ACKNOWLEDGING THE FACT THAT YOU AGREE TO THE TERMS OUTLINED IN THIS

Added: trunk/packages/psipred/trunk/debian/patches/error_messages.patch
===================================================================
--- trunk/packages/psipred/trunk/debian/patches/error_messages.patch	                        (rev 0)
+++ trunk/packages/psipred/trunk/debian/patches/error_messages.patch	2012-08-03 22:50:17 UTC (rev 11985)
@@ -0,0 +1,230 @@
+Index: psipred-3.3/src/sspred_avpred.c
+===================================================================
+--- psipred-3.3.orig/src/sspred_avpred.c	2012-05-30 03:04:45.000000000 +0200
++++ psipred-3.3/src/sspred_avpred.c	2012-08-04 00:30:12.877787305 +0200
+@@ -11,6 +11,7 @@
+ #include <math.h>
+ #include <ctype.h>
+ #include <time.h>
++#include <errno.h>
+ 
+ #include "ssdefs.h"
+ #include "sspred_net.h"
+@@ -78,14 +79,28 @@
+     double          t, chksum = 0.0;
+     FILE           *ifp;
+ 
+-    if (!(ifp = fopen(fname, "r")))
++    if (!(ifp = fopen(fname, "r"))) {
++        fprintf(stderr,"Failed to open file '%s'.\n",fname);
+ 	fail("Cannot open weight file!\n");
++    }
+ 
+     /* Load input units to hidden layer weights */
+     for (i = NUM_IN; i < NUM_IN + NUM_HID; i++)
+ 	for (j = fwt_to[i]; j < lwt_to[i]; j++)
+ 	{
+-	    fscanf(ifp, "%lf", &t);
++	    errno=0;
++	    int n=fscanf(ifp, "%lf", &t);
++	    if (n != 1) {
++                fprintf(stderr,"avpred: Problem while parsing hidden layer weights of '%s' with %d<=i=%d<%d, %d<=j=%d<%d.\n",
++		               fname,NUM_IN,i,NUM_IN+NUM+HID,fwt_to[i],j,lwt_to[i]);
++                if (0==errno) {
++                     perror("fscanf");
++                }
++                else {
++                     fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++                }
++	        fail("Weight file read error!");
++	    }
+ 	    weight[i][j] = t;
+ 	    chksum += t*t;
+ 	}
+@@ -94,7 +109,17 @@
+     for (i = NUM_IN + NUM_HID; i < TOTAL; i++)
+ 	for (j = fwt_to[i]; j < lwt_to[i]; j++)
+ 	{
+-	    fscanf(ifp, "%lf", &t);
++	    int n=fscanf(ifp, "%lf", &t);
++	    if (n != 1) {
++                fprintf(stderr,"Problem while parsing hidden layer to output unit weights of s '%s' with i=%d,j=%d.\n",fname,i,j);
++                if (0==errno) {
++                     perror("fscanf");
++                }
++                else {
++                     fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++                }
++	        fail("Weight file read error!");
++	    }
+ 	    weight[i][j] = t;
+ 	    chksum += t*t;
+ 	}
+@@ -102,14 +127,38 @@
+     /* Load bias weights */
+     for (j = NUM_IN; j < TOTAL; j++)
+     {
+-	fscanf(ifp, "%lf", &t);
++	int n=fscanf(ifp, "%lf", &t);
++	if (n != 1) {
++            fprintf(stderr,"Problem while parsing bias weights of s '%s' with j=%d.\n",fname,j);
++            if (0==errno) {
++                 perror("fscanf");
++            }
++            else {
++                 fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++            }
++	    fail("Weight file read error!");
++	}
+ 	bias[j] = t;
+ 	chksum += t*t;
+     }
+ 
+     /* Read expected checksum at end of file */
+-    if (fscanf(ifp, "%lf", &t) != 1 || ferror(ifp))
++    errno=0;
++    int m=fscanf(ifp, "%lf", &t);
++    if (m != 1 || ferror(ifp)) {
++        if (ferror(ifp)) {
++	    fprintf(stderr,"Spotted error with file '%s'.\n",fname);
++	}
++	else {
++	    if (0==errno) {
++	         perror("fscanf");
++	    }
++	    else {
++	         fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++	    }
++        }
+ 	fail("Weight file read error!");
++    }
+ 
+     fclose(ifp);
+ 
+Index: psipred-3.3/src/sspred_hmulti.c
+===================================================================
+--- psipred-3.3.orig/src/sspred_hmulti.c	2012-05-30 03:04:45.000000000 +0200
++++ psipred-3.3/src/sspred_hmulti.c	2012-08-04 00:29:37.002269954 +0200
+@@ -11,6 +11,7 @@
+ #include <math.h>
+ #include <ctype.h>
+ #include <time.h>
++#include <errno.h>
+ 
+ #include "ssdefs.h"
+ #include "sspred_net2.h"
+@@ -81,14 +82,27 @@
+     double          t, chksum = 0.0;
+     FILE           *ifp;
+ 
+-    if (!(ifp = fopen(fname, "r")))
++    if (!(ifp = fopen(fname, "r"))) {
++	fprintf(stderr,"Failed to open file '%s'.\n",fname);
+ 	fail("Cannot open weight file!\n");
++    }
+ 
+     /* Load input units to hidden layer weights */
+     for (i = NUM_IN; i < NUM_IN + NUM_HID; i++)
+ 	for (j = fwt_to[i]; j < lwt_to[i]; j++)
+ 	{
+-	    fscanf(ifp, "%lf", &t);
++	    int n=fscanf(ifp, "%lf", &t);
++	    if (n != 1) {
++                fprintf(stderr,"hmultic: Problem while parsing hidden layer weights of '%s' with %d<=i=%d<%d, %d<=j=%d<%d.\n",
++		               fname,NUM_IN,i,NUM_IN+NUM+HID,fwt_to[i],j,lwt_to[i]);
++                if (0==errno) {
++                     perror("fscanf");
++                }
++                else {
++                     fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++                }
++	        fail("Weight file read error!");
++	    }
+ 	    weight[i][j] = t;
+ 	    chksum += t*t;
+ 	}
+@@ -97,7 +111,17 @@
+     for (i = NUM_IN + NUM_HID; i < TOTAL; i++)
+ 	for (j = fwt_to[i]; j < lwt_to[i]; j++)
+ 	{
+-	    fscanf(ifp, "%lf", &t);
++	    int n=fscanf(ifp, "%lf", &t);
++	    if (n != 1) {
++                fprintf(stderr,"Problem while parsing hidden layer to output unit weights of s '%s' with i=%d,j=%d.\n",fname,i,j);
++                if (0==errno) {
++                     perror("fscanf");
++                }
++                else {
++                     fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++                }
++	        fail("Weight file read error!");
++	    }
+ 	    weight[i][j] = t;
+ 	    chksum += t*t;
+ 	}
+@@ -105,14 +129,38 @@
+     /* Load bias weights */
+     for (j = NUM_IN; j < TOTAL; j++)
+     {
+-	fscanf(ifp, "%lf", &t);
++	int n=fscanf(ifp, "%lf", &t);
++	if (n != 1) {
++            fprintf(stderr,"Problem while parsing bias weights of s '%s' with j=%d.\n",fname,j);
++            if (0==errno) {
++                 perror("fscanf");
++            }
++            else {
++                 fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++            }
++	    fail("Weight file read error!");
++	}
+ 	bias[j] = t;
+ 	chksum += t*t;
+     }
+ 
+     /* Read expected checksum at end of file */
+-    if (fscanf(ifp, "%lf", &t) != 1 || ferror(ifp))
+-	fail("Weight file read error!");
++    int m = fscanf(ifp, "%lf", &t);
++    if (m != 1 || ferror(ifp)) {
++        if (ferror(ifp)) {
++	    fprintf(stderr,"Spotted error with file '%s'.\n",fname);
++	}
++	else {
++            fprintf(stderr,"Problem while parsing expected checksum at end of file '%s'.\n",fname);
++            if (0==errno)     {
++                perror("fscanf");
++            }
++            else {
++                fprintf(stderr,"No matching characters while parsing '%s'. ",fname);
++            }
++	    fail("Weight file read error!");
++	}
++    }
+ 
+     fclose(ifp);
+ 
+@@ -167,8 +215,10 @@
+     FILE *ofp;
+ 
+     ofp = fopen(outname, "w");
+-    if (!ofp)
++    if (!ofp) {
++      fprintf(stderr,"Failed to open file '%s'.\n",outname);
+       fail("Cannot open output file!");
++    }
+ 
+     fputs("# PSIPRED VFORMAT (PSIPRED V3.3)\n\n", ofp);
+     
+@@ -356,8 +406,10 @@
+     for (i=6; i<argc; i++)
+     {
+ 	ifp = fopen(argv[i], "r");
+-	if (!ifp)
++	if (!ifp) {
++            fprintf(stderr,"Failed to open file '%s'.\n",argv[i]);
+ 	    fail("Cannot open input file!");
++	}
+ 	seqlen = getss(ifp);
+ 	fclose(ifp);
+     }

Modified: trunk/packages/psipred/trunk/debian/patches/series
===================================================================
--- trunk/packages/psipred/trunk/debian/patches/series	2012-08-03 15:18:05 UTC (rev 11984)
+++ trunk/packages/psipred/trunk/debian/patches/series	2012-08-03 22:50:17 UTC (rev 11985)
@@ -1,2 +1,3 @@
 runpsipred.patch
 Makefile.patch
+error_messages.patch

Copied: trunk/packages/psipred/trunk/debian/psipred-data.links (from rev 11983, trunk/packages/psipred/trunk/debian/psipred.links)
===================================================================
--- trunk/packages/psipred/trunk/debian/psipred-data.links	                        (rev 0)
+++ trunk/packages/psipred/trunk/debian/psipred-data.links	2012-08-03 22:50:17 UTC (rev 11985)
@@ -0,0 +1,2 @@
+usr/lib/psipred/bin	usr/share/psipred/bin
+usr/share/psipred/data	usr/lib/psipred/data

Deleted: trunk/packages/psipred/trunk/debian/psipred.links
===================================================================
--- trunk/packages/psipred/trunk/debian/psipred.links	2012-08-03 15:18:05 UTC (rev 11984)
+++ trunk/packages/psipred/trunk/debian/psipred.links	2012-08-03 22:50:17 UTC (rev 11985)
@@ -1 +0,0 @@
-usr/lib/psipred/bin	usr/share/psipred/bin




More information about the debian-med-commit mailing list