2 package org.forester.archaeopteryx.tools;
6 import org.forester.archaeopteryx.Configuration;
8 public final class InferenceManager {
10 private final static String DEFAULT_PATHS[] = { "C:\\Program Files\\", "C:\\Program Files (x86)\\", "/bin/",
11 "/usr/local/bin/", "/usr/bin/" };
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, final String name ) {
52 if ( ( path != null ) && path.canExecute() && !path.isDirectory() ) {
55 File p1 = new File( name );
56 if ( p1.canExecute() && !p1.isDirectory() ) {
59 for( final String path_str : DEFAULT_PATHS ) {
61 final File p2 = new File( path_str + name );
62 if ( p2.canExecute() && !p2.isDirectory() ) {
65 final File p3 = new File( path_str + name + ".exe" );
66 if ( p3.canExecute() && !p3.isDirectory() ) {
69 final File p4 = new File( path_str + name + ".bat" );
70 if ( p4.canExecute() && !p4.isDirectory() ) {
74 catch ( final Exception e ) {
80 private InferenceManager( final File path_to_local_mafft,
81 final File path_to_local_kalign,
82 final File path_to_local_fastme,
83 final File path_to_local_raxml,
84 final File path_to_local_clustalo ) {
85 _path_to_local_mafft = createLocalPath( path_to_local_mafft, "mafft" );
86 _path_to_local_kalign = createLocalPath( path_to_local_kalign, "kalign" );
87 _path_to_local_fastme = createLocalPath( path_to_local_fastme, "fastme" );
88 _path_to_local_raxml = createLocalPath( path_to_local_raxml, "raxml" );
89 _path_to_local_clustalo = createLocalPath( path_to_local_clustalo, "clustalo" );