anchor.diff:  		<%
   		System.out.println("GeneExprObjs: " + geneExprObjects.length);
   
  -    	gov.nih.nci.nautilus.resultset.ResultsetProcessor resultsetProc = new gov.nih.nci.nautilus.resultset.ResultsetProcessor();
  -    	//Assert.assertNotNull(geneExprObjects);
  -        //Assert.assertTrue(geneExprObjects.length > 0);
  -    	resultsetProc.handleGeneExprView(geneExprObjects, GroupType.DISEASE_TYPE_GROUP);
  -    	GeneExprSingleViewResultsContainer geneViewContainer = resultsetProc.getGeneViewResultsContainer();
  -    	Collection genes = geneViewContainer.getGeneResultsets();
  -    	Collection labels = geneViewContainer.getGroupsLabels();
  -    	Collection sampleIds = null;
  -    	StringBuffer header = new StringBuffer();
  -    	header.append("<table>\n<tr>\n"); //start the table
  -    	StringBuffer sampleNames = new StringBuffer();
  -        StringBuffer stringBuffer = new StringBuffer();
  -    	//get group size (as Disease or Agegroup )from label.size
  -        System.out.println("GroupSize= "+labels.size());
  -    	
  -        //set up the header for the table
  -    	header.append("<Td>Gene</td>\n<td>Reporter</td>\n");
  -    	sampleNames.append("<tr><Td> </td><Td> </tD>"); //start the second pseudo row
  -	   
  -		ArrayList cssLabels = new ArrayList(); //try to create the CSS dynamically
  -	   
  -    	for (Iterator labelIterator = labels.iterator(); labelIterator.hasNext();) {
  -        	String label = (String) labelIterator.next();
  -        	sampleIds = geneViewContainer.getBiospecimenLabels(label);        // how many samples per group (label)?	
  -	    	header.append("<td colspan="+sampleIds.size()+" class='"+label+"'>"+label+"</td>"); //remove this for table
  -	    	cssLabels.add(label);
  + ResultsContainer resultsContainer = ResultsetProcessor.handleGeneExprView(geneExprObjects, GroupType.DISEASE_TYPE_GROUP);
  +		if (resultsContainer instanceof GeneExprSampleViewContainer){
  +			GeneExprSampleViewContainer geneExprSampleViewContainer = (GeneExprSampleViewContainer) resultsContainer;
  +	        GeneExprSingleViewResultsContainer geneViewContainer = geneExprSampleViewContainer.getGeneExprSingleViewContainer();
  +	    	Collection genes = geneViewContainer.getGeneResultsets();
  +	    	Collection labels = geneViewContainer.getGroupsLabels();
  +	    	Collection sampleIds = null;
  +	    	StringBuffer header = new StringBuffer();
  +	    	header.append("<table>\n<tr>\n"); //start the table
  +	    	StringBuffer sampleNames = new StringBuffer();
  +	        StringBuffer stringBuffer = new StringBuffer();
  +	    	//get group size (as Disease or Agegroup )from label.size
  +	        System.out.println("GroupSize= "+labels.size());
   	    	
  -	           	for (Iterator sampleIdIterator = sampleIds.iterator(); sampleIdIterator.hasNext();) {
  -	            	sampleNames.append("<td class='"+label+"'>"+sampleIdIterator.next()+"</td>"); // print the samples row
  -	            	header.append("\t");
  -	           	}
  -           	header.deleteCharAt(header.lastIndexOf("\t"));
  -    	}
  -    	sampleNames.append("</tr>");
  -    	header.append("</tr>"); 
  -    	
  -		//generate the CSS once we have all the labels
  -		StringBuffer css = new StringBuffer();
  -		css.append("<style>\n");
  -		String color = "";
  -		String font = "";
  -		for (int i = 0; i < cssLabels.size(); i++) {
  -			if(i%2 == 0)
  -			{
  -				color = theColors[1];
  -				font = theColors[0];
  +	        //set up the header for the table
  +	    	header.append("<Td>Gene</td>\n<td>Reporter</td>\n");
  +	    	sampleNames.append("<tr><Td> </td><Td> </tD>"); //start the second pseudo row
  +		   
  +			ArrayList cssLabels = new ArrayList(); //try to create the CSS dynamically
  +		   
  +	    	for (Iterator labelIterator = labels.iterator(); labelIterator.hasNext();) {
  +	        	String label = (String) labelIterator.next();
  +	        	sampleIds = geneViewContainer.getBiospecimenLabels(label);        // how many samples per group (label)?	
  +		    	header.append("<td colspan="+sampleIds.size()+" class='"+label+"'>"+label+"</td>"); //remove this for table
  +		    	cssLabels.add(label);
  +		    	
  +		           	for (Iterator sampleIdIterator = sampleIds.iterator(); sampleIdIterator.hasNext();) {
  +		            	sampleNames.append("<td class='"+label+"'>"+sampleIdIterator.next()+"</td>"); // print the samples row
  +		            	header.append("\t");
  +		           	}
  +	           	header.deleteCharAt(header.lastIndexOf("\t"));
  +	    	}
  +	    	sampleNames.append("</tr>");
  +	    	header.append("</tr>"); 
  +	    	
  +			//generate the CSS once we have all the labels
  +			StringBuffer css = new StringBuffer();
  +			css.append("<style>\n");
  +			String color = "";
  +			String font = "";
  +			for (int i = 0; i < cssLabels.size(); i++) {
  +				if(i%2 == 0)
  +				{
  +					color = theColors[1];
  +					font = theColors[0];
  +				}
  +				else
  +				{
  +					color = theColors[0];
  +					font = theColors[1];
  +				}
  +			    css.append("td."+(String)(cssLabels.get(i))+ " { background-color: #"+color+"; color: "+font+" }\n");
   			}
  -			else
  -			{
  -				color = theColors[0];
  -				font = theColors[1];
  -			}
  -		    css.append("td."+(String)(cssLabels.get(i))+ " { background-color: #"+color+"; color: "+font+" }\n");
  -		}
  -		css.append("</style>\n");
  -		out.println(css.toString());
  -
  -
  -    	//System.out.println("Gene Count: "+genes.size());
  -    	out.println(header.toString());
  -		out.println(sampleNames.toString());
  -
  -    	for (Iterator geneIterator = genes.iterator(); geneIterator.hasNext();) {
  -    		GeneResultset geneResultset = (GeneResultset)geneIterator.next();
  -    		Collection reporters = geneResultset.getReporterResultsets();
  -        	//System.out.println("Reporter Count: "+reporters.size());
  -    		for (Iterator reporterIterator = reporters.iterator(); reporterIterator.hasNext();) {
  -        		ReporterResultset reporterResultset = (ReporterResultset)reporterIterator.next();
  -        		Collection groupTypes = reporterResultset.getGroupResultsets();
  -        		stringBuffer = new StringBuffer();
  -            	//System.out.println("Group Count: "+groupTypes.size());
  -        		String reporterName = reporterResultset.getReporter().getValue().toString();
  -        		
  -        		//get the gene name, and reporter Name
  -        		stringBuffer.append("<tr><td>"+geneResultset.getGeneSymbol().getValueObject().toString()+"</td><td>"+
  -    					reporterName+"</td>");
  -    			// System.out.println(groupTypes.size());
  -
  -				// iterate through the groups (lables) and get the results
  -        		for (Iterator labelIterator = labels.iterator(); labelIterator.hasNext();) {
  -        			// GroupResultset groupResultset = (GroupResultset)groupIterator.next();
  -					String label = (String) labelIterator.next();
  -        			GroupResultset groupResultset = reporterResultset.getGroupResultset(label);
  -        			
  -	        			// String label = groupResultset.getType().getValue().toString();
  -	        			sampleIds = geneViewContainer.getBiospecimenLabels(label);
  -	        			if(groupResultset != null)
  -        				{
  -	                     	for (Iterator sampleIdIterator = sampleIds.iterator(); sampleIdIterator.hasNext();) {
  -	                       		String sampleId = (String) sampleIdIterator.next();
  -	                       		SampleFoldChangeValuesResultset biospecimenResultset = groupResultset.getBioSpecimenResultset(sampleId);
  -	                       		if(biospecimenResultset != null){
  -	                       			Double ratio = (Double)biospecimenResultset.getFoldChangeRatioValue().getValue();
  -	                       			if(ratio != null)
  -		                       			stringBuffer.append("<Td class='"+label+"'>"+resultFormat.format(ratio)+" </td>");                                 
  -		                       		else
  -		                      			stringBuffer.append("<td class='"+label+"'>-</td>");
  -	                       		}
  -	                       		else 
  -	                       		{
  -	                       			stringBuffer.append("<td class='"+label+"'>-</td>");
  -	                       		}
  -	                       	}
  -                       }
  -                       else	{
  -                       for(int s=0;s<sampleIds.size();s++) 
  -                        	stringBuffer.append("<Td>++</td>");                      
  -                       }
  -
  -         		}
  -         		
  -        		// System.out.println(stringBuffer.toString());
  -        		out.println(stringBuffer.toString() + "</tr>");
  -    		}
  -    	}
  -			out.println("</table>");
  +			css.append("</style>\n");
  +			out.println(css.toString());
  +	
  +	
  +	    	//System.out.println("Gene Count: "+genes.size());
  +	    	out.println(header.toString());
  +			out.println(sampleNames.toString());
  +	
  +	    	for (Iterator geneIterator = genes.iterator(); geneIterator.hasNext();) {
  +	    		GeneResultset geneResultset = (GeneResultset)geneIterator.next();
  +	    		Collection reporters = geneResultset.getReporterResultsets();
  +	        	//System.out.println("Reporter Count: "+reporters.size());
  +	    		for (Iterator reporterIterator = reporters.iterator(); reporterIterator.hasNext();) {
  +	        		ReporterResultset reporterResultset = (ReporterResultset)reporterIterator.next();
  +	        		Collection groupTypes = reporterResultset.getGroupByResultsets();
  +	        		stringBuffer = new StringBuffer();
  +	            	//System.out.println("Group Count: "+groupTypes.size());
  +	        		String reporterName = reporterResultset.getReporter().getValue().toString();
  +	        		
  +	        		//get the gene name, and reporter Name
  +	        		stringBuffer.append("<tr><td>"+geneResultset.getGeneSymbol().getValueObject().toString()+"</td><td>"+
  +	    					reporterName+"</td>");
  +	    			// System.out.println(groupTypes.size());
  +	
  +					// iterate through the groups (lables) and get the results
  +	        		for (Iterator labelIterator = labels.iterator(); labelIterator.hasNext();) {
  +	        			// ViewByGroupResultset groupResultset = (ViewByGroupResultset)groupIterator.next();
  +						String label = (String) labelIterator.next();
  +	        			ViewByGroupResultset groupResultset = (ViewByGroupResultset) reporterResultset.getGroupByResultset(label);
  +	        			
  +		        			// String label = groupResultset.getType().getValue().toString();
  +		        			sampleIds = geneViewContainer.getBiospecimenLabels(label);
  +		        			if(groupResultset != null)
  +	        				{
  +		                     	for (Iterator sampleIdIterator = sampleIds.iterator(); sampleIdIterator.hasNext();) {
  +		                       		String sampleId = (String) sampleIdIterator.next();
  +		                       		SampleFoldChangeValuesResultset biospecimenResultset = groupResultset.getBioSpecimenResultset(sampleId);
  +		                       		if(biospecimenResultset != null){
  +		                       			Double ratio = (Double)biospecimenResultset.getFoldChangeRatioValue().getValue();
  +		                       			if(ratio != null)
  +			                       			stringBuffer.append("<Td class='"+label+"'>"+resultFormat.format(ratio)+" </td>");                                 
  +			                       		else
  +			                      			stringBuffer.append("<td class='"+label+"'>-</td>");
  +		                       		}
  +		                       		else 
  +		                       		{
  +		                       			stringBuffer.append("<td class='"+label+"'>-</td>");
  +		                       		}
  +		                       	}
  +	                       }
  +	                       else	{
  +	                       for(int s=0;s<sampleIds.size();s++) 
  +	                        	stringBuffer.append("<td>+</td>");                      
  +	                       }
  +	
  +	         		}
  +	         		
  +	        		// System.out.println(stringBuffer.toString());
  +	        		out.println(stringBuffer.toString() + "</tr>");
  +	    		}
  +	    	}
  +				out.println("</table>");
  +	}
   }
   else
   	out.println("<h4>No Results Available</h4>");
  
positive.code: gov.nih.nci.nautilus.query.GeneExpressionQuery,
  gov.nih.nci.nautilus.query.QueryManager,
  gov.nih.nci.nautilus.query.QueryType,
  gov.nih.nci.nautilus.view.ViewFactory,
  gov.nih.nci.nautilus.view.ViewType,
  gov.nih.nci.nautilus.queryprocessing.ge.GeneExpr,
  gov.nih.nci.nautilus.resultset.ResultsetProcessor,
  gov.nih.nci.nautilus.resultset.*,
  gov.nih.nci.nautilus.constants.Constants,
  java.text.DecimalFormat,
  java.util.*" %>
  
negative.code: 
  		// get the ResultSet[] from the session
          geneExprObjects = ( ResultSet[] ) (session.getAttribute(Constants.RESULTSET_KEY));
  System.out.println("geneExprObjects"+geneExprObjects.length);
  //see if theres at least on RS in the array and the RS exists
  if(geneExprObjects != null && geneExprObjects.length > 0) {      
  		%>
  