# Short Notes documenting the RStudio server at iDiv

Subscribe to updates of this documentation via
[RSS](https://git.idiv.de/sc/RStudio-Docu/-/commits/master?format=atom).

[[_TOC_]]

## Access Web-IDE of RStudio

1. check if you have been given access from [GSU](https://www.idiv.de/?id=532)
   (i.e. if you are the group g_r_users)
1. go to https://rstudio.idiv.de
1. use your iDiv username and password to login
1. please remember to **end your session** when you have finished your current
   calculations
    - interactively via the red button in the upper right
    - in your longer running scripts use a statement like this after your
        computations. You might want to replace `save.image()` with `save()` if
        you are only interested in some result data and not the whole
        workspace.
      ```R
      # above some fancy computations
      save.image('/data/myproject/myproject.RData')
      quit(save = 'no')
      ```
1. if you want to run jobs for weeks or which require many cores (>10) for
   multiple days, please contact
   [it-support@idiv.de](mailto:it-support@idiv.de?subject=heavy%20rstudio%20use)
   beforehand. At this point you should consider to move to the HPC cluster.


## ssh access

You can only reach the server from the internal network, i.e. if you are
connected via VPN or cable at iDiv. Note that the internal name is rstudio1
instead of rstudio!

From a terminal/command prompt run (replace `ab12cdef` with your iDiv user name.

```bash
ssh ab12cdef@rstudio1.idiv.de
```

This even works on current windwos systems.


## Data organisation

Currently there are three important places for you on the server:

1. `/homes/$USER` your home directory
2. `/data place` any larger files you want to work with here
3. `/home/$USER/winhome` a mounting point for your network home directory


### Home directory

When you log in either via https or ssh this is usually the first place where
you end up. Your home directory can be abbreviated by "~/". There is not a lot
of space here, so do not place any larger data here. RStudio has the ugly not
configurable habit to write quite some temporary data here (e.g. cached plots
and suspended sessions), so please make sure that you clean up occasionally. It
is a good place for your scripts.

RStudio stores several files like suspended sessions, graph history etc. in
`~/.rstudio`. This folder is purged every 90 days to remove "forgotten"
suspended sessions and reduce wasted space. R itself stores workspace objects
in `.RData` of your current working directory if you end your session or call
`save.image()` without further arguments. Please ensure that you do not save
large `.RData` files in your home directory.


### /data

You can create your own directories here and place data inside. By default
others can read the directories you created here, but not write in them. If you
need any special permission let us know via
[it-support@idiv.de](mailto:it-support@idiv.de?subject=rstudio%20file%20permissions).
To directly jump to another directory select the *Files* pane and click on the
three dots (…) located on
the right hand side of the current file path. Now enter the path you want to
browse, e.g. `/data/`. Additionally there should be a symbolic link in your
home directory called data, which points to the /data directory.


### iDiv group shares

If you are part of an iDiv group you can access your group share on the rstudio
server at `/data/GROUPNAME-group-share/`. If your group share is not available
yet please contact
[it-support@idiv.de](mailto:it-support@idiv.de?subject=rstudio%20group-share).


## Network home

This is about \\idiv.de\public\homes. To make it available on the rstudio
server you need to get active. Log in via ssh or enter the pane labeled
terminal in RStudio web IDE and run

```
su - $USER
```

You will be asked to enter your password again and afterwards your network home
will be available at `~/winhome`. However, it will only stay connected until
you log out or quit your current session. If you have any longer running jobs
you might want to consider either moving stuff from the ~/winhome to /data or
open a [tmux](tmux.md) session from which you detach (Ctrl+b, d) before you
disconnect.

## R and data
### compression

Please note that R is able to work with compressed files. This is especially
useful if you are the typical csv/txt file user. Those files usually contain
highly redundant data. Therefore compression can be very effective, e.g. the
file which triggered me to write this was a txt file of 4 GB the gz compressed
file had 98 MB. Many tools to read or write (e.g. save, save.image, read.table,
fread from data.table) allow transparent use of compressed files, i.e. you just
specify the compressed file instead of the uncompressed file.


## Data transfer
You can use either use the web IDE to upload and export files.

### Web IDE

In the *Files* pane click the *Upload* button to upload files to the current
directory. For multiple files check the displayed *TIP* in the upload window.
For big files please see below.

If you want to download/export files, select the checkbox for each file or
directory and click *More -> Export*. If you selected multiple files a zip file
will be downloaded.

### Tools

Other file transfer tools are often more reliable and faster than the web IDE.
Short instructions are available for several tools like [scp](scp.md),
[rsync](rsync.md), [filezilla](filezilla.md).


## Code organisation

It is strongly recommended to use the version control system
[git](https://git-scm.com) to track changes in your code. It also helps you to
distribute your code, be it for yourself  (local machine, rstudio server, HPC
cluster, …) or with others (e.g. via [github](https://github.com) or the [iDiv
gitlab](https://git.idiv.de)). Ensure that you only track your code and not
your data or results!

If you want your code to run in differenct environments (e.g. local machine,
rstudio server or HPC cluster) be sure to separate environment specific code
from your buisness logic. Recommendations and templates can be found in the
[EVE HPC Cluster
wiki](https://wiki.ufz.de/eve/index.php/R_Advanced_-_Tips_%26_Tricks#Interactive_and_Command_Line).


## Packages

Many R packages are installed already via the system's package management and
many more are available via the same track. This is the preferred way to
install R packages, as it avoids duplicate installations per user, removes the
need for manual package updates and helps that underlying libraries and
packages are compatible with each other. Currently there are >3500 packages
installed—check with `installed.packages()` for more details.

Of course you can still install packages via R's own functions
(install.packages, devtools, …) if there is the need for it. Long term please
drop a note to
[it-suppot@idiv.de](mailto:it-suppot@idiv.de?subject=rstudio%20packages) so
that we can install the package via the system.

- https://github.com/eddelbuettel/rcppapt (not yet implemented)


## Other servers with R

There are some other servers which have R and RStudio (desktop version)
installed, but support for R on those is limited. This means you might
frequently encounter outdated versions of R and associated packages.

- idivgis01.idiv.de Biocon windows 2012r2 terminal server with gpu but restricted access
- idivts6.idiv.de Biocon windows 2012r2 terminal server but restricted access
- idivts7.idiv.de windows 2012r2 terminal server
- idivts8.idiv.de windows 2012r2 terminal server

### External resources available to you

Be aware that we do not control external resources and that you can connect
your iDiv network shares directly.


### Scientific Computing at the University of Leipzig

The UL department [Scientific
Computing](https://www.urz.uni-leipzig.de/de/fue/sc/) makes a set of [rstudio
servers](https://www.urz.uni-leipzig.de/de/fue/sc/rstudio/) available as well.
If you do not have an UL scientific computing account you can simply [register
one](https://register.sc.uni-leipzig.de/).