def get_qFDR(p):
	"""Calculate the q-values using FDR correction"""
	n = len(p) 
	q = np.zeros((n,n))
	for i in range(n):
		tmp = p[i]
		# hide the element refereing to i,i comparision
		tmp[i]=np.nan
		_,qTmp,_ = statsUtil.fdr_bh(tmp)
		q[i] = qTmp
	
	return(q)
def getImpInfo(outDir, labels, name="fullACEImpResults.dat"):
    """Get the importance scores, the p-values and the q-values 
	for the importance score run results in indicated outDir.
	Scores are returned in the same order as labels."""
    # get data
    impPath = outDir + "/" + name
    data = np.loadtxt(impPath, dtype=str, delimiter="\t")
    pTmp = np.array(data[:, 2], dtype=float)
    impTmp = np.array(data[:, 3], dtype=float)
    labelsTmp = data[:, 1]
    # arrange data
    _, qTmp, _ = statsUtil.fdr_bh(pTmp)
    # rearange
    n = len(labels)
    p = np.zeros(n) + np.nan
    q = np.zeros(n) + np.nan
    imp = np.zeros(n) + np.nan
    m = len(labelsTmp)
    for i in range(m):
        p[labels == labelsTmp[i]] = pTmp[i]
        q[labels == labelsTmp[i]] = qTmp[i]
        imp[labels == labelsTmp[i]] = impTmp[i]

    return (imp, p, q)