aboutsummaryrefslogtreecommitdiff
path: root/src/vc.h
diff options
context:
space:
mode:
authorxiangzhou2016-05-23 17:05:35 -0400
committerxiangzhou2016-05-23 17:05:35 -0400
commit943e970c9cbc184dcca679fbe455f48c32242cdc (patch)
tree70369d969dee3432e09e345c8106a541ac0d5a76 /src/vc.h
parent3ab77854a52ac016b9e2b824858f5f0c695d4170 (diff)
downloadpangemma-943e970c9cbc184dcca679fbe455f48c32242cdc.tar.gz
version 0.95alpha
Diffstat (limited to 'src/vc.h')
-rw-r--r--src/vc.h41
1 files changed, 37 insertions, 4 deletions
diff --git a/src/vc.h b/src/vc.h
index f34d72e..d4a9779 100644
--- a/src/vc.h
+++ b/src/vc.h
@@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef __VC_H__
+#ifndef __VC_H__
#define __VC_H__
#include "gsl/gsl_vector.h"
@@ -38,7 +38,7 @@ using namespace std;
class VC_PARAM
{
-public:
+public:
const gsl_matrix *K;
const gsl_matrix *W;
const gsl_vector *y;
@@ -47,18 +47,34 @@ public:
gsl_matrix *KPy_mat;
gsl_matrix *PKPy_mat;
gsl_matrix *Hessian;
+ bool noconstrain;
};
+
class VC {
public:
// IO related parameters
+ size_t a_mode;
+ string file_cat;
+ string file_beta;
+ string file_cor;
+ string file_mq;
+ string file_ms;
+
string file_out;
string path_out;
+ set<string> setSnps;
+
+ size_t ni_total_ref, ns_total_ref, ns_pair;
+ size_t ni_total, ns_total, ns_test;
+ size_t n_vc;
+
+ double pve_total, se_pve_total;
vector<double> v_sigma2;
vector<double> v_se_sigma2;
vector<double> v_pve;
@@ -67,16 +83,33 @@ public:
vector<double> v_beta;
vector<double> v_se_beta;
+ size_t crt;
+ double window_cm, window_bp, window_ns;
+
double time_UtX;
double time_opt;
-
+
// Main functions
void CopyFromParam (PARAM &cPar);
void CopyToParam (PARAM &cPar);
+ void WriteFile_qs (const gsl_vector *s_vec, const gsl_vector *q_vec, const gsl_vector *qvar_vec, const gsl_matrix *S_mat, const gsl_matrix *Svar_mat);
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);
+ void CalcVCreml (const bool noconstrain, const gsl_matrix *K, const gsl_matrix *W, const gsl_vector *y);
};
+void CalcVCss(const gsl_matrix *Vq, const gsl_matrix *S_mat, const gsl_matrix *Svar_mat, const gsl_vector *q_vec, const gsl_vector *s_vec, const double df, vector<double> &v_pve, vector<double> &v_se_pve, double &pve_total, double &se_pve_total, vector<double> &v_sigma2, vector<double> &v_se_sigma2, vector<double> &v_enrich, vector<double> &v_se_enrich);
+
+
+bool BimbamXwz (const string &file_geno, const int display_pace, vector<int> &indicator_idv, vector<int> &indicator_snp, const vector<size_t> &vec_cat, const gsl_vector *w, const gsl_vector *z, size_t ns_test, gsl_matrix *XWz);
+bool PlinkXwz (const string &file_bed, const int display_pace, vector<int> &indicator_idv, vector<int> &indicator_snp, const vector<size_t> &vec_cat, const gsl_vector *w, const gsl_vector *z, size_t ns_test, gsl_matrix *XWz);
+bool MFILEXwz (const size_t mfile_mode, const string &file_mfile, const int display_pace, vector<int> &indicator_idv, vector<vector<int> > &mindicator_snp, const vector<size_t> &vec_cat, const gsl_vector *w, const gsl_vector *z, gsl_matrix *XWz);
+
+bool BimbamXtXwz (const string &file_geno, const int display_pace, vector<int> &indicator_idv, vector<int> &indicator_snp, const gsl_matrix *XWz, size_t ns_test, gsl_matrix *XtXWz);
+bool PlinkXtXwz (const string &file_bed, const int display_pace, vector<int> &indicator_idv, vector<int> &indicator_snp, const gsl_matrix *XWz, size_t ns_test, gsl_matrix *XtXWz);
+bool MFILEXtXwz (const size_t mfile_mode, const string &file_mfile, const int display_pace, vector<int> &indicator_idv, vector<vector<int> > &mindicator_snp, const gsl_matrix *XWz, gsl_matrix *XtXWz);
+
+void CalcCIss(const gsl_matrix *Xz, const gsl_matrix *XWz, const gsl_matrix *XtXWz, const gsl_matrix *S_mat, const gsl_matrix *Svar_mat, const gsl_vector *w, const gsl_vector *z, const gsl_vector *s_vec, const vector<size_t> &vec_cat, const vector<double> &v_pve, vector<double> &v_se_pve, double &pve_total, double &se_pve_total, vector<double> &v_sigma2, vector<double> &v_se_sigma2, vector<double> &v_enrich, vector<double> &v_se_enrich);
+
#endif