Doxygen Source Code Documentation
plug_deconvolve.c File Reference
#include "afni.h"#include "matrix.h"#include "Deconvolve.c"Go to the source code of this file.
Defines | |
| #define | PROGRAM_NAME "plug_deconvolve" |
| #define | PROGRAM_AUTHOR "B. Douglas Ward" |
| #define | PROGRAM_INITIAL "09 September 1998" |
| #define | PROGRAM_LATEST "18 March 2003" |
| #define | MAX_NAME_LENGTH THD_MAX_NAME |
| #define | MAX_XVARS 250 |
| #define | MAX_STIMTS 20 |
| #define | MAX_GLT 20 |
| #define | MAX_CONSTR 20 |
| #define | RA_error DC_error |
| #define | NBASE 7 |
Functions | |
| void | DC_error (char *message) |
| char * | DC_main (PLUGIN_interface *) |
| void | DC_Fit (int nt, double to, double dt, float *vec, char **label) |
| void | DC_Err (int nt, double to, double dt, float *vec, char **label) |
| void | DC_IRF (int nt, double to, double dt, float *vec, char **label) |
| int | calculate_results () |
| void | initialize_options () |
| void | reset_options () |
| DEFINE_PLUGIN_PROTOTYPE PLUGIN_interface * | PLUGIN_init (int ncall) |
| void | show_options () |
| int | calculate_results (int nt, double dt, float *vec, int *NN, int *nfit, float *fit, char **label, float **fitts, float **errts) |
Variables | |
| char | helpstring [] |
| char * | baseline_strings [NBASE] |
| char * | false_or_true [2] = {"False", "True"} |
| PLUGIN_interface * | global_plint = NULL |
| int | plug_polort |
| int | plug_p |
| int | plug_q |
| int | plug_qp |
| int | plug_NFirst |
| int | plug_NLast |
| int | plug_IRF |
| int | initialize |
| int | prev_nt |
| char * | IRF_label |
| char * | concat_label |
| int | concat_column |
| int | num_blocks |
| int * | block_list |
| int | num_censor |
| char * | censor_label |
| int | censor_column |
| float * | censor_array |
| int | censor_length |
| int * | good_list |
| int | num_stimts |
| int | stim_base [MAX_STIMTS] |
| int | stim_column [MAX_STIMTS] |
| float * | stimulus [MAX_STIMTS] |
| int | stim_length [MAX_STIMTS] |
| int | min_lag [MAX_STIMTS] |
| int | max_lag [MAX_STIMTS] |
| int | nptr [MAX_STIMTS] |
| char * | stim_label [MAX_STIMTS] |
| matrix | xdata |
| matrix | x_full |
| matrix | xtxinv_full |
| matrix | xtxinvxt_full |
| matrix | x_base |
| matrix | xtxinvxt_base |
| matrix | x_rdcd [MAX_STIMTS] |
| matrix | xtxinvxt_rdcd [MAX_STIMTS] |
| int | glt_num |
| char * | glt_label [MAX_GLT] |
| int | glt_rows [MAX_GLT] |
| char * | glt_filename [MAX_GLT] |
| matrix | cxtxinvct [MAX_GLT] |
| matrix | glt_cmat [MAX_GLT] |
| matrix | glt_amat [MAX_GLT] |
| vector | glt_coef [MAX_GLT] |
| vector | glt_tcoef [MAX_GLT] |
Define Documentation
|
|
Definition at line 153 of file plug_deconvolve.c. Referenced by PLUGIN_init(). |
|
|
Definition at line 152 of file plug_deconvolve.c. Referenced by calculate_results(), initialize_options(), PLUGIN_init(), and reset_options(). |
|
|
Definition at line 149 of file plug_deconvolve.c. Referenced by initialize_options(). |
|
|
Definition at line 151 of file plug_deconvolve.c. Referenced by calculate_results(), initialize_options(), PLUGIN_init(), and reset_options(). |
|
|
Definition at line 150 of file plug_deconvolve.c. |
|
|
Definition at line 217 of file plug_deconvolve.c. Referenced by DC_main(), and PLUGIN_init(). |
|
|
Definition at line 140 of file plug_deconvolve.c. Referenced by show_options(). |
|
|
Definition at line 141 of file plug_deconvolve.c. Referenced by show_options(). |
|
|
Definition at line 142 of file plug_deconvolve.c. Referenced by show_options(). |
|
|
Definition at line 139 of file plug_deconvolve.c. Referenced by DC_error(), and show_options(). |
|
|
Definition at line 155 of file plug_deconvolve.c. |
Function Documentation
|
||||||||||||||||||||||||||||||||||||||||
|
Definition at line 961 of file plug_deconvolve.c. References block_list, censor_array, censor_length, DC_error(), dt, vector::elts, fit, glt_analysis(), glt_label, glt_num, glt_rows, good_list, i, init_glt_analysis(), init_indep_var_matrix(), init_regression_analysis(), initialize, malloc, MAX_GLT, max_lag, MAX_STIMTS, min_lag, MTEST, nptr, num_blocks, num_censor, num_stimts, p, plug_NFirst, plug_NLast, plug_p, plug_polort, plug_q, plug_qp, prev_nt, q, regression_analysis(), report_results(), stim_base, stim_label, stim_length, stimulus, vec, vector_create(), vector_destroy(), vector_initialize(), and vector_to_array().
00974 {
00975 float * ts_array; /* array of measured data for one voxel */
00976
00977 int N; /* number of usable data points */
00978 int p; /* number of parameters in the full model */
00979 int q; /* number of parameters in the baseline model */
00980 int qp; /* number of poly. trend baseline parameters */
00981 int m; /* parameter index */
00982 int n; /* data point index */
00983
00984 vector coef; /* regression parameters */
00985 vector scoef; /* std. devs. for regression parameters */
00986 vector tcoef; /* t-statistics for regression parameters */
00987 float fpart[MAX_STIMTS]; /* partial F-statistics for the stimuli */
00988 float rpart[MAX_STIMTS]; /* partial R^2 stats. for the stimuli */
00989 float ffull; /* full model F-statistic */
00990 float rfull; /* full model R^2 statistic */
00991 float mse; /* mean square error from full model */
00992
00993 vector y; /* vector of measured data */
00994
00995 int NFirst; /* first image from input 3d+time dataset to use */
00996 int NLast; /* last image from input 3d+time dataset to use */
00997 int i, it; /* data point index */
00998 int is; /* stimulus index */
00999
01000 float rms_min = 0.0; /* minimum variation in data to fit full model */
01001 int ok; /* flag for successful matrix calculation */
01002 int novar; /* flag for insufficient variation in data */
01003 float fglt[MAX_GLT]; /* F-statistics for the general linear tests */
01004 float rglt[MAX_GLT]; /* R^2 statistics for the general linear tests */
01005
01006 int ib; /* block (run) index */
01007 int irb; /* time index relative to start of block (run) */
01008
01009
01010 /*----- Check initialization flag -----*/
01011 if (! initialize) return (0);
01012
01013
01014 /*----- Initialize vectors -----*/
01015 vector_initialize (&coef);
01016 vector_initialize (&scoef);
01017 vector_initialize (&tcoef);
01018 vector_initialize (&y);
01019
01020
01021 /*----- Initialize local variables -----*/
01022 qp = plug_qp;
01023 q = plug_q;
01024 p = plug_p;
01025 *nfit = p;
01026
01027
01028 /*----- Allocate memory for fitted time series and residuals -----*/
01029 *fitts = (float *) malloc (sizeof(float) * nt); MTEST (*fitts);
01030 *errts = (float *) malloc (sizeof(float) * nt); MTEST (*errts);
01031
01032
01033 /*----- Check length of censor array -----*/
01034 if ((num_censor != 0) && (censor_length < nt))
01035 {
01036 DC_error ("Input censor time series file is too short");
01037 return (0);
01038 }
01039
01040
01041 /*----- Check validity of concatenated runs list -----*/
01042 for (ib = 0; ib < num_blocks; ib++)
01043 if ((block_list[ib] < 0) || (block_list[ib] >= nt))
01044 {
01045 DC_error ("Invalid concatenated runs list");
01046 return (0);
01047 }
01048 if (num_blocks > 1)
01049 for (ib = 1; ib < num_blocks; ib++)
01050 if (block_list[ib] <= block_list[ib-1])
01051 {
01052 DC_error ("Invalid concatenated runs list");
01053 return (0);
01054 }
01055
01056
01057 /*----- Create list of good (usable) data points -----*/
01058 good_list = (int *) malloc (sizeof(int) * nt); MTEST (good_list);
01059 NFirst = plug_NFirst;
01060 if (NFirst < 0)
01061 for (is = 0; is < num_stimts; is++)
01062 if (NFirst < (max_lag[is]+nptr[is]-1)/nptr[is])
01063 NFirst = (max_lag[is]+nptr[is]-1)/nptr[is];
01064 NLast = plug_NLast;
01065
01066 N = 0;
01067 ib = 0;
01068 for (it = block_list[0]; it < nt; it++)
01069 {
01070 if (ib+1 < num_blocks)
01071 if (it >= block_list[ib+1]) ib++;
01072
01073 irb = it - block_list[ib];
01074
01075 if ((irb >= NFirst) && (irb <= NLast))
01076 if ((num_censor == 0) || (censor_array[it]))
01077 {
01078 good_list[N] = it;
01079 N++;
01080 }
01081 }
01082
01083 if (N == 0)
01084 {
01085 DC_error ("No usable time points?");
01086 return (0);
01087 }
01088 if (N <= p)
01089 {
01090 DC_error ("Insufficient time series data for deconvolution fit");
01091 return (0);
01092 }
01093
01094 *NN = N;
01095
01096
01097 /*----- Perform initialization only if something has changed -----*/
01098 if (nt == prev_nt)
01099 {
01100 ok = 1;
01101 }
01102 else
01103 {
01104 /*----- Initialize the independent variable matrix -----*/
01105 demean_base = (plug_polort >= 0) ;
01106 ok = init_indep_var_matrix (p, qp, plug_polort, nt, N, good_list,
01107 block_list, num_blocks, num_stimts, stimulus,
01108 stim_length, min_lag, max_lag, nptr, stim_base, &xdata);
01109
01110
01111 /*----- Initialization for the regression analysis -----*/
01112 if (ok)
01113 ok = init_regression_analysis (p, qp, num_stimts, stim_base, min_lag,
01114 max_lag, xdata, &x_full, &xtxinv_full, &xtxinvxt_full,
01115 &x_base, &xtxinvxt_base, x_rdcd, xtxinvxt_rdcd);
01116
01117
01118 /*----- Initialization for the general linear test analysis -----*/
01119 if (ok)
01120 if (glt_num > 0)
01121 ok = init_glt_analysis (xtxinv_full, glt_num, glt_cmat, glt_amat,
01122 cxtxinvct);
01123 }
01124
01125 if (ok)
01126 {
01127 /*----- Extract Y-data for this voxel -----*/
01128 vector_create (N, &y);
01129 ts_array = vec;
01130 for (i = 0; i < N; i++)
01131 y.elts[i] = ts_array[good_list[i]];
01132
01133
01134 /*----- Perform the regression analysis for this voxel-----*/
01135 regression_analysis (N, p, q, num_stimts, min_lag, max_lag,
01136 x_full, xtxinv_full, xtxinvxt_full, x_base,
01137 xtxinvxt_base, x_rdcd, xtxinvxt_rdcd,
01138 y, rms_min, &mse, &coef, &scoef, &tcoef,
01139 fpart, rpart, &ffull, &rfull, &novar,
01140 *fitts, *errts);
01141
01142
01143 /*----- Perform the general linear tests for this voxel -----*/
01144 if (glt_num > 0)
01145 glt_analysis (N, p, x_full, y, mse*(N-p), coef, novar, cxtxinvct,
01146 glt_num, glt_rows, glt_cmat, glt_amat,
01147 glt_coef, glt_tcoef, fglt, rglt);
01148
01149
01150 /*----- Save the fit parameters -----*/
01151 vector_to_array (coef, fit);
01152
01153
01154 /*----- Report results for this voxel -----*/
01155 printf ("\nResults for Voxel: \n");
01156 report_results (N, qp, q, p, plug_polort, block_list, num_blocks,
01157 num_stimts, stim_label, stim_base, min_lag, max_lag,
01158 coef, tcoef, fpart, rpart, ffull, rfull, mse,
01159 glt_num, glt_label, glt_rows, glt_coef,
01160 glt_tcoef, fglt, rglt, label);
01161 printf ("%s \n", *label);
01162
01163 prev_nt = nt;
01164 }
01165
01166 else
01167 {
01168 vector_create (p, &coef);
01169 vector_to_array (coef, fit);
01170 strcpy (lbuf, "");
01171 *label = lbuf;
01172 prev_nt = 0;
01173 }
01174
01175
01176 /*----- Dispose of vectors -----*/
01177 vector_destroy (&y);
01178 vector_destroy (&tcoef);
01179 vector_destroy (&scoef);
01180 vector_destroy (&coef);
01181
01182
01183 if (ok) return (1);
01184 else return (0);
01185 }
|
|
|
Referenced by DC_Err(), DC_Fit(), DC_IRF(), main(), WA_err(), WA_fit(), WA_fwt(), and WA_sgnl(). |
|
||||||||||||||||||||||||
|
Definition at line 1237 of file plug_deconvolve.c. References calculate_results(), dt, fit, free, good_list, MAX_XVARS, and vec. Referenced by PLUGIN_init().
01239 {
01240 int N; /* first image from input 3d+time dataset to use */
01241 float val; /* residual value at a time point */
01242 int n; /* time index */
01243 int ifit; /* parameter index */
01244 int nfit; /* number of fit parameters */
01245 float fit[MAX_XVARS]; /* fit parameters (regression coefficients) */
01246 int ok; /* Boolean for successful calculation */
01247 float * fitts = NULL; /* full model fitted time series */
01248 float * errts = NULL; /* full model residual error time series */
01249
01250
01251 /*----- Calculate the multiple linear regression -----*/
01252 ok = calculate_results (nt, dt, vec, &N, &nfit, fit, label,
01253 &fitts, &errts);
01254
01255
01256 /*----- If unable to complete the calculation, return all zeros -----*/
01257 for (n = 0; n < nt; n++) vec[n] = 0.0;
01258
01259
01260 /*----- Use residuals from full model fit to time series data -----*/
01261 if (ok)
01262 {
01263 for (n = 0; n < N; n++)
01264 vec[good_list[n]] = errts[n];
01265 }
01266
01267
01268 /*----- Deallocate memory -----*/
01269 free (fitts); fitts = NULL;
01270 free (errts); errts = NULL;
01271
01272 return;
01273 }
|
|
|
Definition at line 162 of file plug_deconvolve.c. References PROGRAM_NAME. Referenced by calculate_results(), check_for_valid_inputs(), check_one_output_file(), extract_ts_array(), get_options(), init_indep_var_matrix(), read_input_data(), and read_time_series().
00163 {
00164 fprintf (stderr, "%s Error: %s \n", PROGRAM_NAME, message);
00165
00166 }
|
|
||||||||||||||||||||||||
|
Definition at line 1193 of file plug_deconvolve.c. References calculate_results(), dt, fit, free, good_list, MAX_XVARS, and vec. Referenced by PLUGIN_init().
01195 {
01196 int N; /* first image from input 3d+time dataset to use */
01197 int n; /* time index */
01198 int ifit; /* parameter index */
01199 int nfit; /* number of fit parameters */
01200 float fit[MAX_XVARS]; /* fit parameters (regression coefficients) */
01201 int ok; /* Boolean for successful calculation */
01202 float * fitts = NULL; /* full model fitted time series */
01203 float * errts = NULL; /* full model residual error time series */
01204
01205
01206 /*----- Calculate the multiple linear regression -----*/
01207 ok = calculate_results (nt, dt, vec, &N, &nfit, fit, label,
01208 &fitts, &errts);
01209
01210
01211 /*----- If unable to complete the calculation, return all zeros -----*/
01212 if (!ok)
01213 for (n = 0; n < nt; n++) vec[n] = 0.0;
01214
01215
01216 /*----- Use full model fit to the time series data -----*/
01217 else
01218 {
01219 for (n = 0; n < N; n++)
01220 vec[good_list[n]] = fitts[n];
01221 }
01222
01223
01224 /*----- Deallocate memory -----*/
01225 free (fitts); fitts = NULL;
01226 free (errts); errts = NULL;
01227
01228 return;
01229 }
|
|
||||||||||||||||||||||||
|
Definition at line 1281 of file plug_deconvolve.c. References calculate_results(), dt, fit, free, max_lag, MAX_XVARS, min_lag, num_stimts, plug_IRF, plug_qp, q, r, and vec. Referenced by PLUGIN_init().
01283 {
01284 int N; /* first image from input 3d+time dataset to use */
01285 int nfit; /* number of fit parameters */
01286 float fit[MAX_XVARS]; /* fit parameters (regression coefficients) */
01287 int np; /* length of estimated impulse reponse function */
01288 int ip; /* impulse response function parameter index */
01289 int q; /* number of parameters in the baseline model */
01290 int it; /* array index */
01291 int ntdnp; /* number of array points per IRF parameter */
01292 int ok; /* Boolean for successful calculation */
01293 float * fitts = NULL; /* full model fitted time series */
01294 float * errts = NULL; /* full model residual error time series */
01295
01296
01297 /*----- Calculate the multiple linear regression -----*/
01298 ok = calculate_results (nt, dt, vec, &N, &nfit, fit, label,
01299 &fitts, &errts);
01300
01301
01302 /*----- If unable to complete the calculation, return all zeros -----*/
01303 if (!ok || (num_stimts < 1))
01304 for (it = 0; it < nt; it++) vec[it] = 0.0;
01305
01306
01307 /*----- Plot the system impulse response function -----*/
01308 else
01309 {
01310 if ((num_stimts == 1) || (plug_IRF < 0) || (plug_IRF >= num_stimts))
01311 plug_IRF = 0;
01312
01313 np = max_lag[plug_IRF] - min_lag[plug_IRF] + 1;
01314
01315 q = plug_qp;
01316 for (ip = 0; ip < plug_IRF; ip++)
01317 q += max_lag[ip] - min_lag[ip] + 1;
01318
01319 if (np == 1)
01320 {
01321 for (it = 0; it < nt; it++)
01322 vec[it] = fit[q];
01323 }
01324 else
01325 {
01326 float r;
01327
01328 ntdnp = nt / (np-1);
01329
01330 vec[0] = fit[q];
01331 for (it = 0; it < nt; it++)
01332 {
01333 ip = it / ntdnp + 1;
01334 if (ip < np)
01335 {
01336 r = (float) it / (float) ntdnp - (ip-1);
01337 vec[it] = r * fit[q+ip] + (1.0-r) * fit[q+ip-1];
01338 }
01339 else
01340 vec[it] = fit[q+np-1];
01341 }
01342 }
01343 }
01344
01345
01346 /*----- Deallocate memory -----*/
01347 free (fitts); fitts = NULL;
01348 free (errts); errts = NULL;
01349
01350 return;
01351 }
|
|
|
Definition at line 709 of file plug_deconvolve.c. References baseline_strings, block_list, censor_array, censor_column, censor_label, censor_length, concat_column, concat_label, matrix::elts, false_or_true, far, free, glt_filename, glt_label, glt_num, glt_rows, initialize, IRF_label, MRI_IMAGE::kind, malloc, matrix_file_read(), max_lag, MAX_XVARS, min_lag, MRI_FLOAT_PTR, MTEST, NBASE, nptr, num_blocks, num_censor, num_stimts, MRI_IMAGE::nx, MRI_IMAGE::ny, plug_IRF, plug_NFirst, plug_NLast, plug_p, plug_polort, plug_q, plug_qp, PLUTO_string_index(), prev_nt, reset_options(), show_options(), stim_base, stim_column, stim_label, stim_length, and stimulus. Referenced by PLUGIN_init().
00710 {
00711 char * str; /* input string */
00712 int is; /* stimulus index */
00713 int iglt; /* general linear test index */
00714 MRI_IMAGE * stim; /* pointers to image structures
00715 -- used to read 1D ASCII */
00716 float * far; /* pointer to MRI_IMAGE floating point data */
00717 int ipt; /* time point index */
00718
00719
00720 /*----- Reset options and global data -----*/
00721 reset_options ();
00722
00723
00724 /*--------- go to Control input line ---------*/
00725 PLUTO_next_option (plint);
00726 str = PLUTO_get_string (plint);
00727 plug_polort = PLUTO_string_index (str, NBASE, baseline_strings) - 1;
00728 plug_NFirst = PLUTO_get_number (plint);
00729 plug_NLast = PLUTO_get_number (plint);
00730 strcpy (IRF_label, PLUTO_get_string (plint));
00731
00732
00733 /*--------- go to Concat Runs input line ---------*/
00734 str = PLUTO_peek_optiontag (plint);
00735 if (str != NULL)
00736
00737 /*----- Read Concat Runs input Line -----*/
00738 if (strcmp (str, "Concat") == 0)
00739 {
00740 str = PLUTO_get_optiontag (plint);
00741 strcpy (concat_label, PLUTO_get_string(plint));
00742
00743 stim = PLUTO_get_timeseries(plint) ;
00744
00745 if (stim == NULL || stim->nx < 1
00746 || stim->kind != MRI_float)
00747 return "**************************\n"
00748 "Illegal Concat File Input!\n"
00749 "**************************" ;
00750
00751 /*----- Column in file which contains the concat function -----*/
00752 concat_column = PLUTO_get_number(plint);
00753
00754 if ((concat_column < 0)
00755 ||(concat_column > stim->ny - 1))
00756 return "**********************************\n"
00757 "Illegal Concat File Column Number!\n"
00758 "**********************************" ;
00759
00760 /*----- Extract concat run start list from MRI data structure -----*/
00761 far = MRI_FLOAT_PTR(stim);
00762 num_blocks = stim->nx;
00763 if (block_list != NULL) free (block_list);
00764 block_list = (int *) malloc (sizeof(int) * num_blocks);
00765 MTEST (block_list);
00766
00767 for (ipt = 0; ipt < num_blocks; ipt++)
00768 block_list[ipt] = floor (far[ipt+concat_column*(stim->nx)] + 0.5);
00769 }
00770
00771
00772 /*--------- go to Censor input line ---------*/
00773 str = PLUTO_peek_optiontag (plint);
00774 if (str != NULL)
00775
00776 /*----- Read Censor input Line -----*/
00777 if (strcmp (str, "Censor") == 0)
00778 {
00779 str = PLUTO_get_optiontag (plint);
00780 strcpy (censor_label, PLUTO_get_string(plint));
00781
00782 stim = PLUTO_get_timeseries(plint) ;
00783
00784 if (stim == NULL || stim->nx < 3
00785 || stim->kind != MRI_float)
00786 return "**************************\n"
00787 "Illegal Censor File Input!\n"
00788 "**************************" ;
00789
00790
00791 /*----- Column in file which contains the censor function -----*/
00792 censor_column = PLUTO_get_number(plint);
00793
00794 if ((censor_column < 0)
00795 ||(censor_column > stim->ny - 1))
00796 return "**********************************\n"
00797 "Illegal Censor File Column Number!\n"
00798 "**********************************" ;
00799
00800
00801 /*----- Extract censor time series from MRI data structure -----*/
00802 if (censor_array != NULL)
00803 {
00804 free (censor_array);
00805 censor_array = NULL;
00806 }
00807 far = MRI_FLOAT_PTR(stim);
00808 censor_length = stim->nx;
00809 censor_array = (float *) malloc (sizeof(float) * (stim->nx));
00810 MTEST (censor_array);
00811
00812 num_censor = 1;
00813 for (ipt = 0; ipt < (stim->nx); ipt++)
00814 censor_array[ipt]
00815 = far[ipt + censor_column*(stim->nx)];
00816 }
00817
00818
00819 /*------ Loop over input line(s) -----*/
00820 do
00821 {
00822 str = PLUTO_get_optiontag(plint);
00823 if (str == NULL) break;
00824 if ((strcmp (str, "StimFnc") != 0) && (strcmp (str, "GLT Mat") != 0))
00825 return "************************\n"
00826 "Illegal optiontag found!\n"
00827 "************************";
00828
00829
00830 /*----- Read Input Stimulus Line -----*/
00831 if (strcmp (str, "StimFnc") == 0)
00832 {
00833 str = PLUTO_get_string(plint);
00834 if (strlen(str) != 0) strcpy (stim_label[num_stimts], str);
00835
00836 if (strcmp(stim_label[num_stimts], IRF_label) == 0)
00837 plug_IRF = num_stimts;
00838
00839 stim = PLUTO_get_timeseries(plint) ;
00840
00841 if (stim == NULL || stim->nx < 3
00842 || stim->kind != MRI_float)
00843 return "*************************\n"
00844 "Illegal Timeseries Input!\n"
00845 "*************************" ;
00846
00847
00848 /*----- Column in file which contains the stimulus function -----*/
00849 stim_column[num_stimts] = PLUTO_get_number(plint);
00850
00851 if ((stim_column[num_stimts] < 0)
00852 ||(stim_column[num_stimts] > stim->ny - 1))
00853 return "********************************\n"
00854 "Illegal Stim File Column Number!\n"
00855 "********************************" ;
00856
00857
00858 /*----- Extract stimulus time series from MRI data structure -----*/
00859 if (stimulus[num_stimts] != NULL)
00860 {
00861 free (stimulus[num_stimts]);
00862 stimulus[num_stimts] = NULL;
00863 }
00864 far = MRI_FLOAT_PTR(stim);
00865 stim_length[num_stimts] = stim->nx;
00866 stimulus[num_stimts] = (float *) malloc (sizeof(float) * (stim->nx));
00867 MTEST (stimulus[num_stimts]);
00868
00869 for (ipt = 0; ipt < (stim->nx); ipt++)
00870 stimulus[num_stimts][ipt]
00871 = far[ipt + stim_column[num_stimts]*(stim->nx)];
00872
00873
00874 /*----- Minimum and Maximum time lags for model -----*/
00875 min_lag[num_stimts] = PLUTO_get_number(plint);
00876 max_lag[num_stimts] = PLUTO_get_number(plint);
00877 nptr[num_stimts] = PLUTO_get_number(plint);
00878 str = PLUTO_get_string (plint);
00879 stim_base[num_stimts] = PLUTO_string_index (str, 2, false_or_true);
00880
00881
00882 if (min_lag[num_stimts] > max_lag[num_stimts])
00883 return "**************************\n"
00884 "Require Min Lag <= Max Lag\n"
00885 "**************************" ;
00886
00887 num_stimts++;
00888 }
00889
00890
00891 /*----- Read General Matrix Test Line -----*/
00892 if (strcmp (str, "GLT Mat") == 0)
00893 {
00894 str = PLUTO_get_string(plint);
00895 if (strlen(str) != 0) strcpy (glt_label[glt_num], str);
00896
00897 strcpy (glt_filename[glt_num], PLUTO_get_string(plint));
00898
00899 glt_rows[glt_num] = PLUTO_get_number(plint);
00900
00901 glt_num++;
00902 }
00903
00904 }
00905
00906 while (1);
00907
00908
00909 /*----- Determine total number of parameters in the model -----*/
00910 plug_qp = (plug_polort + 1) * num_blocks;
00911 plug_q = plug_qp;
00912 plug_p = plug_qp;
00913 for (is = 0; is < num_stimts; is++)
00914 {
00915 if (stim_base[is]) plug_q += max_lag[is] - min_lag[is] + 1;
00916 plug_p += max_lag[is] - min_lag[is] + 1;
00917 if (plug_p > MAX_XVARS)
00918 {
00919 return "****************************\n"
00920 "Too many parameters in model \n"
00921 "****************************" ;
00922 }
00923 }
00924
00925
00926 /*----- Read the general linear test matrices -----*/
00927 if (glt_num > 0)
00928 for (iglt = 0; iglt < glt_num; iglt++)
00929 {
00930 matrix_file_read (glt_filename[iglt],
00931 glt_rows[iglt],
00932 plug_p,
00933 &(glt_cmat[iglt]), 0);
00934 if (glt_cmat[iglt].elts == NULL)
00935 {
00936 return "**************************\n"
00937 "Unable to read GLT matrix \n"
00938 "**************************" ;
00939 }
00940 }
00941
00942
00943 /*----- Show the user input options -----*/
00944 show_options ();
00945
00946
00947 /*--- nothing left to do until data arrives ---*/
00948 initialize = 1 ; /* successful initialization */
00949 prev_nt = 0; /* previous time series length */
00950
00951 return NULL ;
00952 }
|
|
|
Definition at line 308 of file plug_deconvolve.c. References block_list, censor_array, censor_column, censor_label, censor_length, concat_column, concat_label, glt_filename, glt_label, glt_num, glt_rows, good_list, initialize, IRF_label, malloc, matrix_initialize(), MAX_GLT, max_lag, MAX_NAME_LENGTH, MAX_STIMTS, min_lag, MTEST, nptr, num_blocks, num_censor, num_stimts, plug_IRF, plug_NFirst, plug_NLast, plug_p, plug_polort, plug_q, plug_qp, prev_nt, stim_base, stim_column, stim_label, stim_length, stimulus, and vector_initialize(). Referenced by get_inputs(), get_options(), initialize_program(), and PLUGIN_init().
00309 {
00310 int is; /* input stimulus index */
00311 int iglt; /* index for general linear test */
00312
00313
00314 /*----- Initialize control parameters -----*/
00315 plug_polort = 1; /* degree of polynomial for baseline model */
00316 plug_p = 0; /* total number of parameters in the full model */
00317 plug_q = 0; /* total number of parameters in the base model */
00318 plug_qp = 0; /* number of poly. trend baseline parameters */
00319 plug_NFirst = 0; /* first image from input 3d+time dataset to use */
00320 plug_NLast = 32767; /* last image from input 3d+time dataset to use */
00321 plug_IRF = -1; /* which impulse response fuction to plot */
00322 initialize = 0; /* flag for perform initialization */
00323 prev_nt = 0; /* previous time series length */
00324 IRF_label = malloc (sizeof(char)*MAX_NAME_LENGTH); MTEST (IRF_label);
00325 strcpy (IRF_label, " "); /* label of stimulus for IRF plot */
00326
00327
00328 /*----- Initialization for concatenated runs -----*/
00329 concat_label = malloc (sizeof(char)*MAX_NAME_LENGTH); MTEST (concat_label);
00330 strcpy (concat_label, " "); /* label for concatenation */
00331 concat_column = 0; /* column containing list of blocks (runs) */
00332 num_blocks = 1; /* number of blocks (runs) */
00333 block_list = (int *) malloc (sizeof(int) * 1); MTEST (block_list);
00334 block_list[0] = 0; /* list of block (run) starting points */
00335
00336
00337 /*----- Initialize censorship function -----*/
00338 num_censor = 0;
00339 censor_label = malloc (sizeof(char)*MAX_NAME_LENGTH); MTEST (censor_label);
00340 strcpy (censor_label, " "); /* censor time series label */
00341 censor_column = 0; /* column containing censor array */
00342 censor_array = NULL; /* censor time series array */
00343 censor_length = 0; /* length of censor time series */
00344 good_list = NULL; /* list of usable time points */
00345
00346
00347 /*----- Initialize stimulus functions -----*/
00348 num_stimts = 0; /* number of stimulus time series */
00349 for (is =0; is < MAX_STIMTS; is++)
00350 {
00351 stim_label[is] = malloc (sizeof(char)*MAX_NAME_LENGTH);
00352 MTEST (stim_label[is]);
00353 sprintf (stim_label[is], "Stim #%d ", is+1);
00354 /* stimulus time series labels */
00355 stim_base[is] = 0; /* flag for baseline stimulus */
00356 stim_column[is] = 0; /* column containing stimulus */
00357 stimulus[is] = NULL; /* stimulus time series arrays */
00358 stim_length[is] = 0; /* length of stimulus time series */
00359 min_lag[is] = 0; /* minimum time delay for impulse response */
00360 max_lag[is] = 0; /* maximum time delay for impulse response */
00361 nptr[is] = 1; /* number of stim fn. time points per TR */
00362 }
00363
00364
00365 /*----- Initialize matrices -----*/
00366 matrix_initialize (&xdata); /* independent variable matrix */
00367 matrix_initialize (&x_full); /* extracted X matrix for full model */
00368 matrix_initialize (&xtxinv_full); /* matrix: 1/(X'X) for full model */
00369 matrix_initialize (&xtxinvxt_full); /* matrix: (1/(X'X))X' for full model */
00370 matrix_initialize (&x_base); /* extracted X matrix for baseline model */
00371 matrix_initialize (&xtxinvxt_base);
00372 /* matrix: (1/(X'X))X' for baseline model */
00373 for (is =0; is < MAX_STIMTS; is++)
00374 {
00375 matrix_initialize (&x_rdcd[is]);
00376 /* extracted X matrices for reduced models */
00377 matrix_initialize (&xtxinvxt_rdcd[is]);
00378 /* matrix: (1/(X'X))X' for reduced models */
00379 }
00380
00381
00382 /*----- Initialize GLT matrices -----*/
00383 glt_num = 0; /* number of general linear tests */
00384 for (iglt =0; iglt < MAX_GLT; iglt++)
00385 {
00386 glt_label[iglt] = malloc (sizeof(char)*MAX_NAME_LENGTH);
00387 MTEST (glt_label[iglt]);
00388 sprintf (glt_label[iglt], "GLT #%d ", iglt+1);
00389 /* general linear test labels */
00390 glt_rows[iglt] = 0; /* number of linear constraints in glt */
00391 glt_filename[iglt] = malloc (sizeof(char)*MAX_NAME_LENGTH);
00392 MTEST (glt_filename[iglt]);
00393 strcpy (glt_filename[iglt], " "); /* file containing glt matrix */
00394
00395 matrix_initialize (&cxtxinvct[iglt]);
00396 /* matrices: C(1/(X'X))C' for GLT */
00397 matrix_initialize (&glt_cmat[iglt]);
00398 /* general linear test matrices */
00399 matrix_initialize (&glt_amat[iglt]);
00400 /* constant GLT matrices for later use */
00401 vector_initialize (&glt_coef[iglt]);
00402 /* linear combinations from GLT matrices */
00403 vector_initialize (&glt_tcoef[iglt]);
00404 /* t-stats for GLT linear combinations */
00405 }
00406
00407 }
|
|
|
Definition at line 529 of file plug_deconvolve.c. References baseline_strings, DC_Err(), DC_Fit(), DC_IRF(), DC_main(), false_or_true, global_plint, helpstring, initialize_options(), MAX_CONSTR, MAX_GLT, MAX_STIMTS, NBASE, PLUTO_add_hint(), PLUTO_register_1D_funcstr, PLUTO_set_runlabels(), and PLUTO_set_sequence().
00530 {
00531 PLUGIN_interface * plint ; /* will be the output of this routine */
00532 int is; /* input stimulus index */
00533 int iglt; /* index for general linear test */
00534
00535
00536 if( ncall > 0 ) return NULL ; /* generate interface for ncall 0 */
00537
00538
00539 /***** do interface #0 *****/
00540
00541 /*---------------- set titles and call point ----------------*/
00542
00543 plint = PLUTO_new_interface ("Deconvolution" ,
00544 "Control DC_Fit, DC_Err, and DC_IRF Deconvolution Functions" ,
00545 helpstring, PLUGIN_CALL_VIA_MENU, DC_main);
00546
00547 global_plint = plint ; /* make global copy */
00548
00549 PLUTO_short_choose(plint) ; /* 29 Mar 2002 [RWCox]: */
00550 PLUTO_short_number(plint) ; /* make 'Choose' and number widgets shorter */
00551
00552 PLUTO_add_hint (plint,
00553 "Control DC_Fit, DC_Err, and DC_IRF Deconvolution Functions");
00554
00555 PLUTO_set_sequence( plint , "A:funcs:fitting" ) ;
00556
00557 PLUTO_set_runlabels( plint , "Set+Keep" , "Set+Close" ) ; /* 04 Nov 2003 */
00558
00559 /*----- Parameters -----*/
00560 PLUTO_add_option (plint, "Control", "Control", TRUE);
00561 PLUTO_add_string (plint, "Base", NBASE, baseline_strings, 2);
00562 PLUTO_add_number (plint, "NFirst", -1, 32767, 0, -1, TRUE);
00563 PLUTO_add_number (plint, "NLast", 0, 32767, 0, 32767, TRUE);
00564 PLUTO_add_string( plint, "IRF ", 0, NULL, 1);
00565
00566
00567 /*----- Concatenation Function -----*/
00568 PLUTO_add_option (plint, "Concat", "Concat", FALSE);
00569 PLUTO_add_string( plint, "Label", 0, NULL, 1);
00570 PLUTO_add_timeseries (plint, "File");
00571 PLUTO_add_number (plint, "Col #", 0, 100, 0, 0, TRUE);
00572
00573
00574 /*----- Censor Function -----*/
00575 PLUTO_add_option (plint, "Censor", "Censor", FALSE);
00576 PLUTO_add_string( plint, "Label", 0, NULL, 1);
00577 PLUTO_add_timeseries (plint, "File");
00578 PLUTO_add_number (plint, "Col #", 0, 100, 0, 0, TRUE);
00579
00580
00581 /*----- Input Stimulus -----*/
00582 for (is = 0; is < MAX_STIMTS; is++)
00583 {
00584 PLUTO_add_option (plint, "StimFnc", "StimFnc", FALSE);
00585 PLUTO_add_string( plint, "Label", 0, NULL, 1);
00586 PLUTO_add_timeseries (plint, "File");
00587 PLUTO_add_number (plint, "Col #", 0, 100, 0, 0, TRUE);
00588 PLUTO_add_number (plint, "MinLag", 0, 100, 0, 0, TRUE);
00589 PLUTO_add_number (plint, "MaxLag", 0, 100, 0, 0, TRUE);
00590 PLUTO_add_number (plint, "NPTR", 1, 100, 0, 0, TRUE);
00591 PLUTO_add_string (plint, "Base", 2, false_or_true, 0);
00592 }
00593
00594 /*----- General Linear Test -----*/
00595 for (is = 0; is < MAX_GLT; is++)
00596 {
00597 PLUTO_add_option (plint, "GLT Mat", "GLT Mat", FALSE);
00598 PLUTO_add_string( plint, "Label", 0, NULL, 1);
00599 PLUTO_add_string( plint, "File", 0, NULL, 1);
00600 PLUTO_add_number (plint, "# Rows", 1, MAX_CONSTR, 0, 0, TRUE);
00601 }
00602
00603 /*--------- done with interface setup ---------*/
00604 PLUTO_register_1D_funcstr ("DC_Fit" , DC_Fit);
00605 PLUTO_register_1D_funcstr ("DC_Err" , DC_Err);
00606 PLUTO_register_1D_funcstr ("DC_IRF" , DC_IRF);
00607
00608
00609 /*----- Initialize options and global data -----*/
00610 initialize_options ();
00611
00612
00613 return plint ;
00614 }
|
|
|
Definition at line 415 of file plug_deconvolve.c. References block_list, censor_array, censor_column, censor_label, censor_length, concat_column, concat_label, free, glt_filename, glt_label, glt_num, glt_rows, good_list, initialize, IRF_label, malloc, matrix_destroy(), MAX_GLT, max_lag, MAX_STIMTS, min_lag, MTEST, nptr, num_blocks, num_censor, num_stimts, plug_IRF, plug_NFirst, plug_NLast, plug_p, plug_polort, plug_q, plug_qp, prev_nt, stim_base, stim_column, stim_label, stim_length, stimulus, and vector_destroy(). Referenced by DC_main().
00416 {
00417 int is; /* input stimulus index */
00418 int iglt; /* index for general linear test */
00419
00420
00421 /*----- Reset control parameters -----*/
00422 plug_polort = 1; /* degree of polynomial for baseline model */
00423 plug_p = 0; /* total number of parameters in the full model */
00424 plug_q = 0; /* total number of parameters in the base model */
00425 plug_qp = 0; /* number of poly. trend baseline parameters */
00426 plug_NFirst = 0; /* first image from input 3d+time dataset to use */
00427 plug_NLast = 32767; /* last image from input 3d+time dataset to use */
00428 plug_IRF = -1; /* which impulse response fuction to plot */
00429 initialize = 0; /* flag for perform initialization */
00430 prev_nt = 0; /* previous time series length */
00431 strcpy (IRF_label, " "); /* label of stimulus for IRF plot */
00432
00433
00434 /*----- Reset for concatenated runs -----*/
00435 strcpy (concat_label, " "); /* label for concatenation */
00436 concat_column = 0; /* column containing list of blocks (runs) */
00437 num_blocks = 1; /* number of blocks (runs) */
00438 if (block_list != NULL) free (block_list);
00439 block_list = (int *) malloc (sizeof(int) * 1); MTEST (block_list);
00440 block_list[0] = 0; /* list of block (run) starting points */
00441
00442
00443 /*----- Reset censorship function -----*/
00444 num_censor = 0;
00445 strcpy (censor_label, " "); /* censor time series label */
00446 censor_column = 0; /* column containing censor array */
00447 if (censor_array != NULL)
00448 {
00449 free (censor_array);
00450 censor_array = NULL; /* censor time series array */
00451 }
00452 censor_length = 0; /* length of censor time series */
00453 if (good_list != NULL)
00454 {
00455 free (good_list);
00456 good_list = NULL; /* list of usable time points */
00457 }
00458
00459
00460 /*----- Reset stimulus functions -----*/
00461 num_stimts = 0; /* number of stimulus time series */
00462 for (is =0; is < MAX_STIMTS; is++)
00463 {
00464 sprintf (stim_label[is], "Stim #%d ", is+1);
00465 /* stimulus time series labels */
00466 stim_base[is] = 0; /* flag for baseline stimulus */
00467 stim_column[is] = 0; /* column containing stimulus */
00468 if (stimulus[is] != NULL)
00469 {
00470 free (stimulus[is]);
00471 stimulus[is] = NULL; /* stimulus time series arrays */
00472 }
00473 stim_length[is] = 0; /* length of stimulus time series */
00474 min_lag[is] = 0; /* minimum time delay for impulse response */
00475 max_lag[is] = 0; /* maximum time delay for impulse response */
00476 nptr[is] = 1; /* number of stim fn. time points per TR */
00477 }
00478
00479
00480 /*----- Destroy matrices -----*/
00481 matrix_destroy (&xdata); /* independent variable matrix */
00482 matrix_destroy (&x_full); /* extracted X matrix for full model */
00483 matrix_destroy (&xtxinv_full); /* matrix: 1/(X'X) for full model */
00484 matrix_destroy (&xtxinvxt_full); /* matrix: (1/(X'X))X' for full model */
00485 matrix_destroy (&x_base); /* extracted X matrix for baseline model */
00486 matrix_destroy (&xtxinvxt_base);
00487 /* matrix: (1/(X'X))X' for baseline model */
00488 for (is =0; is < MAX_STIMTS; is++)
00489 {
00490 matrix_destroy (&x_rdcd[is]);
00491 /* extracted X matrices for reduced models */
00492 matrix_destroy (&xtxinvxt_rdcd[is]);
00493 /* matrix: (1/(X'X))X' for reduced models */
00494 }
00495
00496
00497 /*----- Destroy GLT matrices -----*/
00498 glt_num = 0; /* number of general linear tests */
00499 for (iglt =0; iglt < MAX_GLT; iglt++)
00500 {
00501 sprintf (glt_label[iglt], "GLT #%d ", iglt+1);
00502 /* general linear test labels */
00503 glt_rows[iglt] = 0; /* number of linear constraints in glt */
00504 strcpy (glt_filename[iglt], " "); /* file containing glt matrix */
00505
00506 matrix_destroy (&cxtxinvct[iglt]);
00507 /* matrices: C(1/(X'X))C' for GLT */
00508 matrix_destroy (&glt_cmat[iglt]);
00509 /* general linear test matrices */
00510 matrix_destroy (&glt_amat[iglt]);
00511 /* constant GLT matrices for later use */
00512 vector_destroy (&glt_coef[iglt]);
00513 /* linear combinations from GLT matrices */
00514 vector_destroy (&glt_tcoef[iglt]);
00515 /* t-stats for GLT linear combinations */
00516 }
00517
00518 }
|
|
|
Definition at line 619 of file plug_deconvolve.c. References baseline_strings, block_list, censor_array, censor_column, censor_label, censor_length, concat_column, concat_label, glt_filename, glt_label, glt_num, glt_rows, IRF_label, max_lag, min_lag, nptr, num_blocks, num_censor, num_stimts, plug_NFirst, plug_NLast, plug_polort, PROGRAM_AUTHOR, PROGRAM_INITIAL, PROGRAM_LATEST, PROGRAM_NAME, stim_base, stim_column, and stim_label. Referenced by DC_main().
00620 {
00621 int ib; /* block (run) index */
00622 int it; /* time index */
00623 int is; /* stimulus index */
00624 int iglt; /* general linear test index */
00625
00626
00627 /*----- Identify software -----*/
00628 printf ("\n\n");
00629 printf ("Program: %s \n", PROGRAM_NAME);
00630 printf ("Author: %s \n", PROGRAM_AUTHOR);
00631 printf ("Initial Release: %s \n", PROGRAM_INITIAL);
00632 printf ("Latest Revision: %s \n", PROGRAM_LATEST);
00633 printf ("\n");
00634
00635
00636 /*----- Show current input options -----*/
00637 printf ("\nControls: \n");
00638 printf ("Baseline = %10s \n", baseline_strings[plug_polort+1]);
00639 printf ("NFirst = %10d \n", plug_NFirst);
00640 printf ("NLast = %10d \n", plug_NLast);
00641 printf ("IRF label = %10s \n", IRF_label);
00642
00643
00644 /*----- Identify concatenation function -----*/
00645 if (num_blocks > 0)
00646 {
00647 printf ("\n");
00648 printf ("Concatenation: Label = %8s ", concat_label);
00649 printf ("Column = %3d \n", concat_column);
00650 for (ib = 0; ib < num_blocks; ib++)
00651 printf ("Run #%d Initial Point = %d \n", ib+1, block_list[ib]);
00652 }
00653
00654
00655 /*----- Identify censor function -----*/
00656 if (num_censor > 0)
00657 {
00658 printf ("\n");
00659 printf ("Censor Function: Label = %8s ", censor_label);
00660 printf ("Column = %3d \n", censor_column);
00661 printf ("Censored Points: ");
00662 for (it = 0; it < censor_length; it++)
00663 {
00664 if (censor_array[it] == 0) printf (" %d", it);
00665 }
00666 printf ("\n");
00667 }
00668
00669
00670 /*----- List stimulus functions -----*/
00671 if (num_stimts > 0)
00672 {
00673 printf ("\n");
00674 for (is = 0; is < num_stimts; is++)
00675 {
00676 if (stim_base[is])
00677 printf ("Baseline: Label = %8s ", stim_label[is]);
00678 else
00679 printf ("Stimulus: Label = %8s ", stim_label[is]);
00680 printf ("Column = %3d Min. Lag = %3d Max. Lag = %3d ",
00681 stim_column[is], min_lag[is], max_lag[is]);
00682 printf ("NPTR = %d \n", nptr[is]);
00683 }
00684 }
00685
00686
00687 /*----- List GLT matrices -----*/
00688 if (glt_num > 0)
00689 {
00690 printf ("\n");
00691 for (iglt = 0; iglt < glt_num; iglt++)
00692 {
00693 printf ("GLT: Label = %8s ", glt_label[iglt]);
00694 printf ("#Rows = %2d Input File: %s \n",
00695 glt_rows[iglt], glt_filename[iglt]);
00696 }
00697 }
00698
00699 }
|
Variable Documentation
|
|
Initial value: {"None", "Const", "Linear",
"Quadrtc", "Cubic", "Quartic", "Quintic" }Definition at line 218 of file plug_deconvolve.c. Referenced by DC_main(), PLUGIN_init(), and show_options(). |
|
|
Definition at line 252 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 257 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 256 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 255 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 258 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 250 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 249 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 285 of file plug_deconvolve.c. |
|
|
Definition at line 221 of file plug_deconvolve.c. Referenced by DC_main(), and PLUGIN_init(). |
|
|
Definition at line 236 of file plug_deconvolve.c. Referenced by PLUGIN_init(). |
|
|
Definition at line 287 of file plug_deconvolve.c. |
|
|
Definition at line 286 of file plug_deconvolve.c. |
|
|
Definition at line 288 of file plug_deconvolve.c. |
|
|
Definition at line 284 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 282 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 281 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 283 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 289 of file plug_deconvolve.c. |
|
|
Definition at line 259 of file plug_deconvolve.c. Referenced by calculate_results(), DC_Err(), DC_Fit(), initialize_options(), and reset_options(). |
|
|
Definition at line 178 of file plug_deconvolve.c. Referenced by PLUGIN_init(). |
|
|
Definition at line 245 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 247 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 267 of file plug_deconvolve.c. Referenced by calculate_results(), DC_IRF(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 266 of file plug_deconvolve.c. Referenced by calculate_results(), DC_IRF(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 268 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 251 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 254 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 261 of file plug_deconvolve.c. Referenced by calculate_results(), DC_IRF(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 244 of file plug_deconvolve.c. Referenced by DC_IRF(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 242 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 243 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 239 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 238 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 240 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 241 of file plug_deconvolve.c. Referenced by calculate_results(), DC_IRF(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 246 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 262 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 263 of file plug_deconvolve.c. Referenced by DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 269 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), reset_options(), and show_options(). |
|
|
Definition at line 265 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 264 of file plug_deconvolve.c. Referenced by calculate_results(), DC_main(), initialize_options(), and reset_options(). |
|
|
Definition at line 275 of file plug_deconvolve.c. |
|
|
Definition at line 272 of file plug_deconvolve.c. |
|
|
Definition at line 277 of file plug_deconvolve.c. |
|
|
Definition at line 271 of file plug_deconvolve.c. |
|
|
Definition at line 273 of file plug_deconvolve.c. |
|
|
Definition at line 276 of file plug_deconvolve.c. |
|
|
Definition at line 274 of file plug_deconvolve.c. |
|
|
Definition at line 278 of file plug_deconvolve.c. |