diff options
author | xiangzhou | 2014-09-22 11:06:02 -0400 |
---|---|---|
committer | xiangzhou | 2014-09-22 11:06:02 -0400 |
commit | 7762722f264adc402ea3b0f21923b18f072253ba (patch) | |
tree | 879ed22943d424b52bd04b4ee6fbdf51616dc9a9 /src/vc.h | |
parent | 44faf98d2c6fe56c916cace02fe498fc1271bd9d (diff) | |
download | pangemma-7762722f264adc402ea3b0f21923b18f072253ba.tar.gz |
version 0.95alpha
Diffstat (limited to 'src/vc.h')
-rw-r--r-- | src/vc.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/vc.h b/src/vc.h new file mode 100644 index 0000000..f34d72e --- /dev/null +++ b/src/vc.h @@ -0,0 +1,82 @@ +/* + Genome-wide Efficient Mixed Model Association (GEMMA) + Copyright (C) 2011 Xiang Zhou + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef __VC_H__ +#define __VC_H__ + +#include "gsl/gsl_vector.h" +#include "gsl/gsl_matrix.h" + + +#ifdef FORCE_FLOAT +#include "param_float.h" +#include "io_float.h" +#else +#include "param.h" +#include "io.h" +#endif + +using namespace std; + + + +class VC_PARAM +{ + +public: + const gsl_matrix *K; + const gsl_matrix *W; + const gsl_vector *y; + gsl_matrix *P; + gsl_vector *Py; + gsl_matrix *KPy_mat; + gsl_matrix *PKPy_mat; + gsl_matrix *Hessian; +}; + + + + +class VC { + +public: + // IO related parameters + string file_out; + string path_out; + + vector<double> v_sigma2; + vector<double> v_se_sigma2; + vector<double> v_pve; + vector<double> v_se_pve; + vector<double> v_traceG; + vector<double> v_beta; + vector<double> v_se_beta; + + double time_UtX; + double time_opt; + + // Main functions + void CopyFromParam (PARAM &cPar); + void CopyToParam (PARAM &cPar); + void CalcVChe (const gsl_matrix *K, const gsl_matrix *W, const gsl_vector *y); + void CalcVCreml (const gsl_matrix *K, const gsl_matrix *W, const gsl_vector *y); +}; + +#endif + + |