---
title: "Demo"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Demo}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(pureseqtmr)
library(testthat)
library(knitr)
```
`pureseqtmr` is a package to call PureseqTM from R.
PureseqTM predicts the topology of a membrane protein, where the topology can
be either inside, or not inside the membrane.
To be able to call PureseqTM, it needs to be installed:
```
pureseqtmr::install_pureseqtm()
```
Note that this code is not actually run, to comply with CRAN guidelines.
PureseqTM supplies some example files. Use `get_example_filenames` to
get the path to all these files:
```{r}
if (is_pureseqtm_installed()) {
get_example_filenames()
}
```
In this example, `1bhaA.fasta` will be used. To obtain the full path,
use `get_example_filename`. `get_example_filename` will give an
error if the file is not found.
```{r}
if (is_pureseqtm_installed()) {
fasta_filename <- get_example_filename("1bhaA.fasta")
head(readLines(fasta_filename))
}
```
Getting the topology of this protein:
```{r}
if (is_pureseqtm_installed()) {
topology <- predict_topology(fasta_filename)
kable(topology)
}
```
Or show the topology as a plot:
```{r fig.width=7}
if (is_pureseqtm_installed()) {
plot_topology(topology)
}
```
One needs the exact same code for a full proteome.
Here we use a `pureseqtmr` example file,
which is the COVID-19 reference proteome,
as downloaded from `https://www.uniprot.org/proteomes/UP000464024`.
```{r}
fasta_filename <- system.file(
"extdata",
"UP000464024.fasta",
package = "pureseqtmr"
)
expect_true(file.exists(fasta_filename))
```
Show the (top of the) proteome:
```{r}
head(readLines(fasta_filename))
```
Getting the topology of this protein:
```{r}
if (is_pureseqtm_installed()) {
topology <- predict_topology(fasta_filename)
}
```
Instead of directly showing the raw data, the protein names
are shortened first:
```{r}
if (is_pureseqtm_installed()) {
topology$name <- stringr::str_match(
string = topology$name,
pattern = "..\\|.*\\|(.*)_SARS2"
)[, 2]
}
```
Show the topology as a plot:
```{r fig.width=7}
if (is_pureseqtm_installed()) {
plot_topology(topology)
}
```
And tally the number of transmembrane helices per protein:
```{r}
if (is_pureseqtm_installed()) {
kable(tally_tmhs(topology))
}
```