package edu.mayo.bior.pipeline; import static org.junit.Assert.assertEquals; import java.util.Arrays; import org.junit.Test; import com.tinkerpop.pipes.Pipe; import com.tinkerpop.pipes.transform.IdentityPipe; import com.tinkerpop.pipes.util.Pipeline; import edu.mayo.bior.pipeline.SNPEff.SNPEffPostProcessPipeline; import edu.mayo.pipes.PrintPipe; import edu.mayo.pipes.UNIX.CatPipe; import edu.mayo.pipes.history.History; import edu.mayo.pipes.history.HistoryInPipe; public class SNPEffPostProcessPipelineTest { @Test public void testPipeline_mostSignificantEffect() throws Exception { System.out.println("Testing SNPEffPostProcessPipelineTest.testPipeline_mostSignificantEffect().."); String inputFile = "src/test/resources/tools/snpeff/snpEffOutput205.vcf"; SNPEffPostProcessPipeline effp = new SNPEffPostProcessPipeline(true); String output = "{\"Effect\":\"SYNONYMOUS_CODING\",\"Effect_impact\":\"LOW\",\"Functional_class\":\"SILENT\",\"Codon_change\":\"gtA/gtG\",\"Amino_acid_change\":\"V98\",\"Gene_name\":\"ISG15\",\"Gene_bioType\":\"protein_coding\",\"Coding\":\"CODING\",\"Transcript\":\"ENST00000379389\",\"Exon\":\"exon_1_949364_949920\"}"; Pipe p = effp.getSNPEffPostProcessPipeline(new CatPipe(), new IdentityPipe()); p.setStarts(Arrays.asList(inputFile)); String result = ""; for(int i=0; p.hasNext(); i++){ History history = (History) p.next(); result = history.get(8); if (i==1) break; } assertEquals(output, result); } @Test public void testPipeline_allEffects() throws Exception { System.out.println("Testing SNPEffPostProcessPipelineTest.testPipeline_testPipeline_allEffects().."); String inputFile = "src/test/resources/tools/snpeff/snpEffOutput205.vcf"; SNPEffPostProcessPipeline effp = new SNPEffPostProcessPipeline(false); String output = "{\"EFF\":[{\"Effect\":\"SYNONYMOUS_CODING\",\"Effect_impact\":\"LOW\",\"Functional_class\":\"SILENT\",\"Codon_change\":\"gtA/gtG\",\"Amino_acid_change\":\"V98\",\"Gene_name\":\"ISG15\",\"Gene_bioType\":\"protein_coding\",\"Coding\":\"CODING\",\"Transcript\":\"ENST00000379389\",\"Exon\":\"exon_1_949364_949920\"},{\"Effect\":\"UPSTREAM\",\"Effect_impact\":\"MODIFIER\",\"Functional_class\":\"NONE\",\"Gene_name\":\"RP11-54O7.11\",\"Gene_bioType\":\"antisense\",\"Coding\":\"NON_CODING\",\"Transcript\":\"ENST00000458555\"}]}"; Pipe p = effp.getSNPEffPostProcessPipeline(new CatPipe(), new IdentityPipe()); p.setStarts(Arrays.asList(inputFile)); String result=""; for(int i=0; p.hasNext(); i++){ History next = (History) p.next(); result = next.get(8); if (i==1) break; } assertEquals(output, result); } }