Reprodutibilidade 🔄

1. Fazer. Refazer. Desfazer. Fazer Novamente. SALVAR TUDO! 🚨

No trabalho com dados genômicos sempre rodamos as análise infindáveis vezes com parâmetros diferentes e geramos inúmeras versões dos gráficos apresentados fazendo uso de scripts levemente modificados. Assim, é de suma impotância que tenhamos um ótimo controle dessas diferentes versões. Isso é geralmente conseguido usando-se um bom Sistema de Controle de Versões, que garante que tenhamos total controle de todas as versões envolvidas. O GitHub é a plataforma de hospedagem de códigos e arquivos mais comumente utilizada na área científica, e faz do Git — um amplo sistema de controle de versões. Portanto, iremos agora passar por uma breve introdução à rotina de trabalho com o essa importante ferramente de trabalho.

1.1. Criando Uma Conta no GitHub

Caso você ainda não tenha uma conta no GitHub, você pode criar uma de forma gratuita aqui usando o caminho que você achar melhor.

1.2. Criando Um Novo Repositório

Os códigos armazenados no GitHub são hospedados dentro de repositórios destinados a projetos específicos, e esses repositórios podem ser públicos ou privados. Assim, precisamos agora criar um novo repositório chamado WorkshopSBBE26, o que pode ser feito aqui segundo esses parâmetros (não é preciso se preocupar com as demais opções):

1.3. Gerando uma chave SSH pública no NPAD/UFRN

Você agora pode conectar a sua conta no NPAD/UFRN ao seu GitHub também através de uma Chave Pública tipo RSA. Para isso, primeiro crie uma chave na sua conta no NPAD/UFRN usando o comando abaixo. Você deverá digitar uma senha para a sua chave, apertar Enter e depois repetir a mesma senha e apertar Enter outra vez. Isso feito, a sua chave terá sido criada. ⚠️ Atenção! É importante que você se lembre da sua senha depois — guarde-a com sabedoria!

ssh-keygen -t ed25519 -C "COLOQUE-AQUI-O-EMAIL-CADASTRADO-NO-GITHUB" -f ~/.ssh/MyNPAD-MyGitHub

Abra a chave criada com o comando abaixo e copie todo o seu contúdo:

cat ~/.ssh/MyNPAD-MyGitHub.pub

Você deve registrar o a chave criada aqui usando os seguintes parâmetros:

Por fim, você pode fazer com que o NPAD/UFRN sempre use essa chave. Para isso, abra o ficheiro ~/.ssh/config com o programa nano com o seguinte comando:

nano ~/.ssh/config

E nele cole as linhas abaixo (lembre-se que para sair do nano você deve fazer control + o, apertar Enter e então control + x):

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/MyNPAD-MyGitHub

1.4. NPAD/UFRN <-> GitHub — Uma Conexão Necessária

Só resta a você configurar a sua conta no NPAD/UFRN de forma tal que ela sempre use a sua conta no GitHub. Isso pode ser feito com o comando abaixo fazendo uso.

git config --global user.name USUÁRIO-GITHUB; git config --global user.email EMAIL-GITHUB

Pronto! Agora você tem repositório criado e tudo configurado no NPAD/UFRN. Assim, agora você pode conectar esse repositório ao diretório tutorial_ipyrad criado no passo anterior. Para isso, vamos primeiro entrar no diretório tutorial_ipyrad e depois iniciar essa conexão com o comando abaixo:

cd ~/tutorial_ipyrad; git init -b main

Daí você pode fazer a conexão de fato adicionando ao comando abaixo o seu nome de usuário no GitHub e WorkshopSBBE26 como nome de repositório:

git remote add origin git@github.com:USUÁRIO-GITHUB/WorkshopSBBE26.git

Você pode criar o seu primeiro ficheiro dentro do seu repositório. Vamos aproveitar essa oportunidade para criar um arquivo especial dentro do sistema do GitHub — o ficheiro README.md. Crie-o com o nano e coloque nele o conteúdo abaixo Lembre-se que você deve apertar control + o seguido do Enter para salvar, e depois control + x para sair do programa nano.

## Dummy Repository for the [SBBE26 Introduction to Genomic Analyses Workshop](https://sbbe-oficial.github.io/workshopgenomics/)

> Documentation outlining the pipeline's workflow.  
***

### Data Processing 

The dataset [ipsimdata.tar.gz](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/ipsimdata.tar.gz) was processed with [Ipyrad](https://ipyrad.readthedocs.io/en/master/) using the parameters in [params-tutorial.txt](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/params-tutorial.txt).

### Population Structure  

#### Principal Component Analysis

This analysis was performed with the software [Plink](https://www.cog-genomics.org/plink/) as described in [RunsPCA.sh](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/PCA/RunsPCA.sh). The results were ploted using R script [PlotsPCA.R](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/PCA/PlotsPCA.R).

- [PCA_Plot.pdf](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/PCA/PCA_Plot.pdf)

#### Estimation of Individual Ancestries

This analysis was performed with the software [Admixture](https://dalexander.github.io/admixture/) as described in [RunsAdmixture.sh](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/Admixture/RunsAdmixture.sh). The results were ploted using R script [PlotsAdmixture.R](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/Admixture/PlotsAdmixture.R).

- [Admixture_Plot.pdf](https://github.com/USUÁRIO-GITHUB/WorkshopSBBE26/blob/main/SBBE26_PopGen/Admixture/Admixture_Plot.pdf)

Tendo adicionado o primeiro ficheiro, agora você pode submeter ao GitHub as mudança feita localmente no nosso repositório. Primeiro, temos que adicionar as mudanças:

git add .

Então você pode adicionar uma nota (commit) a ser vinculada à mudança em questão:

git commit -m "COLOQUE-AQUI-UM-COMENTÁRIO-QUE-FAÇA-SENTIDO"

Finalmente, você pode enviar ao seu repositório as mudanças e no mesmo segundo o seu repositório será atualizado no GitHub!

git push -u origin main

Você agora pode atualizar a página do seu repositório no GitHub e todas as mudanças já devem estar ativas!


Parabéns — você concluiu um dia inteiro de análises genômicas!  🎊