AMBER Archive (2008)Subject: Re: AMBER: ptraj and netcdf with AmberTools1.2 ?
From: Dave Rogers (wantye_at_gmail.com)
Date: Wed Nov 05 2008 - 15:34:21 CST
> Hi there,
>
> When updating from AmberTools 1.0 to 1.2 I discovered I could no
> longer read my binary trajectory files. Double checking this shows
> that compiling AT-1.0 ptraj works fine with respect to this, but
> AT-1.2 results in "could not open file".
>
> I use "./configure_at gcc" in both cases. I've tried this on two
> separate machines, with the same result on both. It seems to me that
> NetCDF compiles in both cases, and "make check" in
> $AMBERHOME/src/netcdf/src works fine as well in both cases (for AT-1.0
> and AT-1.2). Writing a binary trajectory file works on the other hand
> just fine (with AT1.2).
> Any clues ? Is it just me (or my settings), or is this a common problem?
> Thanks,
>
> Lars Skjaerven
> University of Bergen, Norway
I recently discivered this problem too. Output looked like so:
vvvvvvvvvvvvv output vvvvvvvvvvvvv
PTRAJ: Processing input from "STDIN" ...
trajin mdcrd
PTRAJ: trajin mdcrd
Checking coordinates: mdcrd
trajin mdcrd ignored; could not open file (mdcrd)
^^^^^^^^^^^^^ output ^^^^^^^^^^^^^
grepping for "could not open file" in the ptraj directory showed
ptraj.c as the culprit:
------- ptraj.c lines 2067-2093 (GNU GPL >=2) --------
/*
* Check to see if the file specified by "filename" is a NetCDF file;
* if it is NOT open the file in the regular manner...
*/
#ifdef BINTRAJ
err = nc_open(filename, NC_NOWRITE, &ncid);
if (err == NC_NOERR) {
/*
* this appears to be a NetCDF file so initialize necessary data
*/
type = COORD_AMBER_NETCDF;
NCInfo = (netcdfTrajectoryInfo *)
safe_malloc(sizeof(netcdfTrajectoryInfo));
INITIALIZE_netcdfTrajectoryInfo( NCInfo );
NCInfo->ncid = ncid;
} else
#endif
err = openFile(&fp, filename, "r");
if ( err == 0 ) {
fprintf(stdout, "trajin %s ignored; could not open file (%s)\n",
filename, filename);
safe_free(trajInfo->filename);
safe_free(trajInfo);
return NULL;
}
--------------------------
This bit of code fails if NC_NOERR is zero!
So I added a block around the whole section after the #endif
patch (apply with)
patch ptraj.c <<EOF
--- old/ptraj.c 2008-07-16 19:40:29.000000000 -0400
+++ ptraj.c 2008-11-05 16:14:08.000000000 -0500
@@ -2082,5 +2082,5 @@
} else
#endif
-
+ {
err = openFile(&fp, filename, "r");
if ( err == 0 ) {
@@ -2090,5 +2090,5 @@
safe_free(trajInfo);
return NULL;
-
+ }
}
EOF
~ David Rogers
PhD Candidate
Dr. Thomas L. Beck Lab
University of Cincinnati
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
to majordomo_at_scripps.edu
|