@@ -0,0 +1,2988 @@
+package com.github.kirby;%0A%0Aimport java.io.*;%0A%0Apublic class RecallTransformer %7B%0A%0A    private String inputFilePath;%0A    private String outputFilePath;%0A%0A%0A    public RecallTransformer(String propertyFile) throws IOException %7B%0A%0A        transformFile(propertyFile);%0A%0A    %7D%0A%0A    private void transformFile(String propertyFile) throws IOException %7B%0A%0A        FileInputStream fis = new FileInputStream(new File(propertyFile));%0A        BufferedReader propReader = new BufferedReader(new InputStreamReader(fis));%0A%0A        String line;%0A        while((line = propReader.readLine()) != null) %7B%0A            String%5B%5D propDetails = line.split(%22%5C%5Ct%22);%0A%0A            if (propDetails%5B0%5D.equals(%22runDataFile%22)) %7B%0A                this.outputFilePath = propDetails%5B3%5D;%0A            %7D%0A%0A            if (propDetails%5B0%5D.equals(%22runDataUploadedFile%22))%7B%0A                this.inputFilePath = propDetails%5B1%5D;%0A            %7D%0A%0A        %7D%0A%0A        BufferedReader inputReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(this.inputFilePath))));%0A        BufferedWriter outputWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(this.outputFilePath))));%0A%0A        String inputLine;%0A        int lineTrack = 0;%0A        int sampleIndex = 0;%0A%0A        while((inputLine = inputReader.readLine()) != null)%7B%0A%0A            String%5B%5D fields = inputLine.split(%22%5Ct%22);%0A%0A%0A            //Header Row.. Convert Sample to VisitId%5CtSequence Number%0A            if (lineTrack == 0)%7B%0A%0A                for(int i = 0; i %3C fields.length; i++)%7B%0A                    if (fields%5Bi%5D.equalsIgnoreCase(%22SAMPLE%22))%7B%0A                        sampleIndex = i;%0A                        outputWriter.write(%22ParticipantID%5CtSequence_Num%5Ct%22);%0A                    %7D else %7B%0A                        outputWriter.write(fields%5Bi%5D + %22%5Ct%22);%0A                    %7D%0A%0A                %7D%0A                outputWriter.newLine();%0A%0A%0A            //Body of TSV... Convert the sample field into two (0:ParticipantId, 1:Sequence_Num), otherwise output as normal%0A            %7D else %7B%0A                for(int i = 0; i %3C fields.length; i++)%7B%0A                    if (i == sampleIndex)%7B%0A                        String%5B%5D sampleSplit = fields%5Bi%5D.split(%22%5C%5C.%22);%0A                        outputWriter.write(String.format(%22%25s%5Ct%25s%5Ct%22, sampleSplit%5B0%5D, sampleSplit%5B1%5D));%0A%0A                    %7D else %7B%0A                        outputWriter.write(fields%5Bi%5D + %22%5Ct%22);%0A                    %7D%0A                %7D%0A                outputWriter.newLine();%0A            %7D%0A%0A            lineTrack++;%0A%0A        %7D%0A        outputWriter.newLine();%0A%0A        outputWriter.flush();%0A        outputWriter.close();%0A        inputReader.close();%0A%0A    %7D%0A%0A    public static void main(String%5B%5D args) %7B%0A%0A        if (args.length != 1)%7B%0A            throw new IllegalArgumentException(%22Invalid number of arguments%22);%0A        %7D%0A%0A        try %7B%0A            RecallTransformer ft = new RecallTransformer(args%5B0%5D);%0A        %7D catch (IOException e)%7B%0A            e.printStackTrace();%0A        %7D%0A%0A    %7D%0A%7D%0A

Add recall transformation script