Skip to content

Setup instructions

almgong edited this page Oct 13, 2016 · 34 revisions

Setting up Metaprot locally

Step-by-step instructions

Assumptions

  1. You are using IntelliJ or another similar IDE.
  2. You have forked a copy of the project locally.
  3. You have access to a command line terminal (Windows PowerShell is OK, but instructions will assume bash)
  4. You do not have R or Rserve. If you do, skip the appropriate steps.
  5. You have a /ssd2/metaprot folder on your filesystem with appropriate permissions for read and write.
  6. You have Maven installed and executable in your PATH.

Steps:

  1. Create/modify an application.properties file at src/main/resources/application.properties. Fields must include at least:

server.port=...

aws.access.key=... aws.secret.access.key=... aws.s3.bucketName=... aws.dynamo.endpoint=...

task.scheduler.rserve.ports=... app.r.script.location=@r-script-location@


2. Create a Maven profile either in `pom.xml` (project root) or a `settings.xml` file located at `~/.m2/`, with the variable `r-script-location`. It should look something like:

    ```xml
    <profile>
       <id>profile-name</id>
       <properties>
          <r-script-location>src/main/resources/R/scripts/</r-script-location>
       </properties>
    </profile>
    ```

    Activate the profile (if on IntelliJ, go to Maven Projects and click the checkbox.)

3. At this point you should be able to run the Metaprot application from your IDE; as a test, head over to `localhost:<port>/metabolite-analysis` to check that the Web application itself is working. `<port>` refers to the value you had chosen in `application.properties` for `server.port`.

4. Install R. OSX users can use Homebrew, else consult the official [R docs](https://www.r-project.org/). Building from source is OK. If not already, add the path to R to your system PATH.

5. Install Rserve. If on Windows, you can simply run an R shell by typing `R` in the PowerShell, and using R's built in package manager to do so. Simply type `install.packages("Rserve")`. This method may work on OSX and Linux systems as well, but a guaranteed method is to build and install Rserve from source; see [instructions](https://rforge.net/Rserve/doc.html#inst).

6. Run an Rserve server process. Rserve bypasses the single-threaded limitation of R by exposing R as a TCP service. This way, multiple "servers" can exist and you can use any of them to run arbitrary R commands. Open a R shell if you have not already (type `R` in terminal), and run:

    ```bash
library(Rserve)
Rserve(args="--no-save --RS-port <port>")
where `<port>` refers to the port(s) you specified in `task.scheduler.rserve.ports` in `application.properties` (step 1).
  1. Now both your Mongo and Rserve processes are running. Head over to your IDE and edit your run configurations. For IntelliJ, this is at Run->Edit Configurations.... We need to tell your local version of Metaprot about where to find R, so add as an Environment Variable: R_HOME=</path/to/R>. Usually the value of </path/to/R> can be found by executing R.home() in the R shell. However, this can be manually found by looking at where the R executable file is (e.g. in Windows this is usually in .../bin. Save your changes.

  2. Now you should be able to run Metaprot in your IDE, via embedded Tomcat.

Clone this wiki locally