public static void main(String[] args) { // MotifProbsN mAG=MotifProbsN.makeMotif("AG Exon Starts MP2", 11, 13, 11, 2); // MotifProbsN mGT=MotifProbsN.makeMotif("GT Exon Stops MP2", 3, 10, 3, 2); // // MotifProbsN eStarts2=MotifProbsN.makeMotif("Exon Starts MP2", 9, 11, 9, 2); // MotifProbsN eStops2=MotifProbsN.makeMotif("Exon Stops MP2", 3, 10, 3, 2); // // MotifProbsN gStarts2=MotifProbsN.makeMotif("Gene Starts MP2", 9, 11, 9, 2); // MotifProbsN gStops2=MotifProbsN.makeMotif("Gene Stops MP2", 3, 10, 3, 2); Motif m = eStops2; // Motif m=eStarts2; // Motif m=eStarts2_15; ArrayList<String> list = new ArrayList<String>(); boolean rcomp = false; if (args.length > 0) { for (String s1 : args) { String s = s1.toLowerCase(); if (s.equalsIgnoreCase("rcomp")) { rcomp = true; } if (s.contains("estart_ac")) { m = eStarts2_AC; } else if (s.contains("estart_15")) { m = eStarts2_15; } else if (s.contains("estart")) { m = eStarts2; } else if (s.contains("estop_gc")) { m = eStops2_GC; } else if (s.contains("estop")) { m = eStops2; } else if (s.contains("gstart")) { m = gStarts2; } else if (s.contains("gstop")) { m = gStops2; } else { list.add(s.toUpperCase()); } } } System.out.println("Using motif " + m); int initialLoc = 0; int increment = 1; // 1 for plus strand, -1 for minus strand // String s="NNNNNNNNAGCGGGAATCGGGGGGTCCTTCTGCTCCCCTGAGCGTCCTTCCTGTGTTCCCAGGC"+ // "ACTATCGCCTACCTGTTTTTCACCAACCGCCACGAGGTGAGGAAGATGACCCTGGACCGAAGCGAATACACCAGCCTCAT"+ // "CCCAAACTTGAAGAACGTGGTCGCCCTGGACACCGAGGTGGCCAGCAACAGAATATACTGGTCCGACCTGTCCCAAAGGA"+ // "AGATCTACAGGTGAGCCTTGGAGCCACACCCAGCGCTCAACCCCCGGTGGCGCGGGGGCCCCTCTCACTGACGCTCTCCT"+ // "TCCCCTGCTCCTCCCCCTCAGCACCCAAATCGACAGAGCCCCCGGCTTCTCCTCCTATGACACCGTCGTCAGCGAGGACC"+ // "TCCAGGCCCCTGATGGGCTGGCGGTGGACTGGATCCACAGCAACATATACTGGACAGACTCCATCCTGGGCACCGTCTCC"+ // "GTGGCCGACACCAAGGGCGTGAAGAGAAAGACGCTCTTCAAGGAGAAAGGCTCTAAGCCACGTGCCATCGTGGTGGATCC"+ // "CGTTCACGGGTGGGTGCTGCTAAAGCCGAGGGCCACGGAAGGAANNNNNNNN"; // "AAGTACAGGAATTATATGCCCCCAGGTAA * AGTACAGGAATTATATGCCCCCAGGTAAC" // String[] array={ // "GCCTACTTTGTATGATGACCCTGTCCT", // "AGCCCTGGCCGCCTACTTTGTATGATGACCCTGTCCTCCCTCACCCA", // }; // String[] array={ // "TGGCCGCCGCCGACCGTAAGTTTTGCGCGCAAACTCCC", // "TGGCCGCCGCCGACCGTTAAGTTTTGCGCGCAAACTCCC", // }; // String[] array={ // // "CAACTGCCAAGGGAAGGGCACGGTTAGCGGCACCCTCATAGGTAAGTGATGGCCCCAGACGCTGGTCTCTCTCCATCTGGACCTGGCCTGGGAGGTGGCTTGG", // // "CAACTGCCAAGGGAAGGGCACGGTTAGCGGCACCCTCATAGGTGAGTGATGGCCCCAGACGCTGGTCTCTCTCCATCTGGACCTGGCCTGGGAGGTGGCTTGG", // }; // String[] array={ // "GTCTTTCTCATGTGGTCCTTGTGTTCGTCGAGCAGGCCAGCAAGTGTGACAGTCATGGCACCCACCTGGCAGGGG", // "GTCTTTCTCATGTGGTCCTTGTGTTCGTTGAGCAGGCCAGCAAGTGTGACAGTCATGGCACCCACCTGGCAGGGG", // }; // String[] array={ // // "GCAGGGTCATGGTCACCGACTTCGAGAATGTGCCCGAGGAGGACGGGACCCGCCTCCACAGACAGGTAAGCACAGCCGTCTGATGGGAGGGCTGCCTCTGCCCATATCCCCATCCTGGAG", // // "GCAGGGTCATGGTCACCGACTTCGAGAATGTGCCCGAGGAGGACGGGACCCGCTTCCACAGACAGGTAAGCACGGCCGTCTGATGGGAGGGCTGCCTCTGCCCATATCCCCATCCTGGAG", // }; // String[] array={ // "RTGTTTTCACTCCAGCCACGGAGCTGGGTCTCTGGTCTCGGGGGCAGCTGTGTGACAGAGCGT" + // "GCCTCTCCCTACAGTGCTCTTCGTCTTCCTTTGCCTGGGGGTCTTCCTTCTATGGAAGAACTG", // "RTGTTTTCACTCCAGCCACGGAGCTGGGTCTCTGGTCTCGGGGGCAGCTGTGTGACAGAGCGT" + // "GCCTCTCCTTACAGTGCTCTTCGTCTTCCTTTGCCTGGGGGTCTTCCTTCTATGGAAGAACTG", // }; // String[] array={ //// "CAGCGAAGATGCGAAGGTGATTCCCGGGTGGG", //// "CAGCGAAGATGCGAAGGTGATTTCCGGGTGGG", // "GCGGCCGAAGCGGGCCATGGACGCGCTCAAGT", // "GCGGCCGGAGCGGGCCATGGACGCGCTCAAGT", // }; // String[] array={ // "AAGTATGTTTTTGCTTTTAGGAGGATTCTCT", // "AAGTATGTTTTTGTTTTTAGGAGGATTCTCT", // }; // String[] array={ // "TTAGGTTGCTGGTGTCTGTATAATGTGTGT"+ // "A"+ // "TCTTTGTTGCAGGTTTGTTTTTTATTCTGC", // // "TTAGGTTGCTGGTGTCTGTATAATGTGTGT"+ // "G"+ // "TCTTTGTTGCAGGTTTGTTTTTTATTCTGC" // }; // ATGTATTCTACTTTT[TCTTTT]AAGTATGTTTTTGTTTTTAGGAGGATTCTCTATGG // String[] array={ // "CAGGTCCTCGAGATCCTGGGATACAGGAAA", // "CAGGTCCTCGAGATCCTGGGATATAGGAAA" // }; // String[] array={ // "TGTTTTTGCTTTTAGGAGGATTCTCTATG", // "TGTTTTTGTTTTTAGGAGGATTCTCTATG" // }; for (String s : list) { if (rcomp) { s = AminoAcid.reverseComplementBases(s); } System.out.println("For string " + s + ":"); if (!s.startsWith("N") || !s.endsWith("N")) { s = "NNNN" + s + "NNNN"; } byte[] code = s.getBytes(); for (int i = 0; i < s.length(); i++) { float strength = m.matchStrength(code, i); float norm = m.normalize(strength); float percent = -1; try { percent = m.percentile(norm); } catch (Exception e) { // TODO Auto-generated catch block // e.printStackTrace(); } System.out.print((initialLoc + i * increment) + "\t"); System.out.print(s.charAt(i) + " Strength = " + String.format("%.4f ", norm)); if (percent != -1) { System.out.print(String.format("-> %.4f ", percent)); } float norm2 = norm; while (norm2 > 0.1f) { norm2 -= .1f; System.out.print("*"); } // System.out.print("\t"+String.format("%.3f ",m.percentile(norm))); System.out.println(); } } }