-
Notifications
You must be signed in to change notification settings - Fork 1
Setup instructions
- You are using IntelliJ or another similar IDE.
- You have forked a copy of the project locally.
- You have access to a command line terminal (Windows PowerShell is OK, but instructions will assume bash)
- You do not have R or Rserve. If you do, skip the appropriate steps.
- You have a /ssd2/metaprot folder on your filesystem with appropriate permissions for read and write.
- You have Maven installed and executable in your PATH.
Steps:
-
Create/modify an
application.properties
file atsrc/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).
-
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 executingR.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. -
Now you should be able to run Metaprot in your IDE, via embedded Tomcat.