From 7762722f264adc402ea3b0f21923b18f072253ba Mon Sep 17 00:00:00 2001 From: xiangzhou Date: Mon, 22 Sep 2014 11:06:02 -0400 Subject: version 0.95alpha --- src/vc.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/vc.h (limited to 'src/vc.h') 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 . +*/ + +#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 v_sigma2; + vector v_se_sigma2; + vector v_pve; + vector v_se_pve; + vector v_traceG; + vector v_beta; + vector 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 + + -- cgit v1.2.3