C'est une librairie pour tracer des cartes de features sur l'ADN, en se servant de matplotlib.
Utilisation :
from dna_features_viewer import GraphicFeature, GraphicRecord
features = [GraphicFeature(start = 1, end = 10, strand = 1, color = 'red', label = 'myFeature1'),
GraphicFeature(start = 20, end = 30, strand = -1, color = 'blue', label = 'myFeature2')]
record = GraphicRecord(sequence_length = 30, features = features, plots_indexing = 'genbank')
ax, _ = record.plot()
pyplot.savefig('myImage.png')
pyplot.close()
- attention, utiliser plots_indexing = 'genbank' pour avoir des positions qui commencent à 1, et end est la position + 1
Paramètres de GraphicFeature :
- on peut faire strand = 0 pour ne pas orienter la feature.
- thickness = 20 : l'épaisseur de la boite de la feature.
- linewidth = 4 : l'épaisseur des traits de la boite de la feature.
- linecolor = 'violet' : la couleur des traits de la boite de la feature.
- box_color = 'yellow' : la couleur de fond de la boite contenant le label quand il ne tient pas dans la feature.
- box_linewidth = 2 : l'épaisseur du trait de la boite contenant le label quand il ne tient pas dans la feature.
- fontdict = {'fontsize': 15, 'weight': 'bold', color = 'green'} : permet de modifier les caractéristiques du label
- fixed_level = 0 : permet d'indiquer explicitement le niveau de la feature quand il y a des overlaps : utiliser 0, 1, 2 ... Il s'agit des rectangles symbolisant les features, pas les étiquettes avec les noms.
Paramètres de GraphicRecord :
- sequence_length = 30 : la longueur de la séquence.
- first_index = 123456 : la première valeur de position à tracer (utile si les features sont localisées sur une petite région d'une grande séquence).
- plots_indexing = 'genbank' : commence la numérotation à 1 plutôt qu'à 0 avec le défaut plots_indexing = 'biopython'
- feature_level_height = 2 : règle l'écartement en hauteur entre les features et entre les labels
- ticks_resolution = 10 : tous les combien il faut indiquer les graduations de positions.
- sequence = 'ACGATCGACGTATGATGCTAGGATGATTAC' : la séquence (si on veut l'afficher, voir plot ci-dessous).
- feature_level_height = 1.5 : permet d'augmenter la hauteur des features (1 par défaut).
record.plot :
- ax = myAxis : pour donner le axis sur lequel le graphe est tracé (sinon, un nouvel axis est crée et c'est le premier argument renvoyé par record.plot : myAxis, _ = record.plot().
- figure_width = 8 : la largeur de la figure, si nouvellement crée.
- figure_height = 4 : la hauteur de la figure, si nouvellement crée.
- plot_sequence = True : indique la séquence en-dessous.
- annotate_inline : mettre False pour éviter que le nom soit dans la feature plutôt que dans un label (sinon, il essaie de mettre le nom dans la feature et si pas possible, dans une étiquette).
record.plot_on_multiple_lines(n_lines = 2, ...) : permet de tracer les features sur plusieurs lignes.
record.plot_translation(ax, location = (1, 9), translation = 'TID') : permet de faire figure la traduction en-dessous de la séquence.
On peut aussi utiliser CircularGraphicRecord à la place de GraphicRecord pour faire des cartes circulaires, mais toutes les options ne sont possibles (par exemple, pas de séquence).