X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fmsa%2FClustalOmega.java;h=2b7a0669b1a7ab1274ea0600c6b7cf7714155ee1;hb=88718609970e490e94727d12ebbca1270ba2c0a7;hp=72db9d3f84d780ba8601f50a53608e133cdeea87;hpb=b1a74bd076c917d428002284a53a2c6f390226fb;p=jalview.git diff --git a/forester/java/src/org/forester/msa/ClustalOmega.java b/forester/java/src/org/forester/msa/ClustalOmega.java index 72db9d3..2b7a066 100644 --- a/forester/java/src/org/forester/msa/ClustalOmega.java +++ b/forester/java/src/org/forester/msa/ClustalOmega.java @@ -21,17 +21,21 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA // // Contact: phylosoft @ gmail . com -// WWW: www.phylosoft.org/forester +// WWW: https://sites.google.com/site/cmzmasek/home/software/forester package org.forester.msa; +import java.io.BufferedWriter; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.forester.io.parsers.FastaParser; -import org.forester.sequence.Sequence; +import org.forester.io.writers.SequenceWriter; +import org.forester.io.writers.SequenceWriter.SEQ_FORMAT; +import org.forester.sequence.MolecularSequence; import org.forester.util.SystemCommandExecutor; public final class ClustalOmega extends MsaInferrer { @@ -68,6 +72,19 @@ public final class ClustalOmega extends MsaInferrer { } @Override + public Msa infer( final List seqs, final List opts ) throws IOException, + InterruptedException { + final File file = File.createTempFile( "__clustalo_input_", ".fasta" ); + file.deleteOnExit(); + final BufferedWriter writer = new BufferedWriter( new FileWriter( file ) ); + SequenceWriter.writeSeqs( seqs, writer, SEQ_FORMAT.FASTA, 100 ); + writer.close(); + final Msa msa = infer( file, opts ); + file.delete(); + return msa; + } + + @Override public Msa infer( final File path_to_input_seqs, final List opts ) throws IOException, InterruptedException { init(); final List my_opts = new ArrayList(); @@ -82,12 +99,12 @@ public final class ClustalOmega extends MsaInferrer { _error = stderr.toString(); if ( _exit_code != 0 ) { throw new IOException( "Clustal Omega program failed, exit code: " + _exit_code + "\nCommand:\n" + my_opts - + "\nError:\n" + stderr ); + + "\nError:\n" + stderr ); } final StringBuilder stdout = command_executor.getStandardOutputFromCommand(); if ( ( stdout == null ) || ( stdout.length() < 2 ) ) { throw new IOException( "Clustal Omega program did not produce any output\nCommand:\n" + my_opts - + "\nError:\n" + stderr ); + + "\nError:\n" + stderr ); } final Msa msa = FastaParser.parseMsa( stdout.toString() ); return msa; @@ -97,10 +114,4 @@ public final class ClustalOmega extends MsaInferrer { _error = null; _exit_code = -100; } - - @Override - public Msa infer( final List seqs, final List opts ) throws IOException, InterruptedException { - // TODO Auto-generated method stub - return null; - } }