public Double testModuleClinical(String thisNetwork, int limit, boolean flag){
		if (this.stat.toUpperCase().equals("FISHER")){
			return testModuleFisher(thisNetwork, limit);
		}

		String[] genes = thisNetwork.split(":");
		HashSet<String> truePatients = new HashSet<String>();
		String[] thesePatients;
		
		for (int i=0; i<genes.length; i++){
			thesePatients = allGeneSamplesMap.get(genes[i]).split(":");
			for (int t=0; t<thesePatients.length; t++){
				if (!thesePatients[t].equals("no_sample"))
				truePatients.add(thesePatients[t]);
			}
		}

		
		int alpha=truePatients.size();
		
		if (alpha<limit){
			return null;
		}
		
		if (flag){
			return Double.valueOf(1);
		}
		
		ArrayDeque<Double> time1 = new ArrayDeque<Double>();
		ArrayDeque<Double> time2 = new ArrayDeque<Double>();
		ArrayDeque<Double> censor1 = new ArrayDeque<Double>();
		ArrayDeque<Double> censor2 = new ArrayDeque<Double>();
		
		for (int i=0; i<allPatients.length; i++){
			if (truePatients.contains(allPatients[i])){
				time1.add(followupDays[i]);
				censor1.add(censor[i]);
			}
			else{
				time2.add(followupDays[i]);
				censor2.add(censor[i]);
			}
		}

		Double pValue = Double.valueOf(0);

		Double[] result = logRankObject.logRank(time1, time2, censor1, censor2);
		pValue = result[2];
		return pValue;
	}