/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package sequencing; import java.io.File; import java.io.IOException; import java.util.ArrayList; import sequencing.TraceExtract.ResultType; /** * * @author benjaminbubenheim */ public class Tester { public static void main(String[] args){ // example1(); // example2(); example3(); // example4(); // example5(); } /** * This is example is perfect data that was split over 2 reads */ private static void example1() { //Load the .abi file(s) that should match that sequence ABITrace abi1=null, abi2=null; try{ //Corresponds to BG4_seq abi1=new ABITrace(new File("BG4_ca998_2010-03-20_B03_029.ab1")); abi2=new ABITrace(new File("BG4_G00101_2010-03-19_E10_072.ab1")); } catch(IOException e){ System.out.println("The ABI files need to be put in the class path of the project"); } //Put the ABI's into an arraylist, they don't need to be in any special order ArrayList<ABITrace> abis=new ArrayList<ABITrace>(); abis.add(abi1); abis.add(abi2); //Put in the target sequence to check String BG4_seq="GAATTCATGAGATCTCAGCTGAAGTGACCGGATTAGCAACGCAGTAACCCGAAATCCTCTTTGACAAAGACAAAGCGTGTCAGGCTGATTCTGATGCGCTTTTTTTTGAAATGTCACAAAAATTCCATGCGGGAGATGAGAGCTAAAATCCCCGTGCAGAACTTTCCACCCAGGGCGAGAAAACTTGTCATTTTGACCTGTTCGCCCTTCGGAACAGTCGAAATCGATCGCGCATCGCTTTCGTGCATAGTTATGCAGCCCTCTAAAAACGATTCTGGCGCGTTTTTCTGGTTTGGCCTGGTGTTTTCTTGTCTTTTTGCGTTTTTTGCGCCAGAAAGCGACTGAGGGCGTTTTAAGGGGTACGTACAACGGGAGTTATGGTAAATGGATCGGGTTTTCGGGAAGGTTCGACAGGATTTGCCGTTGGGTGTAGTGTAAGCGACTGAAAAACAAACGCCCCTGAAATCATGTCCAGATCCGGCAAGATTCAACATGAAATACAGAGGGCGTGTAGGTCGCATAACCCGGAGTGAATCGTAACACATGAGCGCCGCGCTTCAATACTTCGACGAAAATTTACCCCATCGTCCCTATCACACGGATGATCTCGCTTTTGGTCTTCGCATCTCCGGAAAAGGGGGTGCGCTTCTTGGGCGGTACCTACAGCACAACCAGCCTCATGCGCAGTTCTGGGTGGTTTTTGATGTTGACCGGGGGGGGGCGGCGATTGGGAGGAGCGACAAGAACCCCCCCCCGACCAACACCATAAAAAAAACCGCCAACGATCACCCCCACCTGCTGTACTCACTCAATATCGCCGTGAGAACCGCGCCTGCTGCTTCGGTTAAGGCGCTGAAATACGCCGCCGCGATTGAACGTGCGTTGTGTGAAAAAAAGGGCGCAGATGTAAACTACAGCGGCCTGATTTGCAAAAATCCGTTCCATCTGGAATGGCAGGTGATGGAGTGGCGTGAGGAAGCCTATACCCTCGATGAACTGGCTGATTATCTTGATTTGAGCACTTCAGCGCGCCGTAGCATCGATAAACATTACGGGATGGGGCGAAACTGCCATCTGTTCGAAATGACGCGCAAATGGGCTTACAGGGCGATTCGTCAGGGCTGGCCAGCATTCTCACAGTGGCTTGATGCCGTGATTCAGCGTGTCGAAATGTACAACGCATCGCTTCCCGTTCCGCTTTCACCTCCTGAATGTCGGGCTATTGGCAAGAGTATTGCGAAATACACGCACAGGAACTTCACGGCGGAAACTTTCGCACAGTATGTGGCTGATACGCACACGCCAGAAATACAGGCCAAGAGAGGCAGGAAAGGTGGCATCGCTAAAGGCGAAGCCTACGATGACAAGCGTTTCATGGCGCTATGTATGCTGGAGAATGGATATTCTCAGAAAGCTATTGCGGCGATGTTGGAGGTTTCTACTCGAACCATTCGAAACTGGAAAAGCGGAAAATAGGGATCC"; //Create the analyzer Analyzer analysis=new Analyzer(abis, BG4_seq); //Run the analysis ResultType rep = analysis.go(); //Instantiate the GUI (or redirect it to an image) analysis.launchReport(); } /** * This is the same data as in example1, but only the forward read is included so most sites are ambiguous. * The algorithm scores things well when the quality of the data is good with full coverage. Things get * a little sketchy when the coverage is incomplete as it has to make decisions about whether the low quality * data is real or not. Those are all done with heuristics in ABITrace when it goes and crops the read's 3' end * based on its quality, in the MIN_QUALITY and MIN_AVERAGE_QUALITY paramters of Analyzer, and then the final * decision making happens in TraceExtract around line 148 * */ private static void example2() { //Load the .abi file(s) that should match that sequence ABITrace abi1=null; try{ //Corresponds to BG4_seq abi1=new ABITrace(new File("BG4_ca998_2010-03-20_B03_029.ab1")); } catch(IOException e){ System.out.println("The ABI files need to be put in the class path of the project"); } //Put the ABI's into an arraylist, they don't need to be in any special order ArrayList<ABITrace> abis=new ArrayList<ABITrace>(); abis.add(abi1); //Put in the target sequence to check String BG4_seq="GAATTCATGAGATCTCAGCTGAAGTGACCGGATTAGCAACGCAGTAACCCGAAATCCTCTTTGACAAAGACAAAGCGTGTCAGGCTGATTCTGATGCGCTTTTTTTTGAAATGTCACAAAAATTCCATGCGGGAGATGAGAGCTAAAATCCCCGTGCAGAACTTTCCACCCAGGGCGAGAAAACTTGTCATTTTGACCTGTTCGCCCTTCGGAACAGTCGAAATCGATCGCGCATCGCTTTCGTGCATAGTTATGCAGCCCTCTAAAAACGATTCTGGCGCGTTTTTCTGGTTTGGCCTGGTGTTTTCTTGTCTTTTTGCGTTTTTTGCGCCAGAAAGCGACTGAGGGCGTTTTAAGGGGTACGTACAACGGGAGTTATGGTAAATGGATCGGGTTTTCGGGAAGGTTCGACAGGATTTGCCGTTGGGTGTAGTGTAAGCGACTGAAAAACAAACGCCCCTGAAATCATGTCCAGATCCGGCAAGATTCAACATGAAATACAGAGGGCGTGTAGGTCGCATAACCCGGAGTGAATCGTAACACATGAGCGCCGCGCTTCAATACTTCGACGAAAATTTACCCCATCGTCCCTATCACACGGATGATCTCGCTTTTGGTCTTCGCATCTCCGGAAAAGGGGGTGCGCTTCTTGGGCGGTACCTACAGCACAACCAGCCTCATGCGCAGTTCTGGGTGGTTTTTGATGTTGACCGGGGGGGGGCGGCGATTGGGAGGAGCGACAAGAACCCCCCCCCGACCAACACCATAAAAAAAACCGCCAACGATCACCCCCACCTGCTGTACTCACTCAATATCGCCGTGAGAACCGCGCCTGCTGCTTCGGTTAAGGCGCTGAAATACGCCGCCGCGATTGAACGTGCGTTGTGTGAAAAAAAGGGCGCAGATGTAAACTACAGCGGCCTGATTTGCAAAAATCCGTTCCATCTGGAATGGCAGGTGATGGAGTGGCGTGAGGAAGCCTATACCCTCGATGAACTGGCTGATTATCTTGATTTGAGCACTTCAGCGCGCCGTAGCATCGATAAACATTACGGGATGGGGCGAAACTGCCATCTGTTCGAAATGACGCGCAAATGGGCTTACAGGGCGATTCGTCAGGGCTGGCCAGCATTCTCACAGTGGCTTGATGCCGTGATTCAGCGTGTCGAAATGTACAACGCATCGCTTCCCGTTCCGCTTTCACCTCCTGAATGTCGGGCTATTGGCAAGAGTATTGCGAAATACACGCACAGGAACTTCACGGCGGAAACTTTCGCACAGTATGTGGCTGATACGCACACGCCAGAAATACAGGCCAAGAGAGGCAGGAAAGGTGGCATCGCTAAAGGCGAAGCCTACGATGACAAGCGTTTCATGGCGCTATGTATGCTGGAGAATGGATATTCTCAGAAAGCTATTGCGGCGATGTTGGAGGTTTCTACTCGAACCATTCGAAACTGGAAAAGCGGAAAATAGGGATCC"; //Create the analyzer Analyzer analysis=new Analyzer(abis, BG4_seq); //Run the analysis ResultType rep = analysis.go(); //Instantiate the GUI (or redirect it to an image) analysis.launchReport(); } /** * This is the same data as in example1, but i've put some errors into the target sequence (1 point mutation, 1 deletion, 1 insertion) */ private static void example3() { //Load the .abi file(s) that should match that sequence ABITrace abi1=null, abi2=null; try{ //Corresponds to BG4_seq abi1=new ABITrace(new File("BG4_ca998_2010-03-20_B03_029.ab1")); abi2=new ABITrace(new File("BG4_G00101_2010-03-19_E10_072.ab1")); } catch(IOException e){ System.out.println("The ABI files need to be put in the class path of the project"); } //Put the ABI's into an arraylist, they don't need to be in any special order ArrayList<ABITrace> abis=new ArrayList<ABITrace>(); abis.add(abi1); abis.add(abi2); //Put in the target sequence to check String BG4_seq="GAATTCATGAGATCTCAGCTGAAGTGACCGGATTAGCAACGCAGTAACCCGAAATCCTCTTTGACAAAGACAAAGCGTGTCAGGCTGATTCTGATGCGCTTTTTTTTGAAATcTCACAAAAATTCCATGCGGGAGATGAGAGCTAAAATCCCCGTGCAGAACTTTCCACCCAGGGCGAGAAAACTTGTCATTTTGACCTGTTCGCCCTTCGGAACAGTCGAAATCGATCGCGCATCGCTTTCGTGCATAGTTATGCAGCCCTCTAAAAACGATTCTGGCGCGtTTTTTCTGGTTTGGCCTGGTGTTTTCTTGTCTTTTTGCGTTTTTTGCGCCAGAAAGCGACTGAGGGCGTTTTAAGGGGTACGTACAACGGGAGTTATGGTAAATGGATCGGGTTTTCGGGAAGGTTCGACAGGATTTGCCGTTGGGTGTAGTGTAAGCGACTGAAAAACAAACGCCCCTGAAATCATGTCCAGATCCGGCAAGATTCAACATGAAATACAGAGGGCGTGTAGGTCGCATAACCCGGAGTGAATCGTACACATGAGCGCCGCGCTTCAATACTTCGACGAAAATTTACCCCATCGTCCCTATCACACGGATGATCTCGCTTTTGGTCTTCGCATCTCCGGAAAAGGGGGTGCGCTTCTTGGGCGGTACCTACAGCACAACCAGCCTCATGCGCAGTTCTGGGTGGTTTTTGATGTTGACCGGGGGGGGGCGGCGATTGGGAGGAGCGACAAGAACCCCCCCCCGACCAACACCATAAAAAAAACCGCCAACGATCACCCCCACCTGCTGTACTCACTCAATATCGCCGTGAGAACCGCGCCTGCTGCTTCGGTTAAGGCGCTGAAATACGCCGCCGCGATTGAACGTGCGTTGTGTGAAAAAAAGGGCGCAGATGTAAACTACAGCGGCCTGATTTGCAAAAATCCGTTCCATCTGGAATGGCAGGTGATGGAGTGGCGTGAGGAAGCCTATACCCTCGATGAACTGGCTGATTATCTTGATTTGAGCACTTCAGCGCGCCGTAGCATCGATAAACATTACGGGATGGGGCGAAACTGCCATCTGTTCGAAATGACGCGCAAATGGGCTTACAGGGCGATTCGTCAGGGCTGGCCAGCATTCTCACAGTGGCTTGATGCCGTGATTCAGCGTGTCGAAATGTACAACGCATCGCTTCCCGTTCCGCTTTCACCTCCTGAATGTCGGGCTATTGGCAAGAGTATTGCGAAATACACGCACAGGAACTTCACGGCGGAAACTTTCGCACAGTATGTGGCTGATACGCACACGCCAGAAATACAGGCCAAGAGAGGCAGGAAAGGTGGCATCGCTAAAGGCGAAGCCTACGATGACAAGCGTTTCATGGCGCTATGTATGCTGGAGAATGGATATTCTCAGAAAGCTATTGCGGCGATGTTGGAGGTTTCTACTCGAACCATTCGAAACTGGAAAAGCGGAAAATAGGGATCC"; //Create the analyzer Analyzer analysis=new Analyzer(abis, BG4_seq); //Run the analysis ResultType rep = analysis.go(); //Instantiate the GUI (or redirect it to an image) analysis.launchReport(); } /** * This example is a short test sequence that is a perfect match */ private static void example4() { //Load the .abi file(s) that should match that sequence ABITrace abi3=null; try{ //Corresponds to BG4_seq abi3=new ABITrace(new File("CF8_ca998_2010-03-25_C09_075.ab1")); } catch(IOException e){ System.out.println("The ABI files need to be put in the class path of the project"); } //Put the ABI's into an arraylist, they don't need to be in any special order ArrayList<ABITrace> abis=new ArrayList<ABITrace>(); abis.add(abi3); //Put in the target sequence to check String CF8_seq="GAATTCATGAGATCTTGTTCGGAGCCGCTTTAACCCACTCTGTGGAAGTGCTGGATCC"; //Create the analyzer Analyzer analysis=new Analyzer(abis, CF8_seq); //Run the analysis ResultType rep = analysis.go(); //Instantiate the GUI (or redirect it to an image) analysis.launchReport(); } /** * Another perfect split over 2 reads */ private static void example5() { //Load the .abi file(s) that should match that sequence ABITrace abi4=null, abi5=null; try{ //Corresponds to BG4_seq abi4=new ABITrace(new File("CC4_ca998_2010-03-27_A10_080.ab1")); abi5=new ABITrace(new File("CC4_G00101_2010-03-26_C02_012.ab1")); } catch(IOException e){ System.out.println("The ABI files need to be put in the class path of the project"); } //Put the ABI's into an arraylist, they don't need to be in any special order ArrayList<ABITrace> abis=new ArrayList<ABITrace>(); abis.add(abi4); abis.add(abi5); //Put in the target sequence to check String CC4_seq="GAATTCATGAGATCTAGAACCGCAACTCCCAATAAACGCAAACCCAAAACTCCAACGGATAATCGCTGATGGCTGCTAGACCCCGATCTCACAAAATCTCTATACCCAATTTATATTGCAAATTAGATAAGCGAACCGGAAAGGTATATTGGCAATACAAACATCCACTATCCGGTCGTTTTCATAGCTTAGGAACTGATGAGAATGAAGCAAAACAAGTTGCTACTGAAGCAAATACCATTATTGCTGAACAACGTACCAGACAAATATTAAGCGTCAATGAGCGTCTGGAAAGAATGAAAGGCAGGCGCTCAGACATTACGGTGACAGAATGGCTTGATAAATATATTTCTATCCAGGAGGACAGGCTGCAACATAATGAACTAAGACCCAACTCCTATCGGCAAAAAGGCAAACCCATTCGTCTTTTCCGTGAGCATTGTGGAATGCAACACCTCAAGGATATTACCGCACTTGATATTGCCGAAATAATTGATGCTGTAAAGGCTGAAGGTCATAACAGGATGGCGCAAGTCGTGAGAATGGTGTTGATCGACGTCTTCAAAGAAGCACAACACGCAGGACATGTTCCGCCAGGATTTAACCCAGCGCAGGCAACAAAACAACCGCGAAATCGAGTAAACCGCCAAAGATTGTCACTGCTCGAATGGCAGGCAATATTTGAAAGCGTAAGCAGACGGCAGCCCTATTTAAAATGCGGCATGCTACTTGCTCTTGTTACTGGACAACGTTTAGGCGATATCTGCAATTTGAAATTCTCTGATATATGGGACGACATGTTGCACATTACTCAGGAAAAAACCGGTTCAAAACTTGCTATTCCGCTTAACCTGAAATGCGATGCTCTGAATATTACCCTTCGTGAAGTTATATCTCAGTGCAGGGATGCTGTTGTTAGTAAATATCTGGTCCATTACCGTCACACTACCTCTCAAGCAAACAGAGGAGACCAGGTTTCTGCAAATACTCTGACAACGGCTTTTAAAAAGGCCAAGGAAAAATGTGGCATAAAATGGGAGCAAGGAACTGCGCCCACATTTCATGAACAGCGATCTCTGTCAGAACGATTATATCGGGAACAGGGTCTGGATACGCAAAAGTTGTTAGGCCATAAATCCAGAAAAATGACCGACCGATACAATGATGATCGTGGTAAAGACTGGATTATCGTAGATATCAAAACAGCATAGGGATCC"; //Create the analyzer Analyzer analysis=new Analyzer(abis, CC4_seq); //Run the analysis ResultType rep = analysis.go(); //Instantiate the GUI (or redirect it to an image) analysis.launchReport(); } }