1 #include "mrilib.h"
2
mri_to_pval(MRI_IMAGE * im,int statcode,float * stataux)3 MRI_IMAGE * mri_to_pval( MRI_IMAGE *im , int statcode , float *stataux )
4 {
5 int nvox , ii ;
6 MRI_IMAGE *oim ;
7 float *far , *oar ;
8
9 ENTRY("mri_to_pval") ;
10
11 if( im == NULL || im->kind != MRI_float || !FUNC_IS_STAT(statcode) ) RETURN(NULL) ;
12 far = MRI_FLOAT_PTR(im) ; if( im == NULL ) RETURN(NULL) ;
13 nvox = im->nvox ;
14
15 oim = mri_new_conforming( im , MRI_float ) ;
16 oar = MRI_FLOAT_PTR(oim) ;
17
18 for( ii=0 ; ii < nvox ; ii++ ){
19 if( far[ii] != 0.0f ) oar[ii] = THD_stat_to_pval( fabsf(far[ii]), statcode,stataux ) ;
20 else oar[ii] = 1.0f ;
21 }
22
23 RETURN(oim) ;
24 }
25
26 /*----------------------------------------------------------------------------*/
27
mri_to_zscore(MRI_IMAGE * im,int statcode,float * stataux)28 MRI_IMAGE * mri_to_zscore( MRI_IMAGE *im , int statcode , float *stataux )
29 {
30 int nvox , ii ;
31 MRI_IMAGE *oim ;
32 float *far , *oar ;
33
34 ENTRY("mri_to_zscore") ;
35
36 if( im == NULL || im->kind != MRI_float || !FUNC_IS_STAT(statcode) ) RETURN(NULL) ;
37 far = MRI_FLOAT_PTR(im) ; if( im == NULL ) RETURN(NULL) ;
38 nvox = im->nvox ;
39
40 oim = mri_new_conforming( im , MRI_float ) ;
41 oar = MRI_FLOAT_PTR(oim) ;
42
43 for( ii=0 ; ii < nvox ; ii++ )
44 oar[ii] = THD_stat_to_zscore( far[ii], statcode,stataux ) ;
45
46 RETURN(oim) ;
47 }
48
49 /*----------------------------------------------------------------------------*/
50
mri_to_qval(MRI_IMAGE * im,floatvec * fdrcurve)51 MRI_IMAGE * mri_to_qval( MRI_IMAGE *im , floatvec *fdrcurve ) /* 01 Feb 2020 */
52 {
53 int nvox , ii ;
54 MRI_IMAGE *oim ;
55 float *far , *oar ;
56 float zval , qval ;
57
58 ENTRY("mri_to_qval") ;
59
60 if( im == NULL || im->kind != MRI_float || fdrcurve == NULL ) RETURN(NULL) ;
61 far = MRI_FLOAT_PTR(im) ; if( im == NULL ) RETURN(NULL) ;
62 nvox = im->nvox ;
63
64 oim = mri_new_conforming( im , MRI_float ) ;
65 oar = MRI_FLOAT_PTR(oim) ;
66
67 for( ii=0 ; ii < nvox ; ii++ ){
68 qval = 1.0f ;
69 if( far[ii] != 0.0f ){
70 zval = interp_floatvec(fdrcurve,fabsf(far[ii])) ;
71 if( zval > 0.0f ) qval = 2.0*qg(zval) ;
72 }
73 oar[ii] = qval ;
74 }
75
76 RETURN(oim) ;
77 }
78