--- imach/src/imach.c 2014/06/18 15:51:14 1.149
+++ imach/src/imach.c 2014/08/25 18:32:34 1.155
@@ -1,6 +1,27 @@
-/* $Id: imach.c,v 1.149 2014/06/18 15:51:14 brouard Exp $
+/* $Id: imach.c,v 1.155 2014/08/25 18:32:34 brouard Exp $
$State: Exp $
$Log: imach.c,v $
+ Revision 1.155 2014/08/25 18:32:34 brouard
+ Summary: New compile, minor changes
+ Author: Brouard
+
+ Revision 1.154 2014/06/20 17:32:08 brouard
+ Summary: Outputs now all graphs of convergence to period prevalence
+
+ Revision 1.153 2014/06/20 16:45:46 brouard
+ Summary: If 3 live state, convergence to period prevalence on same graph
+ Author: Brouard
+
+ Revision 1.152 2014/06/18 17:54:09 brouard
+ Summary: open browser, use gnuplot on same dir than imach if not found in the path
+
+ Revision 1.151 2014/06/18 16:43:30 brouard
+ *** empty log message ***
+
+ Revision 1.150 2014/06/18 16:42:35 brouard
+ Summary: If gnuplot is not in the path try on same directory than imach binary (OSX)
+ Author: brouard
+
Revision 1.149 2014/06/18 15:51:14 brouard
Summary: Some fixes in parameter files errors
Author: Nicolas Brouard
@@ -496,11 +517,11 @@ extern int errno;
#define ODIRSEPARATOR '/'
#endif
-/* $Id: imach.c,v 1.149 2014/06/18 15:51:14 brouard Exp $ */
+/* $Id: imach.c,v 1.155 2014/08/25 18:32:34 brouard Exp $ */
/* $State: Exp $ */
-char version[]="Imach version 0.98nT, January 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)";
-char fullversion[]="$Revision: 1.149 $ $Date: 2014/06/18 15:51:14 $";
+char version[]="Imach version 0.98nV, August 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)";
+char fullversion[]="$Revision: 1.155 $ $Date: 2014/08/25 18:32:34 $";
char strstart[80];
char optionfilext[10], optionfilefiname[FILENAMELENGTH];
int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */
@@ -3878,13 +3899,13 @@ fprintf(fichtm," \n
- Graphs
before but expressed in per year i.e. quasi incidences if stepm is small and probabilities too: %s%d_2.png
\
",stepm,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1);
/* Period (stable) prevalence in each health state */
- for(cpt=1; cpt- Period (stable) prevalence in each health state : %s%d_%d.png
\
-",subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1);
+ for(cpt=1; cpt<=nlstate;cpt++){
+ fprintf(fichtm,"
- Convergence from each state (1 to %d) to period (stable) prevalence in state %d %s%d_%d.png
\
+",nlstate, cpt, subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1);
}
for(cpt=1; cpt<=nlstate;cpt++) {
- fprintf(fichtm,"\n
- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies : %s%d%d.png
\
-",cpt,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1);
+ fprintf(fichtm,"\n
- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) : %s%d%d.png
\
+",cpt,nlstate,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1);
}
} /* end i1 */
}/* End k1 */
@@ -3980,6 +4001,7 @@ void printinggnuplot(char fileres[], cha
strcpy(dirfileres,optionfilefiname);
strcpy(optfileres,"vpl");
/* 1eme*/
+ fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'vpl' files\n");
for (cpt=1; cpt<= nlstate ; cpt ++) {
for (k1=1; k1<= m ; k1 ++) { /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */
fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"v"),cpt,k1);
@@ -4007,7 +4029,7 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u
}
}
/*2 eme*/
-
+ fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files\n");
for (k1=1; k1<= m ; k1 ++) {
fprintf(ficgp,"\nset out \"%s%d.png\" \n",subdirf2(optionfilefiname,"e"),k1);
fprintf(ficgp,"set ylabel \"Years\" \nset ter png small size 320, 240\nplot [%.f:%.f] ",ageminpar,fage);
@@ -4064,28 +4086,29 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u
}
/* CV preval stable (period) */
- for (k1=1; k1<= m ; k1 ++) {
- for (cpt=1; cpt<=nlstate ; cpt ++) {
+ for (k1=1; k1<= m ; k1 ++) { /* For each multivariate if any */
+ for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */
k=3;
+ fprintf(ficgp,"\n#\n#\n#CV preval stable (period): 'pij' files, cov=%d state=%d",k1, cpt);
fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"p"),cpt,k1);
fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\
set ter png small size 320, 240\n\
unset log y\n\
-plot [%.f:%.f] \"%s\" u ($1==%d ? ($3):1/0):($%d/($%d",ageminpar,agemaxpar,subdirf2(fileres,"pij"),k1,k+cpt+1,k+1);
-
- for (i=1; i< nlstate ; i ++)
- fprintf(ficgp,"+$%d",k+i+1);
- fprintf(ficgp,")) t\"prev(%d,%d)\" w l",cpt,cpt+1);
-
- l=3+(nlstate+ndeath)*cpt;
- fprintf(ficgp,",\"%s\" u ($1==%d ? ($3):1/0):($%d/($%d",subdirf2(fileres,"pij"),k1,l+cpt+1,l+1);
- for (i=1; i< nlstate ; i ++) {
- l=3+(nlstate+ndeath)*cpt;
- fprintf(ficgp,"+$%d",l+i+1);
- }
- fprintf(ficgp,")) t\"prev(%d,%d)\" w l\n",cpt+1,cpt+1);
- }
- }
+plot [%.f:%.f] ", ageminpar, agemaxpar);
+ for (i=1; i<= nlstate ; i ++){
+ if(i==1)
+ fprintf(ficgp,"\"%s\"",subdirf2(fileres,"pij"));
+ else
+ fprintf(ficgp,", '' ");
+ l=(nlstate+ndeath)*(i-1)+1;
+ fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l);
+ for (j=1; j<= (nlstate-1) ; j ++)
+ fprintf(ficgp,"+$%d",k+l+j);
+ fprintf(ficgp,")) t \"prev(%d,%d)\" w l",i,cpt);
+ } /* nlstate */
+ fprintf(ficgp,"\n");
+ } /* end cpt state*/
+ } /* end covariate */
/* proba elementaires */
for(i=1,jk=1; i <=nlstate; i++){
@@ -5389,8 +5412,8 @@ int main(int argc, char *argv[])
/*---------arguments file --------*/
if((ficpar=fopen(optionfile,"r"))==NULL) {
- printf("Problem with optionfile %s with errno=%s\n",optionfile,strerror(errno));
- fprintf(ficlog,"Problem with optionfile %s with errno=%s\n",optionfile,strerror(errno));
+ printf("Problem with optionfile '%s' with errno='%s'\n",optionfile,strerror(errno));
+ fprintf(ficlog,"Problem with optionfile '%s' with errno='%s'\n",optionfile,strerror(errno));
fflush(ficlog);
/* goto end; */
exit(70);
@@ -6644,9 +6667,9 @@ Interval (in months) between two waves:
sprintf(plotcmd,"\"%sgnuplot.exe\"",pathimach);
#endif
if(!stat(plotcmd,&info)){
- printf("Error gnuplot program not found: %s\n",plotcmd);fflush(stdout);
+ printf("Error or gnuplot program not found: %s\n",plotcmd);fflush(stdout);
if(!stat(getenv("GNUPLOTBIN"),&info)){
- printf("Error gnuplot program not found: %s Environment GNUPLOTBIN not set.\n",plotcmd);fflush(stdout);
+ printf("Error or gnuplot program not found: %s Environment GNUPLOTBIN not set.\n",plotcmd);fflush(stdout);
}else
strcpy(pplotcmd,plotcmd);
#ifdef UNIX
@@ -6663,17 +6686,26 @@ Interval (in months) between two waves:
printf("Starting graphs with: %s\n",plotcmd);fflush(stdout);
if((outcmd=system(plotcmd)) != 0){
- printf("\n Problem with gnuplot\n");
+ printf("gnuplot command might not be in your path: %s, err=%d\n", plotcmd, outcmd);
+ printf("\n Trying if gnuplot resides on the same directory that IMaCh\n");
+ sprintf(plotcmd,"%sgnuplot %s", pathimach, optionfilegnuplot);
+ if((outcmd=system(plotcmd)) != 0)
+ printf("\n Still a problem with gnuplot command %s, err=%d\n", plotcmd, outcmd);
}
- printf(" Wait...");
+ printf(" Successul, please wait...");
while (z[0] != 'q') {
/* chdir(path); */
- printf("\nType e to edit output files, g to graph again and q for exiting: ");
+ printf("\nType e to edit results with your browser, g to graph again and q for exit: ");
scanf("%s",z);
/* if (z[0] == 'c') system("./imach"); */
if (z[0] == 'e') {
- printf("Starting browser with: %s",optionfilehtm);fflush(stdout);
- system(optionfilehtm);
+#ifdef OSX
+ sprintf(pplotcmd, "open %s", optionfilehtm);
+#else
+ sprintf(pplotcmd, "%s", optionfilehtm);
+#endif
+ printf("Starting browser with: %s",pplotcmd);fflush(stdout);
+ system(pplotcmd);
}
else if (z[0] == 'g') system(plotcmd);
else if (z[0] == 'q') exit(0);