2 package org.forester.archaeopteryx.tools;
5 import java.io.IOException;
7 import org.forester.archaeopteryx.Configuration;
8 import org.forester.util.ForesterUtil;
10 public final class InferenceManager {
12 private final File _path_to_local_mafft;
13 private final File _path_to_local_kalign;
14 private final File _path_to_local_fastme;
15 private final File _path_to_local_raxml;
16 private final File _path_to_local_clustalo;
18 public static InferenceManager createInstance( final Configuration c ) {
19 return new InferenceManager( c.getpathToLocalMafft(),
20 c.getPathToLocalKalign(),
21 c.getPathToLocalFastme(),
22 c.getPathToLocalRaxml(),
23 c.getPathToLocalClustalOmega() );
26 public boolean canDoMsa() {
27 return ( getPathToLocalMafft() != null ) || ( getPathToLocalKalign() != null )
28 || ( getPathToLocalClustalo() != null );
31 public File getPathToLocalMafft() {
32 return _path_to_local_mafft;
35 public File getPathToLocalKalign() {
36 return _path_to_local_kalign;
39 public File getPathToLocalFastme() {
40 return _path_to_local_fastme;
43 public File getPathToLocalRaxml() {
44 return _path_to_local_raxml;
47 public File getPathToLocalClustalo() {
48 return _path_to_local_clustalo;
51 private final static File createLocalPath( final File path ) {
56 if ( path.getCanonicalFile().canExecute() && !path.getCanonicalFile().isDirectory() ) {
57 return new File( path.getCanonicalFile().toString() );
60 catch ( final IOException e ) {
66 private InferenceManager( final File path_to_local_mafft,
67 final File path_to_local_kalign,
68 final File path_to_local_fastme,
69 final File path_to_local_raxml,
70 final File path_to_local_clustalo ) {
71 _path_to_local_mafft = createLocalPath( path_to_local_mafft ) != null ? createLocalPath( path_to_local_mafft )
72 : createLocalPath( new File( "mafft" ) );
73 _path_to_local_kalign = createLocalPath( path_to_local_kalign ) != null ? createLocalPath( path_to_local_kalign )
74 : createLocalPath( new File( "kalign" ) );
75 _path_to_local_fastme = createLocalPath( path_to_local_fastme ) != null ? createLocalPath( path_to_local_fastme )
76 : createLocalPath( new File( "fastme" ) );
77 _path_to_local_raxml = createLocalPath( path_to_local_raxml ) != null ? createLocalPath( path_to_local_raxml )
78 : createLocalPath( new File( "raxml" ) );
79 _path_to_local_clustalo = createLocalPath( path_to_local_clustalo ) != null ? createLocalPath( path_to_local_clustalo )
80 : createLocalPath( new File( ForesterUtil.isWindowns() ? "clustalo.exe" : "clustalo" ) );