Manual.txt 6.7 KB
Newer Older
1 2 3 4 5 6 7 8
Vidjil browser - Developer manual


///////////////////////////////////////////////////////////////////////////////////////
Class Model

    I Contenu

9 10
      la class 'model' contient toute les données chargées des fichiers 'data' et 'analysis'
      et stock/genere un bon nombre de meta-données utile pour toute 'view'
11 12 13 14

	-windows
	  -liste des fenêtres 
	-germline
15
	  -liste des gènes + nombre d'allèles
16
	-clones
17 18 19
	  -liste des clones, un clone est basiquement un ensemble de fenêtres 
	  -il existe autant de clones que de fenêtres et, par défaut, chaque clone
	  est un ensemble d'une fenêtre    clone[1]=[windows[1]] ...
20
	  -une fenêtre ne peut se trouver que dans un seul clone a la fois
21
	  -un clone vide est considéré comme inactif (non-affiché)
22
	  -la taille d'un clone correspond a la somme des tailles de ses fenêtres
23
	  -la fenetre representative de clone[x] est toujours windows[x] 
24 25 26 27 28
	-view
	  -la liste des vues associées
	-t et r
	  -le point de suivi actuel et le ratio utilisé (normalization)
	  -chaque window/clone possede une taille différente suivant le point de suivi
29
	   et le ratio utilisé, ces valeurs sont utilisées par defaut pour les calculs
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
	-f
	  -le clone actuellement en focus
	

    II fonction de chargement/sauvegarde

	-load (data, analysis, limit)
	-loadGermline()
	-initClones()
	-loadAnalysis(analysis)
	-saveAnalysis()
	-resetAnalysis()
	
    III manipulation du Model

	-changeName(cloneID, new_name)
	-getName(cloneID)
	-getCode(cloneID)
	-getSize(cloneID)
	-changeRatio(new_r)
	-changeTime(new_t)
	-focusIn(cloneID)
	-focusOut()

    IV selection
	permet de placer/retirer le status select sur un/plusieurs clones

	-select(cloneID)
	-unselect(cloneID)
	-unselectAll()
	-getSelected()

    V merge/split
    
	-merge()
	    merge all clones currently in the selection into one
	      
	      exemple:
	      
	      1/getSelected()
		  selection = 1, 2, 5, 8,
	      
	      2/l'état des clones au départ
		  clones[1]=[windows[1]]
		  clones[2]=[windows[2]]	
		  clones[5]=[windows[5]]	
		  clones[8]=[windows[8]]

	      3/merge() création d'un nouvel ensemble de fenetre
		  [windows[1],windows[2],windows[5],windows[8]]
	      
	      4/attribution du nouvel ensemble au clone ayant le meilleur top
		  clones[1]=[windows[1],windows[2],windows[5],windows[8]]
		  clones[2]=[]->inactif
		  clones[5]=[]->inactif	
		  clones[8]=[]->inactif
	    
	-split(cloneID, windowID)
	      exemple:
	      
	      1/
		  clones[1]=[windows[1],windows[2],windows[5],windows[8]]
		  clones[5]=[]->inactif	
	      
	      2/
		  split(1,5)
	      
	      3/
		  clones[1]=[windows[1],windows[2],windows[8]]
		  clones[5]=[windows[5]]
		
    VI manipulation des views
    
      	-init()
	-update()
	-updateElem(list)
	-resize()
	    
///////////////////////////////////////////////////////////////////////////////////////
  Views

    I Contenu commun a toutes les vues
    
	-id 
	  l'identifiant de l'element HTML contenant la vue
	-m
	  le model associé a la vue
	  
    II fonctions communes a toutes les vues
    
        -init()
	-update()
	-updateElem(list)
	-resize()
    
///////////////////////////////////////////////////////////////////////////////////////
  Class Graph
    
    I Contenu spécifique a la vue graph
    
      resizeW=1;		coef d'agrandissement largeur	
      resizeH=1;		coef d'agrandissement hauteur
      w=1400;			largeur graph avant resize
      h=450;			hauteur graph avant resize
      marge1=50;		marge droite bord du graph/premiere colonne
      marge2=50;		marge gauche derniere colonne/bord du graph
      marge4=75;		marge droite/gauche (non influencé par le resize)
      marge5=25;		marge top (non influencé par le resize)
      
    II fonctions spécifiques a la vue graph
    
      -drawElem(list)		retrace la liste de clone passé en parametre
      -draw()			retrace le graph ( clones + axis + legendes)
      -constructPathR(res)	calcul un tracé pour une résolution
      -constructPath(cloneID)	calcul un tracé pour un clone
      
/////////////////////////////////////////////////////////////////////////////////////
  Class ScatterPlot
    
    I Contenu spécifique a la vue scatterPlot
	
      resizeCoef=1;		coef d'agrandissement a appliquer aux rayons des elements
      resizeW=1;		coef d'agrandissement largeur
      resizeH=1;		coef d'agrandissement hauteur
      w=1400;			largeur avant resize
      h=700;			hauteur avant resize
156 157 158 159 160 161 162
      marge_left=120;		marge à gauche initiale
      marge_top=45;		marche à droite initiale
      max_precision=9;		precision max atteignable 
      positionGene={};		positions des gènes
      positionUsedGene={}       positions des gènes que l'on utilise actuellement
      positionAllele={};	positions des allèles
      positionUsedAllele={}     positions des allèles que l'on utilise actuellement
163
      grid[]			les grilles de répartition disponibles
164
      /!!splitMethod="gene";	NOTHING (méthode de répartition actuelle (defaut: gene))
165 166 167 168 169
    
    II fonctions spécifiques a la vue graph
    
      a/ fonction de manipulation
      
170 171 172 173 174
      -initGridModel()		Précalcul les grilles de répartition du ScatterPlot	
      /!!-getRadius(cloneID) 	NOTHING
      /!!-updateStyle()		NOTHING	
      -initGrid()		Initialisation de la grille en fonction du 'model' dans this.splitX/Y		
      -changeSplitMethod(X, Y)  Changement de la séparation de la vue graph en fonction des méthodes de répartition données dans l'axe des abcisses/ordonnées
175 176 177 178
      
      b/ fonction d'animation
      
      -tick()				retrace une image
179
      -move()				déplace les nodes (en fonction de la méthode de répartition des points)
180
      -updateRadius()			modifie la taille des rayons de chaque nodes
181
      -debugNaN()			repositionne les nodes ayant des positions impossibles à afficher
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
      -collide()			résolution des collisions

    
/////////////////////////////////////////////////////////////////////////////////////
  Class List
    
    I Contenu spécifique a la vue List
    
    II fonctions spécifiques a la vue List
    
      -div_elem
      -div_cluster
      -edit_name

//////////////////////////////////////////////////////////////////////////////////////

les noms par defaut dans vidjil

Model			m
ScatterPlot		sp
Graph			graph
List			list
Segmenter		segment

quelques exemples: 
pour accéder aux objets depuis une console javascript 
(avec chrome/chromium pour un résultat plus lisible)

m				: retourne le contenu du model
m.__proto__			: retourne la liste des methodes disponibles pour le model
m.windows			: retourne la liste des fenetres
m.clones[15]			: retourne le clone n°15

graph.update()			: met a jour le graphique
graph.update			: retourne le code de la fonction upate() de l'objet graph
217
sp.changeSplitMethod("gene", ?)	: active la répartition par gene sur le scatterplot
218 219

etc ...