X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2Ftools%2FPhylogeneticInferrer.java;h=9e651fb227444b1ef1546b9e3cb946f84de73735;hb=72c535142a5e6b0da9c7edb2f605eb835b43e6fb;hp=6cf66148e526bc0f97ad1ff2f434e196c3b5eb7d;hpb=6a8e6ec5f2cebcb8ec901add6fb64033fcd572da;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/tools/PhylogeneticInferrer.java b/forester/java/src/org/forester/archaeopteryx/tools/PhylogeneticInferrer.java index 6cf6614..9e651fb2 100644 --- a/forester/java/src/org/forester/archaeopteryx/tools/PhylogeneticInferrer.java +++ b/forester/java/src/org/forester/archaeopteryx/tools/PhylogeneticInferrer.java @@ -26,7 +26,6 @@ package org.forester.archaeopteryx.tools; import java.io.BufferedWriter; -import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; @@ -42,11 +41,11 @@ import org.forester.evoinference.distance.PairwiseDistanceCalculator; import org.forester.evoinference.matrix.distance.BasicSymmetricalDistanceMatrix; import org.forester.evoinference.tools.BootstrapResampler; import org.forester.io.parsers.FastaParser; -import org.forester.io.writers.SequenceWriter; -import org.forester.io.writers.SequenceWriter.SEQ_FORMAT; import org.forester.msa.BasicMsa; +import org.forester.msa.ClustalOmega; import org.forester.msa.Mafft; import org.forester.msa.Msa; +import org.forester.msa.Msa.MSA_FORMAT; import org.forester.msa.MsaInferrer; import org.forester.msa.MsaMethods; import org.forester.msa.ResampleableMsa; @@ -86,19 +85,25 @@ public class PhylogeneticInferrer extends RunnableProcess { _options = options; } - private Msa inferMsa() throws IOException, InterruptedException { - final File temp_seqs_file = File.createTempFile( "__msa__temp__", ".fasta" ); - if ( DEBUG ) { - System.out.println(); - System.out.println( "temp file: " + temp_seqs_file ); - System.out.println(); + private Msa inferMsa( final MSA_PRG msa_prg ) throws IOException, InterruptedException { + // final File temp_seqs_file = File.createTempFile( "__msa__temp__", ".fasta" ); + // if ( DEBUG ) { + // System.out.println(); + // System.out.println( "temp file: " + temp_seqs_file ); + // System.out.println(); + // } + // //final File temp_seqs_file = new File( _options.getTempDir() + ForesterUtil.FILE_SEPARATOR + "s.fasta" ); + // final BufferedWriter writer = new BufferedWriter( new FileWriter( temp_seqs_file ) ); + // SequenceWriter.writeSeqs( _seqs, writer, SEQ_FORMAT.FASTA, 100 ); + // writer.close(); + switch ( msa_prg ) { + case MAFFT: + return runMAFFT( _seqs, processMafftOptions() ); + case CLUSTAL_O: + return runClustalOmega( _seqs, processMafftOptions() ); + default: + return null; } - //final File temp_seqs_file = new File( _options.getTempDir() + ForesterUtil.FILE_SEPARATOR + "s.fasta" ); - final BufferedWriter writer = new BufferedWriter( new FileWriter( temp_seqs_file ) ); - SequenceWriter.writeSeqs( _seqs, writer, SEQ_FORMAT.FASTA, 100 ); - writer.close(); - final List opts = processMafftOptions(); - return runMAFFT( temp_seqs_file, opts ); } private List processMafftOptions() { @@ -160,7 +165,7 @@ public class PhylogeneticInferrer extends RunnableProcess { if ( _msa == null ) { Msa msa = null; try { - msa = inferMsa(); + msa = inferMsa( MSA_PRG.MAFFT ); } catch ( final IOException e ) { end( _mf ); @@ -202,7 +207,7 @@ public class PhylogeneticInferrer extends RunnableProcess { } if ( DEBUG ) { System.out.println( msa.toString() ); - System.out.println( MsaMethods.calcBasicGapinessStatistics( msa ).toString() ); + System.out.println( MsaMethods.calcGapRatio( msa ) ); } final MsaMethods msa_tools = MsaMethods.createInstance(); if ( _options.isExecuteMsaProcessing() ) { @@ -223,7 +228,7 @@ public class PhylogeneticInferrer extends RunnableProcess { if ( DEBUG ) { System.out.println( msa_tools.getIgnoredSequenceIds() ); System.out.println( msa.toString() ); - System.out.println( MsaMethods.calcBasicGapinessStatistics( msa ).toString() ); + System.out.println( MsaMethods.calcGapRatio( msa ) ); } _msa = msa; } @@ -262,11 +267,12 @@ public class PhylogeneticInferrer extends RunnableProcess { } } - private Msa runMAFFT( final File input_seqs, final List opts ) throws IOException, InterruptedException { + private Msa runMAFFT( final List seqs, final List opts ) throws IOException, InterruptedException { Msa msa = null; - final MsaInferrer mafft = Mafft.createInstance(); + final MsaInferrer mafft = Mafft.createInstance( _mf.getInferenceManager().getPathToLocalMafft() + .getCanonicalPath() ); try { - msa = mafft.infer( input_seqs, opts ); + msa = mafft.infer( seqs, opts ); } catch ( final IOException e ) { System.out.println( mafft.getErrorDescription() ); @@ -274,12 +280,26 @@ public class PhylogeneticInferrer extends RunnableProcess { return msa; } + private Msa runClustalOmega( final List seqs, final List opts ) throws IOException, + InterruptedException { + Msa msa = null; + final MsaInferrer clustalo = ClustalOmega.createInstance( _mf.getInferenceManager().getPathToLocalClustalo() + .getCanonicalPath() ); + try { + msa = clustalo.infer( seqs, opts ); + } + catch ( final IOException e ) { + System.out.println( clustalo.getErrorDescription() ); + } + return msa; + } + private void writeToFiles( final BasicSymmetricalDistanceMatrix m ) { if ( !ForesterUtil.isEmpty( _options.getIntermediateFilesBase() ) ) { try { final BufferedWriter msa_writer = new BufferedWriter( new FileWriter( _options.getIntermediateFilesBase() + MSA_FILE_SUFFIX ) ); - _msa.write( msa_writer ); + _msa.write( msa_writer, MSA_FORMAT.PHYLIP ); msa_writer.close(); final BufferedWriter pwd_writer = new BufferedWriter( new FileWriter( _options.getIntermediateFilesBase() + PWD_FILE_SUFFIX ) ); @@ -323,4 +343,8 @@ public class PhylogeneticInferrer extends RunnableProcess { } } } + + public enum MSA_PRG { + MAFFT, CLUSTAL_O; + } }