Comme ce serait joli dans ma publication!
Effectivement! Et très informatif aussi!

Une image Circos peut être utilisée autant pour de l’analyse de données exploratoire que comme figure descriptive dans une publication scientifique. Dans ces deux cas, ce genre de représentation est très utile pour visualiser un ensemble de données génomiques plusieurs chromosomes à la fois.

Cependant, aussi merveilleuse et excitante qu’est l’idée du Circos , pour un grand nombre de chercheurs la conception d’une telle image ne se fait pas sans embrouille! Pour ceux dont le meilleur ami n’est pas un ordinateur, le fait de devoir générer sa requête (fichiers de configuration) pour ensuite l’éxecuter dans une console peut rendre la tâche difficile et parfois, avouons-le, décourageante.

Voici donc quelques trucs, tirés de ma propre expérience avec le logiciel, qui pourront alléger la tâche et ainsi vous permettre de réaliser votre rêve Circos!

Organisez vos fichiers logiquement et n’ayez pas peur d’utiliser des  << include >>
N’essayez pas de tout mettre dans un même fichier! Selon mon expérience, cela n’est qu’une façon facile de se perdre dans toutes ces lignes de codes. Il est plutôt recommandé de diviser vos fichiers par blocs (blocks) ou par paramètres. Par exemple, vous pourriez avoir un fichier plots.conf contenant tout ce qui est relatif aux pistes  (tracks).

Organisation des fichiers de configuration

Faites un fichier dit « défaut » (circos.conf) dans lequel seront déclarés le karyotype, les chromosomes et le nom de l’image et où vous incluerez vos autres fichiers avec un << include >>.
Dans le cas des règles (rules), il est recommandé de leur crééer un fichier spécifique seulement lorsqu’il y a répétition. Par exemple, si j’écris une règle propre à une seule piste, il n’est pas nécessaire d’en faire un fichier.  Par contre, si cette règle s’applique à plusieurs tracks, il est préférable de créer un fichier rule.conf et d’utiliser << include rule.conf>> au lieu d’écrire la même règle à plusieurs reprises.

N’essayez pas d’obtenir le Circos parfait dès votre premier essai
Le premier Circos devrait toujours être simple et minimaliste pour vous donner une idée globale de ce que vos données représentent. Une fois que vous savez dans quelles directions vont vos données, personnalisez alors votre image avec de la couleur, des étiquettes, l’accentuation de certaines valeurs, etc.

Faites usage de règles lors de l’analyse
Les règles (<rules>) peuvent être appliquées aux pistes ou aux liens (<plot>, <link>). Elles sont utiles lorsque vous voulez apporter des modifications à certaines valeurs seulement, et non à toute la piste ou à tous les liens. Supposons que vous voulez illustrer par des liens les séquences similaires entre chromosomes. Au premier coup d’oeil, il vous serait peut être difficile de tirer une conclusion autre que : il y a en effet des ressemblances. Votre analyse pourrait être approfondie, par exemple, en regardant seulement les ressemblances avec des séquences du chromosome 1:

<links>
  <link>
    file = segdup.txt
    radius = 0.999r
    bezier_radius = 0.2r
    color = grey_a4
    thickness = 1.5
    <rules>
      <rule>
        condition = var(chr1) eq "chr1"  #lien commençant au chr1
        color = dred_a4
        thickness = 5
      </rule>
      <rule>
        condition = var(chr2) eq "chr1"  #lien se terminant au chr1
        color = dred_a4
        thickness = 5
      </rule>
    </rules>
  </link>
</links>

 

circos

Séquences similaires entre les chromosomes 1, 2, 3, 4

 

circos_chr1

Séquences similaires entre les chromsomes 1 et 2, 3, 4

Faites bon usage de l’espace disponible
Les paramètres les plus complexes à définir sont les rayons des pistes i.e. r0 et r1. Gardez en tête que vous n’avez pas à tout définir parfaitement dès la première image. Je vous recommande donc de definir une largeur de track commune (toutes vos pistes auront pour commencer la même largeur) selon cette simple équation:

$w = \dfrac{e-s-(n*p)}{n}$

n est le nombre de pistes, p le rembourrage (padding) entre chaque piste, s le rayon central minimal, e le rayon extérieur maximal, et w la largeur.
Ne surchargez pas votre image avec un trop grand nombre de pistes. Essayez aussi de laisser de l’espace au centre du Circos puisqu’il est plus difficile de lire et comprendre les pistes se rapprochant du point central. Regardons un exemple:

$n = 3$     $p = 0.05r$     $s = 0.2r$     $e = 0.999r$

$w = \dfrac{0.999r-0.2r-(3*0.05r)}{3} = \dfrac{0.649r}{3} = 0.2163r$

track 1:

r1 = 0.999r
r0
= 0.7827r (0.999r – 0.2163r)

track 2:

r1 = 0.7327r (0.7827r – 0.05r)      
r0=0.5164r (0.7327r – 0.2163r)

track 3:  


r1 = 0.4664r (0.5164r – 0.05r)       

r0 = 0.2501r (0.4664r – 0.2163r)

radius

Une fois le Circos initial généré, vous pouvez modifier les valeurs des rayons comme bon vous semble! Par exemple, une piste de carreaux (tiles) n’a pas besoin d’autant d’espace qu’une piste d’histogramme.

 

Common width

Circos avec 3 pistes (histogramme, tiles, nuage de points) de largeur w

 

circos_radius_2

Circos avec 3 pistes (histogrammes, tiles, nuage de points) de largeurs w1, w2 et w3

Pour plus d’informations, référez-vous au site de Circos et à leur onglet tutoriel.
Vous pouvez aussi utilisez notre interface super conviviale, Circos user-friendly-interface!