---
title: "Read SHELXC/D/E log file"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Read SHELXC/D/E log file}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

<!-- ```{r, include = FALSE} -->
<!-- knitr::opts_chunk$set( -->
<!--   collapse = TRUE, -->
<!--   comment = "#>" -->
<!-- ) -->
<!-- ``` -->


## Introduction
The aim of this tutorial is to load the content of the log file, in output from SHELXC/D/E, in the workspace and create dataframes that can be used for further analysis or data visualisation. The `cry` function `read_SHELX_log` can load in the R working memory all the log files in output from SHELXC/D/E and give in output a dataframe for SHELXC/D and a list of dataframes for SHELXE.

## Sample SHELXC/D/E log files.
Some sample files are stored as external data in this package. Among them there are the SHELXC/D/E log files available with the current release. To access the files, first load the `cry` package.

```{r setup}
library(cry)
library(ggplot2)
```

Next, have a look at what is included in the external-data directory of `cry`.

```{r echo=TRUE}
datadir <- system.file("extdata",package="cry")
all_files <- list.files(datadir)
print(all_files)
```

## SHELXC
Let start to have look at SHELXC log file.

```{r echo=TRUE}
filename <- file.path(datadir,"shelxc.log")
obj_shelxc <- read_SHELX_log(filename)
class(obj_shelxc)
names(obj_shelxc)
```
Using cry we plot all the classic charts of SHELXC. In the example below we show $Chis ^2$ vs resolution using the function`plot_SHELX`.

```{r}
plot_SHELX(obj_shelxc, var = obj_shelxc$Chi_sq, type = "shelxc",
           title_chart = "Chis ^2") +
  theme_cry()
    
```


## SHELXD

```{r echo=TRUE}
filename <- file.path(datadir,"shelxd.log")
obj_shelxd <- read_SHELX_log(filename)
class(obj_shelxd)
names(obj_shelxd)
```
Plot CCall vs CCweak using ggplot2

```{r, fig_width = 16, fig_height= 14}
plot_SHELX(filename = obj_shelxd, type = "shelxd") +
  theme_cry()
```


## SHELXE
The function `read_SHELX_log` when reading log files from SHELXE five in output a list of dataframes. The user can choose the data frame to use for further analysis.
```{r echo=TRUE}
## read the two hands log files separately
filename_i <- file.path(datadir,"shelxe_i.log")
obj_shelxe_i <- read_SHELX_log(filename_i)
class(obj_shelxe_i)
names(obj_shelxe_i)
cycle_i <- obj_shelxe_i$CYCLE
class(cycle_i)
names(cycle_i)
FOM_mapCC_i <- obj_shelxe_i$FOM_mapCC
class(FOM_mapCC_i)
names(FOM_mapCC_i)
Site1_i <- obj_shelxe_i$Site1
class(Site1_i)
names(Site1_i)
Site2_i <- obj_shelxe_i$Site2
class(Site2_i)
names(Site2_i)

filename_o <- file.path(datadir,"shelxe_o.log")
obj_shelxe_o <- read_SHELX_log(filename_o)
class(obj_shelxe_o)
names(obj_shelxe_o)
cycle_o <- obj_shelxe_o$CYCLE
class(cycle_i)
names(cycle_i)
FOM_mapCC_0 <- obj_shelxe_o$FOM_mapCC
class(FOM_mapCC_i)
names(FOM_mapCC_i)
Site1_o <- obj_shelxe_o$Site1
class(Site1_i)
names(Site1_i)
Site2_o <- obj_shelxe_o$Site2
class(Site2_i)
names(Site2_i)
```

Plot inverted and original hand.

```{r}
plot_SHELX(filename = obj_shelxe_i, filename_e = obj_shelxe_o,
           type = "shelxe") +
  theme_cry()
```

