void egHWU::sgLocusAssoc() { transX(); prepareY(); //cout<<_Y.sum()<<"\n"; //cout<<_Y.squaredNorm()<<"\n"; stdW(); _vec_pvalue.clear(); double pvalue=1; vector<double> x; cout<<"\n"; for(int i=0; i<_n_snp; i++){ cout<<i+1<<"th SNP"; x.clear(); //cout<<":"<<(_datafile->getLocus(i))->name; prepareX(i,x); pvalue=hwu_liu(x); _vec_pvalue.push_back(pvalue); cout<<"\r"; cout.flush(); } }
Matrix4x4& Matrix4x4::rotate(float rx, float ry, float rz) { Matrix4x4 transX(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, cosf(rx), -sinf(rx), 0.0f, 0.0f, sinf(rx), cosf(rx), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); Matrix4x4 transY(cosf(ry), 0.0f, -sinf(ry), 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, sinf(ry), 0.0f, cosf(ry), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); Matrix4x4 transZ(cosf(rz), -sinf(rz), 0.0f, 0.0f, sinf(rz), cosf(rz), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); return *this *= transX * transY * transZ; }
Matrix4x4& Matrix4x4::rotate(const Vector3& r) { float rx = r.x; float ry = r.y; float rz = r.z; Matrix4x4 transX(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, cosf(rx), -sinf(rx), 0.0f, 0.0f, sinf(rx), cosf(rx), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); Matrix4x4 transY(cosf(ry), 0.0f, -sinf(ry), 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, sinf(ry), 0.0f, cosf(ry), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); Matrix4x4 transZ(cosf(rz), -sinf(rz), 0.0f, 0.0f, sinf(rz), cosf(rz), 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); return *this *= transX * transY * transZ; }
void egHWU::sgLocusRank() { transX(); prepareY(); stdW(); if(par::multi_core){ D2F(); getRankZfltMp(); }else{ if(!par::hwu_flt){ getRankZ(); }else{ D2F(); getRankZfloat(); } } vector<double> x; cout<<"\nP-value for ranked:\n"; double pvalue; for(int i_=0; i_<_idx.size(); i_++){ int i=_idx[i_]; cout<<i_+1<<"th SNP"; x.clear(); //cout<<":"<<(_datafile->getLocus(i))->name; prepareX(i,x); pvalue=hwu_liu(x); _vec_pvalue.push_back(pvalue); cout<<"\r"; cout.flush(); } }