public double getRatioLogRank(String genes){
		String[] g = genes.split(":");

		
		HashSet<String> gs = new HashSet<String>();
		for (int i=0; i<g.length; i++){
			gs.add(g[i]);
		}
		
		HashSet<String> inModulePatients = new HashSet<String>();
		
		for (int i=0; i<filteredSampleValues.size(); i++){
			if (gs.contains(filteredSampleValues.get(i)[0])){
				if (!filteredSampleValues.get(i)[1].equals("no_sample")){
					inModulePatients.add(filteredSampleValues.get(i)[1]);
				}
			}
		}
		
		ArrayList<Double> inModuleFollowup = new ArrayList<Double>();
		ArrayList<Double> outOfModuleFollowup = new ArrayList<Double>();
		
		for (int i=0; i<clinicalValues.size(); i++){
			if (inModulePatients.contains(clinicalValues.get(i)[0])){
				inModuleFollowup.add(Double.valueOf(clinicalValues.get(i)[2]));
			}
			else{
				outOfModuleFollowup.add(Double.valueOf(clinicalValues.get(i)[2]));
			}
		}
		
		if (inModuleFollowup.size()>0){
			
			double p1 = 0;
			if (inModuleFollowup.size() %2 == 0){
				p1 = ((double)inModuleFollowup.get(inModuleFollowup.size()/2) + (double) inModuleFollowup.get((inModuleFollowup.size()/2)-1))/2;
			}
			else{
				p1 = inModuleFollowup.get(inModuleFollowup.size()/2);
			}

			double p2 = 0;
			if (outOfModuleFollowup.size() %2 ==0){
				p2 = ((double)outOfModuleFollowup.get(outOfModuleFollowup.size()/2) + (double) outOfModuleFollowup.get((outOfModuleFollowup.size()/2)-1))/2;
			}
			else{
				p2 = outOfModuleFollowup.get(outOfModuleFollowup.size()/2);
			}
			return Math.log(p1/(double)p2);
		}
		else{
			return Double.NaN;
		}
		
		
	}