/* * Eoulsan development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public License version 2.1 or * later and CeCILL-C. This should be distributed with the code. * If you do not have a copy, see: * * http://www.gnu.org/licenses/lgpl-2.1.txt * http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt * * Copyright for this code is held jointly by the Genomic platform * of the Institut de Biologie de l'École normale supérieure and * the individual authors. These should be listed in @author doc * comments. * * For more information on the Eoulsan project and its aims, * or to join the Eoulsan Google group, visit the home page * at: * * http://outils.genomique.biologie.ens.fr/eoulsan * */ package fr.ens.biologie.genomique.eoulsan.bio.expressioncounters; import java.io.IOException; import org.junit.Test; import fr.ens.biologie.genomique.eoulsan.EoulsanException; import fr.ens.biologie.genomique.eoulsan.bio.BadBioEntryException; //import org.apache.commons.io; /** * This class test the class * fr.ens.biologie.genomique.eoulsan.steps.expression.HTSeqCount.java. * @author Claire Wallon */ public class HTSeqCountTest { @Test public void testCountReadsInFeatures() throws EoulsanException, IOException, BadBioEntryException { // InputStream isSE = // this.getClass().getResourceAsStream("/mapper_results_SE.sam"); // InputStream isPE = // this.getClass().getResourceAsStream("/mapper_results_PE.sam"); // // String line; // String fields[]; // BufferedReader br; // // File dirData = new File("/home/wallon/Bureau/DATA"); // File dirTest = new File("/home/wallon/Bureau/TEST_HTSEQ/JUNIT"); // // File samFileSE = new File(dirTest, "mapper_results_SE.sam"); // File samFilePE = new File(dirTest, "mapper_results_PE.sam"); // // File annotationFileSE = new File(dirData, "annotation.gff"); // File outputFileSE_union = new File(dirTest, "SE-union-java"); // File outputFileSE_nonempty = new File(dirTest, "SE-nonempty-java"); // File outputFileSE_strict = new File(dirTest, "SE-strict-java"); // File outputFileSE_union_yes = new File(dirTest, "SE-union-java-yes"); // File outputFileSE_nonempty_yes = new File(dirTest, // "SE-nonempty-java-yes"); // File outputFileSE_strict_yes = new File(dirTest, "SE-strict-java-yes"); // File outputFileSE_union_reverse = // new File(dirTest, "SE-union-java-reverse"); // File outputFileSE_nonempty_reverse = // new File(dirTest, "SE-nonempty-java-reverse"); // File outputFileSE_strict_reverse = // new File(dirTest, "SE-strict-java-reverse"); // // File annotationFilePE = new File(dirData, "mouse.gff"); // File outputFilePE_union = new File(dirTest, "PE-union-java"); // File outputFilePE_nonempty = new File(dirTest, "PE-nonempty-java"); // File outputFilePE_strict = new File(dirTest, "PE-strict-java"); // File outputFilePE_union_yes = new File(dirTest, "PE-union-java-yes"); // File outputFilePE_nonempty_yes = new File(dirTest, // "PE-nonempty-java-yes"); // File outputFilePE_strict_yes = new File(dirTest, "PE-strict-java-yes"); // File outputFilePE_union_reverse = // new File(dirTest, "PE-union-java-reverse"); // File outputFilePE_nonempty_reverse = // new File(dirTest, "PE-nonempty-java-reverse"); // File outputFilePE_strict_reverse = // new File(dirTest, "PE-strict-java-reverse"); // All results from HTSeqCount are compared with the HTSeq-count (python // implementation) results // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_union, "no", "union", "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_union)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("no_feature") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "3"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_nonempty, "no", "intersection-nonempty", "exon", "ID", // false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_nonempty)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("no_feature") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "3"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_strict, "no", "intersection-strict", "exon", "ID", false, // 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_strict)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("ambiguous") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "3"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_union_yes, "yes", "union", "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_union_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("ambiguous") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "4"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_nonempty_yes, "yes", "intersection-nonempty", "exon", // "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_nonempty_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("ambiguous") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "4"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_strict_yes, "yes", "intersection-strict", "exon", "ID", // false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_strict_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("ambiguous") || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "4"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_union_reverse, "reverse", "union", "exon", "ID", false, 0, // null); // // br = new BufferedReader(new FileReader(outputFileSE_union_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature") || fields[0].equals("ambiguous")) // assertEquals(fields[1], "2"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_nonempty_reverse, "reverse", "intersection-nonempty", // "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_nonempty_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature") || fields[0].equals("ambiguous")) // assertEquals(fields[1], "2"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFileSE, annotationFileSE, // outputFileSE_strict_reverse, "reverse", "intersection-strict", "exon", // "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFileSE_strict_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000022242:9") // || fields[0].equals("not_aligned")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "4"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "16"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_union, "no", "union", "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_union)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2") // || fields[0].equals("no_feature")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("ambiguous") // || fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_nonempty, "no", "intersection-nonempty", "exon", "ID", // false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_nonempty)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else if (fields[0].equals("no_feature") || fields[0].equals("ambiguous")) // assertEquals(fields[1], "4"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_strict, "no", "intersection-strict", "exon", "ID", false, // 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_strict)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2") // || fields[0].equals("ambiguous")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature") // || fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_union_yes, "yes", "union", "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_union_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "3"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "5"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_nonempty_yes, "yes", "intersection-nonempty", "exon", // "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_nonempty_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "2"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "6"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_strict_yes, "yes", "intersection-strict", "exon", "ID", // false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_strict_yes)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("exon:ENSMUST00000062356:2") // || fields[0].equals("ambiguous")) // assertEquals(fields[1], "1"); // else if (fields[0].equals("no_feature") // || fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_union_reverse, "reverse", "union", "exon", "ID", false, 0, // null); // // br = new BufferedReader(new FileReader(outputFilePE_union_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "4"); // else if (fields[0].equals("no_feature")) // assertEquals(fields[1], "5"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_nonempty_reverse, "reverse", "intersection-nonempty", // "exon", "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_nonempty_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("ambiguous")) // assertEquals(fields[1], "2"); // else if (fields[0].equals("no_feature") // || fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } // // HTSeqCount.countReadsInFeatures(samFilePE, annotationFilePE, // outputFilePE_strict_reverse, "reverse", "intersection-strict", "exon", // "ID", false, 0, null); // // br = new BufferedReader(new FileReader(outputFilePE_strict_reverse)); // while ((line = br.readLine()) != null) { // fields = line.split("\t"); // if (fields[0].equals("no_feature")) // assertEquals(fields[1], "9"); // else if (fields[0].equals("alignment_not_unique")) // assertEquals(fields[1], "7"); // else // assertEquals(fields[1], "0"); // } } }