diff --git a/src/main/java/org/ecocean/servlet/export/KinalyzerExport.java b/src/main/java/org/ecocean/servlet/export/KinalyzerExport.java index 2c692dffb5..c18a3367cc 100755 --- a/src/main/java/org/ecocean/servlet/export/KinalyzerExport.java +++ b/src/main/java/org/ecocean/servlet/export/KinalyzerExport.java @@ -21,7 +21,12 @@ -//adds spots to a new encounter +/* + * Originally created to support allele export for kinship analysis with the University of Chicago's + * Kinalyzer tool (now gone), this export format has been modified to be a generic inividual genetics tool, + * allowing for export of individual ID, haplotype, genetic sex, and named allele pairs for any species. + * + */ public class KinalyzerExport extends HttpServlet{ @@ -48,7 +53,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr String context="context0"; context=ServletUtilities.getContext(request); Shepherd myShepherd = new Shepherd(context); - myShepherd.setAction("KinalyzerExport"); + myShepherd.setAction("IndividualSearchGeneticsExport"); //setup data dir String rootWebappPath = getServletContext().getRealPath("/"); @@ -58,7 +63,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr File encountersDir=new File(shepherdDataDir.getAbsolutePath()+"/encounters"); if(!encountersDir.exists()){encountersDir.mkdirs();} - String kinFilename = "kinalyzer_export_" + request.getRemoteUser() + ".csv"; + String kinFilename = "individualSearch_genetics_export_" + request.getRemoteUser() + ".csv"; File kinFile = new File(encountersDir.getAbsolutePath()+"/" + kinFilename); @@ -84,29 +89,47 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr query2Individuals = queryResult2.getResult(); int numSearch2Individuals = query2Individuals.size(); - //now let's start writing output - + //now let's start writing header row + String headerRow = "Individual ID, Individual Default Name, Haplotype, Genetic Sex"; //Lines 2+: write the loci //let's calculate Fst for each of the loci //iterate through the loci List loci=myShepherd.getAllLoci(); int numLoci=loci.size(); - - //List haplos=myShepherd.getAllHaplotypes(); - //int numHaplos=haplos.size(); + //let's add loci to the header row + for(int r=0;r values=indie.getAlleleValuesForLocus(locus); @@ -119,7 +142,8 @@ else if(indie.getAlleleValuesForLocus(locus).size()==1){ lociString+=(values.get(0)+","+values.get(0)+","); hasValues=true; } - else{lociString+="-1,-1,";} + //else{lociString+="-1,-1,";} + else{lociString+=",,";} } @@ -127,7 +151,7 @@ else if(indie.getAlleleValuesForLocus(locus).size()==1){ if(hasValues)outp.write(lociString.substring(0, (length-1))+"\r\n"); - //test + } @@ -163,10 +187,12 @@ else if(indie.getAlleleValuesForLocus(locus).size()==1){ //out.println("

Error encountered

"); //out.println("

Please let the webmaster know you encountered an error at: KinalyzerExport servlet.

"); e.printStackTrace(); - myShepherd.rollbackDBTransaction(); - myShepherd.closeDBTransaction(); + + } + finally{ + myShepherd.rollbackDBTransaction(); + myShepherd.closeDBTransaction(); } - myShepherd=null; //out.close(); //out=null; } diff --git a/src/main/webapp/individualSearchResultsExport.jsp b/src/main/webapp/individualSearchResultsExport.jsp index 7764c0da63..456aedefe8 100755 --- a/src/main/webapp/individualSearchResultsExport.jsp +++ b/src/main/webapp/individualSearchResultsExport.jsp @@ -178,8 +178,7 @@ Click here

- - +
Kinalyzer CSV File
Link: http://kinalyzer.cs.uic.edu
Genetics Export CSV File
Click here