|
|
### Présentation :
|
|
|
|
|
|
Ce projet permet la visualisation d'alignements de graphes sous la forme d'un [hive plot](http://www.hiveplot.net/). Il repose sur la librairie [d3js](http://d3js.org/).
|
|
|
|
|
|
[L-GRAAL](http://bio-nets.doc.ic.ac.uk/L-GRAAL/) est utilisé pour générer les alignements mais tout autre alignement provenant d'un outil différent peut-être pris en compte.
|
|
|
|
|
|
### Etapes de l'analyse :
|
|
|
|
|
|
1. **Préparation des fichiers L-GRAAL**
|
|
|
|
|
|
Avant de pouvoir visualiser l'alignement, il faut le générer. Pour cela [L-GRAAL](http://bio-nets.doc.ic.ac.uk/L-GRAAL/) a besoin en entrée des deux graphes à comparer dans un format spécifique (leda) ainsi que d'un fichier contenant les scores de comparaisons de séquences des noeuds (gènes) de chaque graphe.
|
|
|
|
|
|
Le script **prepareLgraal.py** prend en entrée les deux graphes au format csv ainsi que deux fichiers FASTA contenant les séquences des noeuds. Les deux fichiers csv sont convertis au format leda. Les deux fichiers FASTA sont comparés avec [BLAST](http://blast.ncbi.nlm.nih.gov/Blast.cgi) et plus précisément avec la commande blastn qui nécessite préalablement la transformation d'un des deux FASTA en base de données. Ceci est pour l'instant fait à la main grâce à la commande suivante :
|
|
|
|
|
|
```
|
|
|
makeblastdb -in Diff_interSouche_WT.fasta -dbtype nucl -parse_seqids
|
|
|
```
|
|
|
|
|
|
On récupère au final un fichier .eval contenant les evalue BLAST transformées à l'aide de la fonction logarithme.
|
|
|
|
|
|
Exemple
|
|
|
```
|
|
|
python src/prepareLgraal.py data/IFREMER/Diff_interSouche/CSV/Diff_interSouche_2x.csv data/IFREMER/Diff_interSouche/CSV/Diff_interSouche_WT.csv data/IFREMER/Diff_interSouche/BLAST/Diff_interSouche_2x.fasta data/IFREMER/Diff_interSouche/BLAST/Diff_interSouche_WT.fasta
|
|
|
```
|
|
|
produira les fichiers leda aux emplacements des fichiers csv et le fichier .eval au niveau des FASTA
|
|
|
|
|
|
2. **L-GRAAL**
|
|
|
|
|
|
Avant d'utiliser L-GRAAL il faut indexer les fichiers leda avec l'utilitaire **ncount4.exe** fournit avec L-GRAAL. Cela produit des fichiers .ndump2
|
|
|
|
|
|
Appel à L-GRAAL :
|
|
|
```
|
|
|
/home/delage/Software/L-GRAAL-Software-package/L-GRAAL.exe -Q /home/delage/Data/IFREMER/Diff_interSouche/Diff_interSouche_2x.leda -T /home/delage/Data/IFREMER/Diff_interSouche/Diff_interSouche_WT.leda -q /home/delage/Data/IFREMER/Diff_interSouche/Diff_interSouche_2x.ndump2 -t /home/delage/Data/IFREMER/Diff_interSouche/Diff_interSouche_WT.ndump2 -B /home/delage/Data/IFREMER/Diff_interSouche/BLAST/BLAST.eval -o alpha0.2 -a 0.2
|
|
|
```
|
|
|
|
|
|
Le graphe cible (**-T**) doit être le plus grand des deux. Il faut également que les graphes ne contiennent pas de "self-loop" qui génère une erreur à l'éxécution.
|
|
|
|
|
|
Le paramètre **a** détermine la balance de poids entre la similarité topologique et de la similarité de séquences dans le calcul de l'alignement (i.e. a=0 -> similarité topologique seulement, a=1 -> similarité de séquences seulement)
|
|
|
|
|
|
En sortie L-GRAAL produit un fichier tsv contenant les alignements. Illustration :
|
|
|
|
|
|
```
|
|
|
Tiso_gene_17877 Tiso_gene_6170
|
|
|
Tiso_gene_11155 Tiso_gene_11155
|
|
|
Tiso_gene_7357 Tiso_gene_7890
|
|
|
Tiso_gene_5549 Tiso_gene_17314
|
|
|
Tiso_gene_14205 Tiso_gene_8140
|
|
|
```
|
|
|
|
|
|
3. **HiveAlign**
|
|
|
|
|
|
Le script **HiveAlign.py** prend en entrée les deux graphes au format CSV ainsi que le fichier d'alignement produit par L-GRAAL. Le résultat est un fichier html contenant le hive plot.
|
|
|
|
|
|
Exemple
|
|
|
```
|
|
|
python src/HiveAlign.py data/IFREMER/Diff_interSouche/CSV/Diff_interSouche_2x.csv data/IFREMER/Diff_interSouche/CSV/Diff_interSouche_WT.csv data/IFREMER/Diff_interSouche/L-GRAAL-out/Diff_intersouche_alignment_sequence.csv
|
|
|
```
|
|
|
produira le fichier **out/hivealign.html**
|
|
|
|
|
|
|
|
|
### Dépendances :
|
|
|
|
|
|
L-GRAAL et la suite BLAST du NCBI
|
|
|
|
|
|
Packages python
|
|
|
|
|
|
```
|
|
|
argparse
|
|
|
networkx
|
|
|
jinja2
|
|
|
biopython
|
|
|
```
|
|
|
|
|
|
Pour la génération du Hive Plot, seuls les packages python sont requis.
|
|
|
|
|
|
### Description du hive plot :
|
|
|
|
|
|
Voir [Description](description)
|
|
|
|
|
|
### Contenu du repository :
|
|
|
|
|
|
**src** : Sources de l'application
|
|
|
|
|
|
**out** : Dossier de destination du fichier html contenant le hiveplot
|
|
|
|
|
|
**templates** : Templates leda et html utilisés pour respectivement générer les fichiers leda pour LGRAAL et celui contenant le hiveplot
|
|
|
|
|
|
**data** : Données d'entrée de LGRAAL et HiveAlign (sont inclues les données produites par LGRAAL)
|
|
|
|
|
|
**analyse** : Plot des alignements, analyses diverses.
|
|
|
|
|
|
|
|
|
### Autre :
|
|
|
|
|
|
Note : [Dillinger](http://dillinger.io/) permet de générer du code HTML à partir de Markdown
|
|
|
|
|
|
Ce projet a été initié sur le dépôt https://gitlab.univ-nantes.fr/erwan.delage/hubalign . |
|
|
\ No newline at end of file |