# Tutorial - Análise de RNA-Seq no Chipster
###### tags: `Misc`
[TOC]
---
## Links úteis
- **Site oficial do Chipster:** [Link](https://chipster.rahtiapp.fi/home)
- **Tutorial original (inglês):** [Link](https://chipster.csc.fi/material/rna/exercises1_RNAseq_withChipster_ENCODE.pdf)
- **Slides (inglês):** [Link](https://chipster.csc.fi/material/rna/RNAseqDataAnalysis2020.pdf)
- **Playlist - Curso de RNA-seq do Chipster (inglês):** [Link](https://www.youtube.com/playlist?list=PLjiXAZO27elBj3KYi7ACscgOxlNkNOxPc)
---
## Chipster: Entendendo a plataforma
O Chipster é uma plataforma de análises bioinformáticas para usuários iniciantes e/ou que não desejam se aprofundar nas execuções de programas via linhas de comando. Nesta plataforma é fácil executar, salvar e compartilhar análises e workflows completos de forma simples e intuitiva. O programa pode ser implementado de várias formas, aqui utilizaremos uma máquina virtual presente em um dos servidores da Unesp.
## Instalação do Chipster
1. O Chipster é um programa desenvolvido em Java, então inicialmente temos que instalar o Java Runtime Environment:
- **Download:** [Link]( https://www.java.com/pt-BR/download/manual.jsp)

2. Para utilizarmos o programa é necessário acessar o link abaixo e selecionar a opção de 6GB:
**Link:** http://200.145.102.155:8081/


3. Com o Java instalado, devemos abrir o `servlet.jnlp` e utilizar como username e senha a palavra `chipster`

## Layout
O programa possui sua interface dividida em quatro partes, sendo elas: Área de dados/arquivos; Área de análises; Área da representação do fluxo de trabalho (Workflow); e Área de visualizações.

---
## Análise de RNA-seq
Nesse tutorial iremos trabalhar com duas amostras originadas pela técnica de sequenciamento de RNA humano. Faremos a checagem de qualidade, de direcionamento, remoção de leituras/bases ruins, alinhamento contra o genoma, contagem de leituras por gene e avaliação de expressão diferencial.
Para fins didáticos, as amostras são apenas frações de bibliotecas verdadeiras e não possuem réplicas. Tenha em mente que uma análise verdadeira de RNA-seq requer ao menos 3 réplicas por condição e é muito mais computacionalmente custosa que esta, ainda que sigam as mesmas etapas.
### 1. Iniciando o Chipster e carregando os dados
- Faça o download do arquivo **amostras.zip** no [Classroom](https://drive.google.com/file/d/1pqGBnq_DApmCblsXb6claxynuM3FUdPx/view?usp=sharing). Descompacte o arquivo e altere o nome da amostra `smp_SEU-RA-AQUI.fastq` inserindo a sua própria informação (RA) para a atribuição da nota. No total você deve possuir duas amostras:
- **Amostra 1:** `smp_controle.fastq`
- **Amostra 2:** `smp_343847934.fastq` (exemplo)
- Abra o arquivo `servlet.jnpl` utilizando as credenciais de **username** e **password** com `chipster`.
- No quadrante de **Datasets** clique em **'Import files'** e localize e selecione as amostras `.fastq`. As amostras devem aparecer tanto no quadrante **Datasets** quanto no **Workflow** e podem ser selecionadas em qualquer um deles. Para selecionar múltiplas amostras segure o `ctrl` ao clicar nelas.


### 2. Checando a qualidade das leituras com FASTQC e MultiQC
- Selecione ambos os arquivos `.fastq` e no quadrante das **análises** selecione **"Quality control" > "Read quality with FastQC"**

- Para alterarmos parâmetros das análises devemos clicar em **"Show parameters"**. Aqui, alteraremos a opção **"Create input for MultiQC"** para **"yes"**. E então iniciamos a análise clicando em **"Run for each"**

- Serão gerados dois *outputs* (saídas) para cada arquivo `.fastq`. Selecione um dos arquivos `.html` e no quadrante de **visualização** selecione **"Open in external web browser"** para visualiza-lo.
- Para concatenar os resultados em um único relatório (o que pode ser essencial em experimentos com muitas amostras) vamos selecionar os dois arquivos `.mqc` e, então, selecionar a análise **"Quality control" > "Combine reports using MultiQC"** e clique em **"Run"**. Isso deverá gerar um novo `.html` chamado `multiqc_report.html` que pode ser visualizado da mesma forma que o anterior.
### 3. Podando sequências de baixa qualidade com o Trimmomatic
- Selecione o primeiro arquivo `.fastq` e no quadrante das **análises** selecione **"Preprocessing" > "Trim reads with Trimmomatic"**. Para removermos bases de baixa qualidade no final das sequências e sequências muito pequenas alteraremos (em **"Show parameters"**), respectivamente, os parâmetros: **"Minimum quality to keep a trailing base"** = **5** e **"Minimum length of reads to keep"** = **50**. Então, clique em **"Run"**. *Repita o mesmo processo para o segundo arquivo `.fastq`*

- O resultado do processamento são arquivos `.gz` (fastq's compactados) com sequências livres de bases/sequências ruins. Há também um arquivo log `.txt` que informa quantas sequências foram excluidas e quantas mantidas (para visualizar selecione o `.txt` e no campo da **visualização** clique em **"View text"**).
- *(Opcional)* Os passos do tópico de checagem de controle de qualidade podem ser refeitos para os arquivos `.gz` permitindo, assim, verificar a efetividade do processamento.
### 4. Checando o direcionamento das sequências
No processo de sequenciamento as leituras geradas podem assumir uma série de posições em relação ao fragmento sequenciado:

Em caso do desconhecimento do layout utilizado, podemos utilizar uma ferramenta do Chipster para inferir a direção das leituras:
- Selecione uma das amostras processadas (final `_trimmed.fq.gz`) e rode a ferramenta: **"Quality control" > "RNA-seq strandedness inference and inner distance estimation using RseQC"** (cheque nos parâmetros se o genoma está correto **"genome = Homo_sapiens.GRCh38.95"**). *Repita o mesmo processo para o segundo arquivo `_trimmed.fq.gz`*
- O resultado visualizado em `experiment_data.txt` será utilizado em passos posteriores.

### 5. Alinhamento das leituras contra o genoma de referência com HISAT2
- Selecione uma das amostras `trimmed.fq.gz` e execute a análise **"Alignment" > "HISAT2 for single end reads"**. Nos parâmetros, assegure que o genoma selecionado seja o adequado (**"genome = Homo_sapiens.GRCh38.95"**) e opção de direcionamento esteja como o predito no passo anterior (**"Strandedness" = "F"**), então rode (**"Run"**). *Repita o mesmo processo para o segundo arquivo `_trimmed.fq.gz`*.
- Ao final das execuções, haverão dois pares de arquivos do tipo `.bam` (arquivo de alinhamento), `.bai` (arquivo de indexação) e `.log` (informações sobre o alinhamento).

- Ao selecionar um arquivo `.bam` é possível visualizar os alinhamentos das leituras no genoma. Para fazê-lo, selecione um dos `.bam` e, no campo de visualizações, selecione **"Genome browser"**. Na nova tela que se abrirá, selecione o genoma (**"Genome" > "Homo_sapiens.GRCh38.95 (hg38)"**) e vá ao cromossomo 19 (em **"Location": "Chromosome" > "19"**), então aperte **"Go"**. Navegue pelo cromossomo arrastando o cursor e dando zoom quando necessário.


### 6. Obtenção das contagens de leituras por gene com o HTSeq
Uma vez obtido os alinhamentos, é possível contabilizar o número de leituras relacionadas com cada gene presente no genoma de referência. Isso permitirá avaliar quais elementos são diferencialmente expressos entre as amostras.
- Selecione ambos arquivos `.bam` bem como a ferramenta **"RNA-seq" > "Count aligned reads per genes with HTSeq"**. Nos parâmetros, altere a opção de direcionamento das leituras (**"Is the data stranded and how" = "yes" in HTSeq...**). Então, clique em **"Run for each"**. Cada arquivo `.bam` resultará em duas saídas: O arquivo de contagens `.tsv` e um relatório `.txt`.

- Inspecione um dos arquivos `.tsv` clicando em **"Spreadsheet"** no campo de visualização. Clique duas vezes na coluna nomeada **"count"** para ordenar os genes de forma decrescente.

### 7. Detectar os genes diferencialmente expressos com o edgeR
Com as contagens em mãos podemos comparar as condições e verificar quais são os genes diferencialmente expressos entre elas. Para isso, precisamos definir os grupos amostrais.
- Selecione ambos arquivos `.tsv` contendo as contagens e, então, a ferramenta **"Utilities" > "Define NGS experiment"**. Nos parâmetros defina: **"Count column" = "count"** e **"Does your data contain genomic coordinates" = "yes"**. Após rodar (**"Run"**) obteremos dois novos `.tsv` (`ngs-data-table.tsv` e `phenodata.tsv`). Abra o `phenodata.tsv` e clique em **"Phenodata editor"**. Preencha a coluna **group** designando **1** para a primeira amostra e **2** para a segunda e então, feche (**"Close"**).

- Para executar o **edgeR** e detectar os genes diferencialmente expressos selecione o novo `.tsv` criado (`ngs-data-table.tsv`) e a ferramenta **"RNA-seq" > "Differential expression using edgeR"**, então rode (**"Run"**).

- Abra o novo `.tsv` criado (`de-list-edger.tsv`) visualizando a **"Spreadsheet"**. Ai estão os genes diferencialmente abundantes.

### 8. Anotação dos genes dif. exp.
:::warning
**ATENÇÃO: Esse passo pode não funcionar, pois depende dos servidores da Ensembl estarem online e funcionais. Em caso de erro, prossiga para a próxima etapa utilizendo a tabela `de-list-edger.tsv`**
:::
- Para identificar os genes que foram considerados dif. expressos vamos fazer a anotação dos genes selecionando a tabela `de-list-edger.tsv` e utilizando a ferramenta **"Utilities" > "Annotate Ensembl identifiers"**

- Abra o novo `.tsv` criado (`annotated.tsv`) visualizando a **"Spreadsheet"**. Agora podemos saber quais são os genes, incluindo o nome, descrição e símbolos.

### 9. Visualizações finais
Agora podemos abrir o `annotated.tsv` e explorar visualmente os resultados:

