37 int verbose=0;
if(status!=NULL) verbose=status->
verbose;
42 if(verbose>0) {printf(
"%s()\n", __func__); fflush(stdout);}
54 if(strcasecmp(csv->
c[0].
content,
"directory")!=0 ||
55 strcasecmp(csv->
c[11].
content,
"group")!=0)
66 for(
int ri=1; ri<csv->
row_nr; ri++) {
67 cptr=
csvCell(csv, ri, 2);
if(cptr==NULL)
continue;
68 if(verbose>50) printf(
" '%s'\n", cptr);
69 cptr2=strchr(cptr,
'(');
if(cptr2==NULL)
continue;
70 fn=atoi(cptr2+1);
if(fn>maxFrameNr) maxFrameNr=fn;
73 if(verbose>1) printf(
"maxFrameNr := %d\n", maxFrameNr);
79 int maxTacNr=(csv->
row_nr-1)/maxFrameNr;
80 if(verbose>1) printf(
"maxTacNr := %d\n", maxTacNr);
88 statusSet(status, __func__, __FILE__, __LINE__, ret);
94 for(
int i=1; i<csv->
row_nr; i++) {
96 char *cnum, *cslice, *cmean, *cpixel, *cgroup;
97 cnum=
csvCell(csv, i, 2);
if(cnum==NULL)
continue;
98 cslice=
csvCell(csv, i, 3);
if(cslice==NULL)
continue;
99 cmean=
csvCell(csv, i, 4);
if(cmean==NULL)
continue;
100 cpixel=
csvCell(csv, i, 9);
if(cpixel==NULL)
continue;
101 cgroup=
csvCell(csv, i, 11);
if(cgroup==NULL)
continue;
105 if(ret!=0) {slice=-1; ret=0;}
107 if(slice>0 && grouponly!=0)
continue;
109 char *cptr=strchr(cnum,
'(');
if(cptr==NULL)
continue;
110 int fn=atoi(cptr+1);
if(fn<1 || fn>maxFrameNr) {ret=1;
break;}
114 if(
strnlen(cgroup, 2)<1) {ret=2;
break;}
118 int roinr=atoi(cnum);
if(roinr<1) {ret=3;
break;}
121 sprintf(tacname,
"%s_roi%d__pl%d", cgroup, roinr, slice);
124 sprintf(tacname,
"roi%d__pl%d", roinr, slice);
129 ret=
atoiCheck(cpixel, &pxlnr);
if(ret) {pxlnr=0; ret=0;}
132 if(verbose>20) printf(
"tacname='%s' pxlnr=%d fn=%d conc=%g\n", tacname, pxlnr, fn, conc);
135 for(ri=0; ri<tac->
tacNr; ri++) {
141 if(ri>=maxTacNr) {ret=4;
break;}
143 tac->
c[ri].
y[fn-1]=conc;
146 strcpy(tac->
c[ri].
name, tacname);
147 tac->
c[ri].
size=(double)pxlnr;
154 if(verbose>1) printf(
" error %d\n", ret);
166 for(
int i=0; i<tac->
sampleNr; i++) tac->
x[i]=tac->
x1[i]=tac->
x2[i]=0.0;