@@ -0,0 +1,2474 @@
+package org.geneview.core.application.mapping;%0A%0Aimport java.io.BufferedReader;%0Aimport java.io.FileReader;%0Aimport java.io.IOException;%0Aimport java.io.PrintWriter;%0Aimport java.util.StringTokenizer;%0A%0A/**%0A * Helper class that extracts multiple accession numbers mapped to the same storage index. %0A * separated.%0A * EXAMPLE: %0A * Input   NM_012156.2;NM_177996.1%091770%0A * Output: NM_012156.2;1770%0A *         NM_177996.1;1770%0A * %0A * @author Marc Streit%0A *%0A */%0Apublic class MultipleAccessionCodeExtractor %7B%0A%09%0A%09protected static char cAccessionToExpressionStorageIndexDelimiter = ';';%0A%09%0A%09protected static String sMultipleAccessionSeparator = %22,%22;%0A%09%0A%09protected PrintWriter writer;%0A%09%09%09%0A%09public MultipleAccessionCodeExtractor() throws IOException %7B%0A%09%09%0A%09%09writer = %0A%09%09%09new PrintWriter(%22data/genome/mapping/accession_code_2_microarray_expression_storage_index.map%22);%0A%09%7D                                       %0A%09%0A%09protected void convertData() %0A%09throws IOException %7B%0A%09%09%0A%09    // Reading input by lines%0A%09    BufferedReader in = new BufferedReader(%0A%09      new FileReader(%22data/genome/mapping/accession_code_2_microarray_expression_storage_index_ORIG.map%22));%0A%09%0A%09    String sInputLine = %22%22;%0A%09    String sAccessionCodes = %22%22;%0A%09    String sMicroarrayExpressionStorageIndex = %22%22;%0A%09    %0A%09    while((sInputLine = in.readLine())!= null)%0A%09    %7B%0A%09    %09sAccessionCodes = sInputLine.substring(0, sInputLine.indexOf(cAccessionToExpressionStorageIndexDelimiter));%0A%09    %09%0A%09%09%09StringTokenizer strTokenText = %0A%09%09%09%09new StringTokenizer(sAccessionCodes, sMultipleAccessionSeparator);%0A%09%09%09%0A%09%09%09// Nothing todo because there is only one or none accession%0A%09%09%09if (strTokenText.countTokens() %3C= 1)%0A%09%09%09%7B%0A%09%09%09%09// Write out original input line without modification%0A%09%09%09%09writer.println(sInputLine);%0A%09%09%09%7D%0A%09%09%09else%0A%09%09%09%7B%0A%09%09%09%09sMicroarrayExpressionStorageIndex = sInputLine.substring(%0A%09%09%09%09%09%09sInputLine.indexOf(cAccessionToExpressionStorageIndexDelimiter)+1, sInputLine.length());%0A%09%09%09%09%0A%09%09%09%09while (strTokenText.hasMoreTokens()) %0A%09%09%09%09%7B%0A%09%09%09%09%09writer.println(%0A%09%09%09%09%09%09strTokenText.nextToken() + cAccessionToExpressionStorageIndexDelimiter + sMicroarrayExpressionStorageIndex);%0A%09%09%09%09%7D%09%0A%09%09%09%7D%0A%09    %7D%0A%09%09%09%0A%09    in.close();%0A%09    %0A%09    writer.flush();%0A%0A%09%7D%0A%09%0A    public static void main(String%5B%5D args) %7B%0A    %09%0A    %09try %7B%09%0A    %09%09MultipleAccessionCodeExtractor enzymeCodeConverter = %0A        %09%09new MultipleAccessionCodeExtractor();%0A        %09%0A    %09%09enzymeCodeConverter.convertData();%0A    %09%09%0A%09%09%7D catch (Exception e)%0A%09%09%7B%0A%09%09%09e.printStackTrace();%0A%09%09%7D    %09%0A    %7D%0A%7D

Added class that can resolve multiple accession numbers to expression storage index. Example: Input: NM_0101;NM_0202 770 Output: NM_0101 770 NM_0202 770