---
# System prepended metadata

title: Genómica Comparativa
tags: [UD_Bioinfo, Documentation, Genomica_Comparativa]

---

---
title: 'Comandos básicos unix'
disqus: hackmd
---
# Unidad Didáctica de Bioinformática y Proteómica

Genómica Comparativa
===
![downloads](https://img.shields.io/github/downloads/atom/atom/total.svg)
![build](https://img.shields.io/appveyor/ci/:user/:repo.svg)
![chat](https://img.shields.io/discord/:serverId.svg)

## Tabla de Contenido

[TOC]

## Pasos antes de comenzar

Si es tu primera vez, vamos a comenzar desde aquí.

1. Tener un emulador de terminal

*Usuarios Windows:*
    - Windows power shell [Instalación aquí](https://learn.microsoft.com/es-es/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.4)
    - MobaXterm [Instalación aquí](https://mobaxterm.mobatek.net/)

*Usuarios IOS/Mac*
    - Terminal, viene instalada nativa
    - iterm2 [Instalación aquí](https://iterm2.com/)
    
2. Tener un editor de texto plano (No es necesario pero recomendable)
    Opciones: 
    - SublimeText [Instalación aquí](https://www.sublimetext.com/)
    - Notepad++
    - Bloc de notas
3. Tener una cuenta en el servidor. 
    No te preocupes, la primera clase te asignaremos la cuenta
4. Necesitaremos un software para compartir archivos de mi computadora al servidor
    - FileZilla [Instalación aquí](https://filezilla-project.org/)
6. **Estamos listos ¡Comencemos!**
7. Conexión al servidor Bioinformatica2

```gherkin=
Feature: Usar comando "ssh"
#Sintaxis: 
ssh [OPC] usuario@IP.SERVIDOR

# Así nos conectamos al servidor Bioinformatica, solo intercambia tu usuario

## Opción 1
ssh -X -p 265 -o ServerAliveInterval=60 user@201.131.57.37

## Opción 2
ssh -X -p 265 -o ServerAliveInterval=60 user@bioinformatica.insp.mx
```

## Práctica: PYANI
### 1. Preparación de espacio de trabajo
```gherkin=
Feature: Crear directorios de trabajo
cd
# Crear directorio de genomica_comparativa y entrar al directorio
mkdir genomica_comparativa
cd genomica_comparativa
# Crear directorio de pyani 
mkdir pyani
cd pyani

# Activar ambiente conda 
conda activate pyani
```
### 2. Obtencion de referencias
```gherkin=
Feature: Bajar referencias de NCBI

# Ayuda de genbank_get_genomes_by_taxon.py
genbank_get_genomes_by_taxon.py --help

# Debido a las restricciones que tiene el servidor, se encuentra bloquedo el ftp del NCBI, por lo tanto vamos a copiar el directorio que les bajaria sin las restricciones

cp -r /home/egodoy/data/pyani_input .

#Revisar los archivos log
cd pyani_input
less Pelosinus_downloads.log
tail Pelosinus_downloads.log

# Quitar los genomas comprimidos
# En su caso no hay que quitarlos porque ya lo quitamos previamente
rm *.fna.gz

# Explorar y mover los archivos txt a un nivel superior
cat labels.txt
mv labels.txt classes.txt ../.

#Quitar genomas repetidos
rm GCF_900114615.1_IMG-taxon_2636416028_annotated_assembly_genomic.fna GCF_000271485.1_Pelosinus.strR7_v1.0_genomic.fna GCF_900100555.1_IMG-taxon_2642422525_annotated_assembly_genomic.fna GCF_000271665.1_Pelosinus.strJWB45_v1.0_genomic.fna

# Generar liga simbolica dentro de la carpeta de pyani_input del genoma a comparar
ln -s /home/egodoy/data/genomas/Pelosinus_MAG.fa .

# Verificar que la liga simbolica esta activa
ls -l
cd ..
```
### 3. Modificación de archivos labels/clases.txt

```gherkin=
Feature: Modificar el archivo de labels para quitar genomas repetidos y genomas que no se pudieron bajar
# Opción 1. Usando vim o nano
vim labels.txt

# Agregar el genoma a evaluar
Pelosinus_MAG	Pelosinus MAG

# Borrar las lineas de los genomas repetidos

# GCF_900114615.1_IMG-taxon_2636416028_annotated_assembly_genomic
# GCF_000271485.1_Pelosinus.strR7_v1.0_genomic
# GCF_900100555.1_IMG-taxon_2642422525_annotated_assembly_genomic
# GCF_000271665.1_Pelosinus.strJWB45_v1.0_genomic.fna

# Opción 2. Copiar el archivo labels.txt modificado del siguiente path:
cp /home/egodoy/genomica_comparativa/pyani/labels.txt .

```

### 4. Correr pyani

```gherkin= 
Feature: Generar la instrucción para ejectutar pyani

# Ayuda
average_nucleotide_identity.py --help

# Correr la instrucción
average_nucleotide_identity.py -v -i pyani_input/ \
-o pyani_output/ -g --gformat png --labels labels.txt >> pyani.log 2>&1

```

### 5. Examinar los archivos de salida
```gherkin= 
Feature: Examinar directorio "pyani_output"
cd pyani_output
ls -l 
```

### 5. Copiar archivos de salida a su computadora
```gherkin= 
# Opcion1: Hacerlo por medio de scp
# 5.1. Abrir una terminal en nuestra computadora
# 5.2. Ubicarnos en el directorio en donde quiero colocar los archivos
# 5.3. Usar el comando "scp"
scp -P 265 user@201.131.57.37:/ubicacion/servidor/pyani_output/ .


# Opcion2: Hacerlo por medio de FileZilla
```


## Práctica: MAUVE. Reordenamiento de contigs

### 1. Preparar espacio de trabajo
```gherkin=
# Crear una carpeta que se llame mauve en sus computadoras personales

mkdir mauve
```

### 2. Obtener archivos a mi computadora personal
```gherkin=
Feature: Copiar los archivos que usaremos Pelosinus_MAG.fa y la referencia (Pelosinus_fermentans_JBW45.fa)

# Ingresar al directorio mauve
cd mauve

# Opción 1: scp
scp -r -P 265 alumnoXX@201.131.57.37:/home/egodoy/data/genomas/Pelosinus_MAG.fa .
scp -r -P 265 alumnoXX@201.131.57.37:/home/egodoy/data/genomas/Pelosinus_fermentans_JBW45.fa .

# Opción 2: FileZilla
```

### 3. Correr Mauve
```gherkin=
Feature: Pasos a seguir
3.1 Abrir mauve
3.2 Ir a Tools -> move contigs
3.3 Elegir la referencia (Pelosinus_fermentans_JBW45.fa)
3.4 Elegir el genoma que queremos reordenar (Pelosinus_MAG.fa)
```

### 4. Explorar salida de mauve

```gherkin=
Feature: Cambiar nombre del ultimo alineamiento a Pelosinus_MAG_reordenado.fa
cd mauve
ls
# Las XX se cambian por el último alineamiento que tuvieron
cd alignmentXX
mv Pelosinus_MAG.fa.fas Pelosinus_MAG_reordenado.fa
```

## Práctica: MAUVE. Alineamiento de genomas
### 1. Conectarse al servidor
```gherkin=
Feature: con el comando "ssh"
ssh -X -p 265 alumnoXX@201.131.57.37
```

### 2.  Preparar espacio de trabajo 
```gherkin= Crear carpeta de mauve
Feature:
cd genomica_comparativa
mkdir mauve
cd mauve
```

### 3. Crear liga simbolica de los genomas de la carpeta de pyani_input
```gherkin=
Feature: Con el comando "ln"
ln -s /home/egodoy/genomica_comparativa/pyani/pyani_input/*.* .
```

### 4. Crear una lista ordenada 
```gherkin=
Feature: Lista de los nombres de los genomas en un archivo que se llame "lista"
ls *.fa *.fna | sort > lista

# Copiar labels.txt a la carpeta de mauve
cp /home/egodoy/genomica_comparativa/pyani/labels.txt .
```

### 5. Modificar archivo labels.txt 
```gherkin=
Feature: 
sort labels.txt | cut -f2| sed 's/ /_/g;s/\.//g' | tr "\n" " " |sed 's/ /.fa /g'| tr " " "\n" > labels_mod
paste lista labels_mod

mv GCA_002434245.1_ASM243424v1_genomic.fna P_fermentans_isolate_UBA6563.fa
mv GCA_021372375.1_ASM2137237v1_genomic.fna P_sp_isolate_bin460.fa
mv GCA_029239675.1_ASM2923967v1_genomic.fna P_sp_isolate_L_E1_T20_C_bin69.fa
mv GCA_032078585.1_ASM3207858v1_genomic.fna P_sp_isolate_CTOTU48513.fa
mv GCA_032079965.1_ASM3207996v1_genomic.fna P_fermentans_isolate_CTOTU48474.fa
mv GCA_900542835.1_UMGS495_genomic.fna u_Pelosinus_sp_isolate_UMGS495.fa
mv GCA_900550105.1_UMGS1260_genomic.fna u_Pelosinus_sp_isolate_UMGS1260.fa
mv GCA_946415545.1_SRR12377472_bin.15_metawrap_v1.3_MAG_genomic.fna u_Pelosinus_sp_isolate_SRR12377472_bin15.fa
mv GCA_963526485.1_ERR9968789_bin.10_MetaWRAP_v1.3_MAG_genomic.fna u_Pelosinus_sp_isolate_ERR9968789_bin10.fa
mv GCA_963526645.1_ERR9968768_bin.30_MetaWRAP_v1.3_MAG_genomic.fna u_Pelosinus_sp_isolate_ERR9968768_bin30.fa
mv GCF_000271485.2_Pelosinus_fermentans_DSM_17108_v1.1_genomic.fna P_fermentans_R7.fa
mv GCF_000271505.1_Pelosinus.strB4_v1.0_genomic.fna P_fermentans_B4.fa
mv GCF_000271545.1_Pelosinus.strA11_v1.0_genomic.fna P_fermentans_A11.fa
mv GCF_000271665.2_ASM27166v2_genomic.fna P_fermentans_JBW45.fa
mv GCF_000317005.1_Hcf1DRAFT_genomic.fna P_sp_HCF1.fa
mv GCF_000725345.1_ASM72534v1_genomic.fna P_sp_UFO1.fa
mv GCF_020819555.1_ASM2081955v1_genomic.fna P_baikalensis_Bkl1.fa
mv GCF_030269905.1_ASM3026990v1_genomic.fna P_sp_IPA-1.fa
mv Pelosinus_MAG.fa Pelosinus_MAG.fa
```
### 6. Copiar archivos localmente
```gherkin=
Feature: Copiar la carpeta completa de genomas a mi computadora. Cambiando el nombre de la carpeta a genomas
scp -r alumnoXX@201.131.57.37:/home/alumnoXX/genomica_comparativa/mauve/ genomas

### 7. Preparar espacio de trabajo local (computadoras personales)
```gherkin=
Feature: Generar directorio alineamiento
mkdir alineamiento
```

### 8. Generar el alineamiento
```gherkin=
Feature: Dentro de la aplicación de mauve
8.1 Abrir mauve
8.2 Ir a File > Align with progressiveMauve
8.3 Añadir las secuencias en: Add Sequence...
8.4 Modificar el Output en ...
8.5 Align
```
### 9. Explorar la salidas

## Práctica: DNA Plotter / Artemis
### 1. Preparar espacio de trabajo
```gherkin=
Feature: Dentro del servidor, movernos al directorio genomica_comparativa
cd /home/alumnoXX/genomica_comparativa

# Crear directorio artemis
mkdir artemis
cd artemis
```

### 2.Copiar gff al directorio artemis
```gherkin=
Feature: Copiarlo del directorio de /egodoy/data/genomas
cp /home/egodoy/data/genomas/qG_Pelosinus_MAG_reordenado_u214.gff3 .
```
### 3.Copiar Genoma reordenado
```gherkin=
Feature: Escoger opción 1 o 2
# Opcion 1: Pasar el fasta reordenado que salio de MAUVE al servidor
scp -P 265 Pelosinus_MAG_reordenado.fa alumnoXX@201.131.57.37:/home/alumnoXX/genomica_comparativa/mauve/

# Opcion 2: Hacer una liga simbolica de Pelosinus_MAG_reordenado.fa
ln -s /home/egodoy/data/genomas/Pelosinus_MAG_reordenado.fa .
```
### 4. Modificar gff 
```gherkin=
Feature: Escoger opción 1 o 2
# Opcion 1. Correr script mod_gff_multifasta.R
4.1 Activar ambiente conda
conda activate tools_bioinfo
Rscript /home/egodoy/scripts/mod_gff_multifasta.R qG_Pelosinus_MAG_reordenado_u214.gff3 Pelosinus_MAG_reordenado.fa Pelosinus_MAG_reordenado.gff

# Opcion 2. Copiarlo del que yo genere
cp /home/egodoy/data/genomas/Pelosinus_MAG_reordenado.gff .
```
### 5. De manera local.
```gherkin= 
Feature: En mi computadora
5.1 Abrir una terminal en mi computadora e ir a la direccion en donde quiero poner la información
5.2 Copiar archivos a mi computadora

# Opción : comando scp
scp -r alumnoXX@201.131.57.37:/scratch/alumnoXX/artemis/

# Opción2 : usar FileZilla
```

### 6. Abrir aplicación: artemis
```gherkin= 
Feature: Dentro de la aplicación *artemis*
6.1 Colocar directorio de trabajo -> OK
6.2 File -> Open...
6.3 Seleccionar del directorio de artemis el genoma : 
                                       Pelosinus_MAG_reordenado.fa -> Abrir
6.4 File -> Read Entry Into >Pelosinus_MAG_reordenado.fa
6.5 Seleccionar "Pelosinus_MAG_reordenado.gff"
6.6 File -> Open in DNAPlotter
# Dibujar gráficos de contenido de GC y GC Skew
6.7 Graph -> GC plot -> Draw
6.8 Graph -> GC Skew -> Draw
# Modificar CDS foward and reverse
6.9 Options -> Track Manager...
# Seleccionar color y Apply Colour to All
```
## Práctica: proteinOrtho

### 1. Crear directorio de trabajo dentro del directorio de "genomica_comparativa"
```gherkin=
Feature: Crear directorio "proteinOrtho"
cd genomica_comparativa
mkdir proteinOrtho
cd proteinOrtho
```

### 2.Obtencion de referencias

```gherkin=
Feature: Obtención de proteomas de las referencias
# Generar ligas simbolicas
ln -s /home/egodoy/data/genomas/*.faa .
ls
```
### 3. Correr ProteinOrtho
```gherkin=
Feature: Preparar script
nano proteinortho.sh
#!/bin/bash

proteinortho -project=Pelosinus -cpus=4 -verbose -step=0 -dups=2 -singles Pelosinus_MAG_reordenado.faa  Pelosinus_fermentans_JBW45.faa  Pelosinus_sp_Bkl1.faa

```

### 4. Explorar salida de ProteinOrtho
```gherkin=
Feature: Usar comando "head" y "cat"
head Pelosinus.proteinortho.tsv
head Pelosinus.proteinortho-graph
cat Pelosinus.proteinortho-graph.summary
```
### 5. Generar cuentas de pangenoma
```gherkin=
Feature: Contar genes de Core, Shell y Cloud
wc -l Pelosinus.proteinortho.tsv

# Core
grep -c '^3' Pelosinus.proteinortho.tsv

# Shell
grep -c '^2' Pelosinus.proteinortho.tsv

# Cloud
grep -c '^1' Pelosinus.proteinortho.tsv

## Extraer genes de Core, Shell y Cloud
# Core
grep '^3' Pelosinus.proteinortho.tsv > core.tab

# Shell
grep '^2' Pelosinus.proteinortho.tsv > shell.tab

# Cloud
grep '^1' Pelosinus.proteinortho.tsv > cloud.tab

### Explorar archivos
less core.tab
less shell.tab
less cloud.tab

### Extraer genes que solo tienen nuestro genoma
cut -f4 cloud.tab| grep -v '*' > cloud_Pelosinus_fermentas_GOM.tab

# Contar numero de genes
wc -l cloud_Pelosinus_fermentas_GOM.tab

# Explorar archivo
less cloud_Pelosinus_fermentas_GOM.tab
```

### 5. Copiar archivos de manera local
```gherkin=
Feature: Pasar archivos a mi computadora
# Opción 1: 
scp -r -P 265 egodoy@201.131.57.37:/home/egodoy/genomica_comparativa/proteinOrtho/ .

# Opción 2: FileZilla
```

## Práctica: BRIG

### 1. Preparar espacio de trabajo
```gherkin=
Feature: Crear una carpeta que se llame BRIG en ‘genomica_comparativa’ en el servidor
mkdir BRIG
cd BRIG
```

### 2.Crear liga simbolica de genoma reordenado en la carpeta de 'mauve'
```gherkin=
ln -s /home/egodoy/data/genomas/Pelosinus_MAG_reordenado.fa .
```

### 3. Buscar que genomas son multifasta en la carpeta de 'mauve'
```gherkin=
cd ../mauve/
grep -c '^>' *.fa | awk -F ':' '$2 > 1' | cut -d ':' -f1 > list_multifastas.txt
```

### 4. Concatenar multifastas con concatenate_multifasta.sh
```gherkin=
Feature: Ojo con este script solo funciona con genomas en minusculas
while read line; 
do (/home/egodoy/scripts/concatenate_multifasta.sh $line $line.concat.fa); 
done < list_multifastas.txt

## Checar que haya concatenado todas las secuencias
grep -c '^>' *concat.fa

## Crear carpeta 'concatenados' en la carpeta de BRIG
cd ../BRIG; mkdir concatenados; cd concatenados

## Mover todos los fastas concatenados de ‘mauve’ a 'concatenados'
mv ../../mauve/*concat.fa .
ls
```

### 5. Generar ligas simbolicas de genomas completos
```gherkin=
ln -s ../../mauve/P_sp_UFO1_UFO1.fa .
ln -s ../../mauve/P_fermentans_JBW45.fa .

## Quitar el genoma no ordenado de MAG
rm Pelosinus_MAG.fa.concat.fa
```

### 6. Generar tabla de contigs
```gherkin=
Feature: Usa el script "get_table_fasta.R"
cd ..
Rscript /home/egodoy/scripts/get_table_fasta.R Pelosinus_MAG_reordenado.fa Pelosinus_MAG_contigs.tab
less Pelosinus_MAG_contigs.tab
```

### 7. Copiar archivos de manera local
```gherkin=
Feature: Pasar archivos a mi computadora
# Opción 1: scp
scp -r -P 265 alumnoXX@201.131.57.37:/home/egodoy/genomica_comparativa/BRIG .

# Opción 2: FileZilla
```

### 8. Aplicación BRIG

## Información extra

:::info
[**pyani**]
https://github.com/widdowquinn/pyani
https://widdowquinn.github.io/pyani/
https://pyani.readthedocs.io/en/latest/

[**mauve**]
https://darlinglab.org/mauve/user-guide/viewer.html

[**artemis/DNA plotter**]
https://sanger-pathogens.github.io/Artemis/Artemis/

[**proteinOrtho**]
https://gitlab.com/paulklemm_PHD/proteinortho

[**BRIG**]
https://github.com/happykhan/BRIG
http://sourceforge.net/projects/brig/

:::

###### tags: `UD_Bioinfo` `Documentation` `Genomica_Comparativa`