有病率・ジェノタイプ頻度・相対危険度からフェノタイプ別頻度

今、ある集団でSNPの3ジェノタイプの頻度がgen={g1,g2,g3}であり、あるフェノタイプの有病率がprevであり、3ジェノタイプの相対危険度がweight={w1,w2,w3}であるとすると、ケース群とコントロール群のジェノタイプ頻度は次のソースで得られる。これは、エクセルファイルだと、ここからたどる、こちら

	public static double[][] GenFreq(double[] gen,double[] weight,double prev){
		double [][] ret = new double[2][3];
		double sumaffected = 0;
		for(int i=0;i<gen.length;i++){
			sumaffected += gen[i]*weight[i];
		}
		for(int i=0;i<ret[0].length;i++){
			ret[0][i]=gen[i]*weight[i]*prev/sumaffected;
			ret[1][i]=gen[i]-ret[0][i];
			ret[0][i]/=prev;
			ret[1][i]/=(1-prev);
		}
		
		return ret;
	}