/*
* 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();
}
}