java.lang.Object
de.ipk_gatersleben.ag_nw.graffiti.plugins.databases.sib_enzymes.EnzymeService
All Implemented Interfaces:
FileDownloadStatusInformationProvider, BackgroundTaskStatusProvider, MemoryHog, HelperClass

public class EnzymeService
extends Object
implements MemoryHog, BackgroundTaskStatusProvider, FileDownloadStatusInformationProvider, HelperClass
  • Method Details

    • getInstance

      public static EnzymeService getInstance()
    • finishedNewDownload

      public void finishedNewDownload()
      Specified by:
      finishedNewDownload in interface FileDownloadStatusInformationProvider
    • isDatabaseAvailable

      public boolean isDatabaseAvailable​(boolean checkInternal)
    • getReleaseVersionForEnzymeClasses

      public static String getReleaseVersionForEnzymeClasses()
      Returns:
      The release information from the enzyme-classes file (enzclass.txt).
    • getEnzymeClasses

      public static List<String> getEnzymeClasses​(String ec_number_or_synonyme, boolean lazy)
      Retuns all matches for the enzyme class. Example: "1.1.5.2" "1. -. -.-" -> Oxidoreductases "1. 1. -.-" -> Acting on the CH-OH group of donors "1. 1. 5.-" -> With a quinone or similar compound as acceptor. ==> RETURN: { "Oxidoreductases", "Acting on the CH-OH group of donors", "With a quinone or similar compound as acceptor" }
      Parameters:
      ec_number_or_synonyme - A EC Number in the form "EC1.2.3.4" or "1.2.3.4" or " 1. 2. 3 . 4" (space is ignored while matching) Also a synonym to a EC number can be used, in this case a lookup to the known synonyms is done to get the corresponding EC number.
      lazy - If lazy is TRUE, then the service is inited in background, this method will return immeadeately, but might not return reliable results until the database is inited.
      Returns:
      A string array of all matching categories or descriptions.
    • getEnzymeInformation

      public static EnzymeEntry getEnzymeInformation​(String ec_or_synonyme, boolean lazy)
      Get a EnzymeEntry with the associated information.
      Parameters:
      ec_or_synonyme - A EC number (1.2.3.4) or known synonyme.
      Returns:
      NULL, if no info is found or a corresponding entry.
    • extractECId

      public static String extractECId​(String ecString)
    • getReleaseVersionForEnzymeInformation

      public static String getReleaseVersionForEnzymeInformation()
      Returns:
      The release information of the enzyme.dat file.
    • getNumberOfEnzymeNodes

      public static int getNumberOfEnzymeNodes​(Graph graph)
      Get the number of nodes in this graph which could possible be valid EC numbers. It is not checked if the EC number is existent, meaning a EC number like "6.6.6.666" which probably does not exist would increase the number count.
      Parameters:
      graph - All nodes from this graph will be checked
      Returns:
      The number of nodes which have a QuadNumber valid structure, meaning, a name of substance name like a.b.c.d, where abcd are either numbers or "-".
    • getCurrentStatusValue

      public int getCurrentStatusValue()
      Description copied from interface: BackgroundTaskStatusProvider
      Returns the completion status. WARNING: This method must be Thread-Safe!
      Specified by:
      getCurrentStatusValue in interface BackgroundTaskStatusProvider
      Returns:
      A number from 0..100 which represents the completion status. If -1 is returned, the progress bar is set to "indeterminate", which means, that the progress bar will float from left to right and reverse. (Useful if status can not be determined) Other values let the progressbar disappear.
    • getCurrentStatusValueFine

      public double getCurrentStatusValueFine()
      Description copied from interface: BackgroundTaskStatusProvider
      Same as getCurrentStatusValue(), but this method should return a finer granted progress value. If this is not needed, the code for getCurrentStatusValue() could be reused by the client.
      Specified by:
      getCurrentStatusValueFine in interface BackgroundTaskStatusProvider
      Returns:
      The current progress value (fine).
    • getCurrentStatusMessage1

      public String getCurrentStatusMessage1()
      Description copied from interface: BackgroundTaskStatusProvider
      Returns a status message on what is going on. WARNING: This method must be Thread-Safe!
      Specified by:
      getCurrentStatusMessage1 in interface BackgroundTaskStatusProvider
      Returns:
      A status message, or null if not needed.
    • getCurrentStatusMessage2

      public String getCurrentStatusMessage2()
      Description copied from interface: BackgroundTaskStatusProvider
      Returns a status message on what is going on. Is used the same like getCurrentStatusMessage1. This second message adds flexibility. If not needed, the first message should be used and this should return null if not needed. WARNING: This method must be Thread-Safe!
      Specified by:
      getCurrentStatusMessage2 in interface BackgroundTaskStatusProvider
      Returns:
      A status message, or null if not needed.
    • pleaseStop

      public void pleaseStop()
      Description copied from interface: BackgroundTaskStatusProvider
      If this method is called on the status provider, the linked work task should stop its execution as soon as possible.
      Specified by:
      pleaseStop in interface BackgroundTaskStatusProvider
    • pluginWaitsForUser

      public boolean pluginWaitsForUser()
      Specified by:
      pluginWaitsForUser in interface BackgroundTaskStatusProvider
      Returns:
      Let this method return true in order to show a "Continue" button in the GUI. When this buttons is clicked, the method pleaseContinueRun is called. Use these two methods to let the user interact with the GUI while the algorithm is waiting for the user to be ready for the continued work of the algorithm.
    • pleaseContinueRun

      public void pleaseContinueRun()
      Description copied from interface: BackgroundTaskStatusProvider
      This method is called as soon as the user indicates that he is comfortable to let the algorithm continue its work.
      Specified by:
      pleaseContinueRun in interface BackgroundTaskStatusProvider
    • setCurrentStatusValue

      public void setCurrentStatusValue​(int value)
      Description copied from interface: BackgroundTaskStatusProvider
      Override this method and pass a implementor of this interface to any other service method. This method can use this call to update the status value.
      Specified by:
      setCurrentStatusValue in interface BackgroundTaskStatusProvider
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface FileDownloadStatusInformationProvider
    • getStatusPane

      public JComponent getStatusPane​(boolean showEmpty)
      Specified by:
      getStatusPane in interface FileDownloadStatusInformationProvider
    • getFile

      public static File getFile​(String fileName)
    • freeMemory

      public void freeMemory()
      Description copied from interface: MemoryHog

      To release a data structure, just re-instantiate it, and GC would collect the now unreachable object some time in the future.

      Apart for deallocation purposes, it can also be used to reset any other dependencies.
      Specified by:
      freeMemory in interface MemoryHog