---
# System prepended metadata

title: 'Humann:'

---

# HUMAnN

:::info
**DISCLAIMER:** 
Recopilé algo de información de Humann para el análisis, yo lo he hecho por última vez con la version v3.0.1, ya van por la v4 así que ya saben que esto lo toman de guía y ajustan a la nueva versión :smiley: 
:::

Tienen que tener en cuenta algunas cosas con los resultados de Humann para poder trabajar mejor con ellos. El output por default que tienen es **“estratificado”** es decir ha intentado mapear cada vía, gen a bacterias y está en **RPKs** (reads per kilobase). 

### 1. Estratified o unstratified 💀
El tema de usar los datos con la estratificación o no, va a depender de el grado de profundidad que queramos obtener. Los resultados "estratificados" muestran cuanto aporta cada taxón (bicho) a la vía, mientras que los "no estratificados" muestran la contribución total del mcirobioma a esa vía metabólica. 

Por ejemplo, para los celiacos trabajé con los datos “unstratified” (debo decir que personalmente me parecía más fácil de entender, también… ) y así globalmente comparé las vías MetaCyc presentes en un cluster vs. el otro cluster de pacientes. 

Pero va a depender un poco de lo que busquemos, por ejemplo @diegocoleto7 igual sabiendo los bichos del probiótico qe le están dando a los pacientes del estuidio, nos interesa ver ese bicho en particular que vías aporta para un análisis, pero luego un análisis sin estratificar para ver todo desde un punto de vista más general. :smile: 


Para crear la tabla "unstratified": 

```bash
humann_split_stratified_table --input demo_pathabundance.tsv --output estratos
```

### 2. Normalizaciones y movidas 

Como dije los resultados están en RPKs, estas unidades tienen en cuenta la longitud del gen, pero no la profundidad de secuenciación de la muestra y como siempre para hacernos la vida más dificl lo suyo es normalizar esto porque en RPKs nos sirven para poco. Se puede normalizar a cpm "copies per million" (CPM) o a abundancias relativas con el script `humann_renorm_table` y sería a gusto del consumidor o depende del análisis final que queramos hacer. (Para algo más específico revisar el [manual](https://github.com/biobakery/humann?tab=readme-ov-file#humann_regroup_table))

```bash
#Para normalizar a CPMs
humann_renorm_table --input demo_fastq/demo_genefamilies.tsv \
    --output demo_fastq/demo_genefamilies-cpm.tsv --units cpm --update-snames
    
#Normalizar a abundancias relativas     
humann_renorm_table -i demo_pathabundance.tsv -o demo_pathabundance.relab.tsv --units relab
```

>Ellos recomiendan normalizar sólo una vez a nivel de familia de genes para ajustar las diferencias iniciales en la profundidad de secuenciación de la muestra y no re-normalizar cuando se mapee a otras cosas (Punto siguiente). 


### 3. Mapeo a otras “cosas” 

Para obtener las enzimas (EC level) u otros mapeos a otras vías KEGG, EGGNOG,etc. 

Primero hay que descargar las bases de datos disponibles para hacer esos mapeos (Mejor hacerlo directamente con este comando porque así ya automáticamente guarda el directorio, intenté en su momento bajarla yo y darle el directorio y colapsaba -humann, no yo-. 

```bash
humann_databases --download utility_mapping full /home/lauramarcos/Compubio
```

Luego ya se pueden hacer los diefrentes mapeos. 

Aquí dejo las opciones que hay, ***@Blanca***  a lo mejor de cara al paper de MHO interesa alguna en particular para ser más “funcionales” … las reacciones tal vez ¿?. @diegocoleto7 yo te pido las EC, ***@Alba*** para Alberto es que no sé ni si hacer esto … xD 

* MetaCyc Reactions
* KEGG Orthogroups (KOs)
* Pfam domains
* Level-4 enzyme commission (EC) categories
* EggNOG (including COGs)
* Gene Ontology (GO)
* Informative GO

:::info
con `humann_regroup_table -h `se ven las opciones que hay
:::

> Aquí ojo frente a que mapearon inicialmente, por defecto es Uniref90 (me suena que ***@Blanca*** alguna vez usó Uniref50 para ratones – puedo estar inventandolo-) 

Para ejecutar: 

```bash
humann_regroup_table --input demo_pathabundance_cpm.tsv --groups uniref90_level4ec --output ec.tsv
```
>All subsequent estimates from HUMAnN (e.g. reaction and pathway abundance) are likewise computed in these CPM units.
>
### 4. Juntar datos

Para facilidad juntar todas las muestras en un sóla tabla. 

```bash
humann_join_tables --input hmp_subset --output hmp_subset_pathabundance.tsv --file_name pathabundance 
```

### 5. ¿Cómo seguir luego? 

Luego el análisis siguiente podría ser Masslin, Lefse o similar para ver diferencias entre grupos. He visto que Humman tiene una opción para sacar unas grafiquitas intersantes que pueden servir para ver bichos en particular. Ves la vía y cuales bichos la tienen... -:eyes: Esto no lo he hecho no se si sirve o nos mienten-

Ejemplo (*Esto es del [tutorial](https://github.com/biobakery/biobakery/wiki/humann4))*
```
humann_barplot --input hmp_pathabund.pcl --focal-metadata STSite --last-metadata STSite \
    --output plot2.png --focal-feature METSYN-PWY --sort sum
```


![image](https://hackmd.io/_uploads/rJfq9f1oge.png)


### 6. Mi recomendación sería: 

- Para bichos particulares buscar en los resultados “stratified” el bicho. 
- Usar Maaslin y explorar `humann_barplot` y los análisis del tutorial de humann con las vías "stratified" si nos interesa. 
- Para facilitarnos la vida y entender los resultados: **Usar los datos unstratified** y ver diferencias entre grupos, análisis tipo el [STAMP](https://github.com/donovan-h-parks/STAMP), ANCOM (quizá se podrá hacer¿?), masslin, Lefse y  ver diferencias por grupo de las vías metabólicas (es decir pathway abundance), y los mapeos extra que se quieran hacer (EC levels, reacciones).
- Revisar el [Manual](https://github.com/biobakery/humann?tab=readme-ov-file#humann_regroup_table ) porque hay cosas que se me pueden escapar.

:::warning
Términos confusos :warning: 
**UNMAPPED:** unmapped reads are collected as UNMAPPED.
**UNKNOW:** Reads that map to gene families that lack UniRef90 identifiers
**UNCLASSIFIED:** Read mappings generated during (organism-agnostic) translated search are assigned to an unclassified bin. En el formato "stratified". 
**UNINTEGRATED:** reads that are attributable to specific gene families (typically also within specific organisms), but for gene families that are not annotated to any pathway in the corresponding database (e.g. MetaCyc).
:::
    
