GUIDE
- Left-click and drag the background to move the graph
- Left-click and drag the nodes to reorganize
- Left-click a node to view first level connections
- Double left-click a node to navigate to its page
- Double left-click the background to zoom in
- Right-click the background to zoom out
sigma.utils.pkg('sigma.canvas.nodes');
sigma.canvas.nodes.image = (function() {
var _cache = {},
_loading = {},
_callbacks = {};
// Return the renderer itself:
var renderer = function(node, context, settings) {
var args = arguments,
prefix = settings('prefix') || '',
size = node[prefix + 'size'],
color = node.color || settings('defaultNodeColor'),
url = node.url;
if (_cache[url]) {
context.save();
// Draw the clipping disc:
context.beginPath();
context.arc(
node[prefix + 'x'],
node[prefix + 'y'],
node[prefix + 'size'],
0,
Math.PI * 2,
true
);
context.closePath();
context.clip();
// Draw the image
context.drawImage(
_cache[url],
node[prefix + 'x'] - size,
node[prefix + 'y'] - size,
2 * size,
2 * size
);
// Quit the "clipping mode":
context.restore();
// Draw the border:
context.beginPath();
context.arc(
node[prefix + 'x'],
node[prefix + 'y'],
node[prefix + 'size'],
0,
Math.PI * 2,
true
);
context.lineWidth = 1;
context.strokeStyle = node.color || settings('defaultNodeColor');
context.stroke();
} else {
sigma.canvas.nodes.image.cache(url);
sigma.canvas.nodes.def.apply(
sigma.canvas.nodes,
args
);
}
};
// Let's add a public method to cache images, to make it possible to
// preload images before the initial rendering:
renderer.cache = function(url, callback) {
if (callback)
_callbacks[url] = callback;
if (_loading[url])
return;
var img = new Image();
img.onload = function() {
_loading[url] = false;
_cache[url] = img;
if (_callbacks[url]) {
_callbacks[url].call(this, img);
delete _callbacks[url];
}
};
_loading[url] = true;
img.src = url;
};
return renderer;
})();
var i,
s,
o,
offset_left = 0.5,
N = 1,
E = 40,
C = 5,
d = 0.5,
cs = [],
g = {
nodes: [],
edges: []
};
if (!sigma.classes.graph.hasMethod('neighbors')){
sigma.classes.graph.addMethod('neighbors', function(nodeId) {
var k,
neighbors = {},
index = this.allNeighborsIndex[nodeId] || {};
for (k in index)
neighbors[k] = this.nodesIndex[k];
return neighbors;
});
}
//adding the central node
g.nodes.push({
id: 251939,
label: 'Anne Karik',
type: 'image',
url: '',
x: 0,
y: 0,
size: 30,
color: '#DDDDDD'
});
var biggest_node_size = 0;
N=4
// adding node
var x_node = Math.cos(2 * 0 * Math.PI / N) * 10;
var y_node = Math.sin(2 * 0 * Math.PI / N) * 10;
g.nodes.push({
id: 225385,
label: 'TEAM: Interactions Microbiote-Hôte',
x: x_node,
y: y_node,
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/06/research_pasteur-research-pasteur-bandeau-g5-b-chassaing-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/team/microbiome-host-interactions/',
size: 35,
color: '#DDDDDD'
});
//link content to central post
g.edges.push({
id: 251939225385,
size: 0.5,
source: 251939,
target: 225385,
});
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 113642,
label: 'Caroline Binet',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2018/10/research_pasteur-njkyody3-2-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/caroline-binet/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385113642,
size: 0.5,
source: 225385,
target: 113642 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 227124,
label: 'Maeva Duquesnoy',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/06/research_pasteur-enmaeva-duquesnoyfrmaeva-duquesnoy-pic-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/maeva-duquesnoy/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385227124,
size: 0.5,
source: 225385,
target: 227124 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 227130,
label: 'Héloïse Rytter',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/06/research_pasteur-enheloise-rytterfrheloise-rytter-img-7668-e1725566476550-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/heloise-rytter/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385227130,
size: 0.5,
source: 225385,
target: 227130 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 231949,
label: 'Quentin Lamy-Besnier',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/10/research_pasteur-abp-dynphages-lamy-besnier-quentin-abp-dynphages-lamy-besnier-quentin-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/quentin-lamy-besnier/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385231949,
size: 0.5,
source: 225385,
target: 231949 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 234022,
label: 'Kenza Mourji',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/11/research_pasteur-enkenza-mourji-kenza-mourji-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/kenza-mourji/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385234022,
size: 0.5,
source: 225385,
target: 234022 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 192136,
label: 'Eva Chatonnat',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2022/12/research_pasteur-eva-chatonnat-unknown-1-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/eva-chatonnat/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385192136,
size: 0.5,
source: 225385,
target: 192136 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 75885,
label: 'Delphine Cussigh',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2016/09/research.pasteur.fr_p1000480-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/delphine-cussigh/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 22538575885,
size: 0.5,
source: 225385,
target: 75885 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 246165,
label: 'Thaís Vilela Rodrigues',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/07/research_pasteur-thais-vilela-rodrigues-img-1482-e1753352593637-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/thais-vilela/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385246165,
size: 0.5,
source: 225385,
target: 246165 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 251939) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 225385251939,
size: 0.5,
source: 225385,
target: 251939 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 225382,
label: 'Benoit Chassaing',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/04/research_pasteur-enbenoit-chassaingfrbenoit-chassaing-picture-1-copy-3-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/benoit-chassaing/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 225385225382,
size: 0.5,
source: 225385,
target: 225382 });
// adding node
var x_node = Math.cos(2 * 1 * Math.PI / N) * 10;
var y_node = Math.sin(2 * 1 * Math.PI / N) * 10;
g.nodes.push({
id: 197658,
label: 'NRC: Entérovirus et parechovirus',
x: x_node,
y: y_node,
type: 'image',
url: '',
page_url: 'https://research.pasteur.fr/fr/nrc/enterovirus-and-parechovirus/',
size: 35,
color: '#DDDDDD'
});
//link content to central post
g.edges.push({
id: 251939197658,
size: 0.5,
source: 251939,
target: 197658,
});
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 113642) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 197658113642,
size: 0.5,
source: 197658,
target: 113642 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 86658,
label: 'Charlotte BALIERE',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2019/08/research_pasteur-img_20190813_105124-1-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/charlotte-baliere/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 19765886658,
size: 0.5,
source: 197658,
target: 86658 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 251939) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 197658251939,
size: 0.5,
source: 197658,
target: 251939 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 69277,
label: 'Maël Bessaud',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2016/05/research_pasteur-mael-bessaud-bessaud-mael--150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/mael-bessaud/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 19765869277,
size: 0.5,
source: 197658,
target: 69277 });
// adding node
var x_node = Math.cos(2 * 2 * Math.PI / N) * 10;
var y_node = Math.sin(2 * 2 * Math.PI / N) * 10;
g.nodes.push({
id: 65444,
label: 'TEAM: Signalisation antivirale',
x: x_node,
y: y_node,
type: 'image',
url: '',
page_url: 'https://research.pasteur.fr/fr/team/virus-sensing-and-signaling/',
size: 35,
color: '#DDDDDD'
});
//link content to central post
g.edges.push({
id: 25193965444,
size: 0.5,
source: 251939,
target: 65444,
});
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 4894,
label: 'Maxime Chazal',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2016/02/research.pasteur.fr_photo-pasteur-website-3-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/maxime-chazal/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 654444894,
size: 0.5,
source: 65444,
target: 4894 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 64902,
label: 'Ségolène Gracias',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2016/02/research.pasteur.fr_dsc_0304-e1455644622736-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/segolene-gracias/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 6544464902,
size: 0.5,
source: 65444,
target: 64902 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 4959,
label: 'Vincent Caval',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2015/05/research_pasteur-vincent-caval-img-6316-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/vincent-caval/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 654444959,
size: 0.5,
source: 65444,
target: 4959 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 69277) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 6544469277,
size: 0.5,
source: 65444,
target: 69277 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 192367,
label: 'Typhaine Filhol',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2022/12/research_pasteur-typhaine-filhol-1696405874696-scaled-e1704443412654-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/typhaine-filhol/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444192367,
size: 0.5,
source: 65444,
target: 192367 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 231657,
label: 'Samuel DONAIRE-CARPIO',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/10/research_pasteur-ensamuel-donaire-carpiofrsamuel-donaire-carpio-photo-samuel-donaire-carpio-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/samuel-donaire-carpio/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444231657,
size: 0.5,
source: 65444,
target: 231657 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 232830,
label: 'Chloé Delon',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/10/research_pasteur-enchloe-delonfrchloe-delon-img-3360-1-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/232830/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444232830,
size: 0.5,
source: 65444,
target: 232830 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 86658) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 6544486658,
size: 0.5,
source: 65444,
target: 86658 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 233577,
label: 'Corentin Aubé',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/11/research_pasteur-encorentin-aubefrcorentin-aube-whatsapp-image-2024-12-03-at-15.16.15-e1740062836226-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/233577/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444233577,
size: 0.5,
source: 65444,
target: 233577 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 240361,
label: 'LE SEAC H Elodie',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/06/research_pasteur-71df32b2-567c-4b75-8ec8-6e360dd4a00b-71df32b2-567c-4b75-8ec8-6e360dd4a00b-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/le-seac-h-elodie/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444240361,
size: 0.5,
source: 65444,
target: 240361 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 242641,
label: 'Hanna JUHOOR',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/04/research_pasteur-hanna-juhoor-img-4562-1-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/hanna-juhoor/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444242641,
size: 0.5,
source: 65444,
target: 242641 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 242973,
label: 'Justine Maubrou',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/04/research_pasteur-justine-maubrou-profil-pasteur-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/justine-maubrou/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444242973,
size: 0.5,
source: 65444,
target: 242973 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 246403,
label: 'Léa VENDRAMINI',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/07/research_pasteur-lea-vendramini-capture-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/lea-vendramini/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444246403,
size: 0.5,
source: 65444,
target: 246403 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 248791,
label: 'Julie DELAROCHE',
type: 'image',
url: '',
page_url: 'https://research.pasteur.fr/fr/member/julie-delaroche/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444248791,
size: 0.5,
source: 65444,
target: 248791 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 248801,
label: 'Aïssatou Aïcha SOW',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/09/research_pasteur-aissatou-aicha-sow-img-3820-2-e1757195212579-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/aissatou-aicha-sow/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444248801,
size: 0.5,
source: 65444,
target: 248801 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 249043,
label: 'Sacha Frick',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/09/research_pasteur-sacha-frick-sacha-frick-ppu-interviewee-photo-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/sacha-frick/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 65444249043,
size: 0.5,
source: 65444,
target: 249043 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 251939) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 65444251939,
size: 0.5,
source: 65444,
target: 251939 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 4880,
label: 'Nolwenn Jouvenet',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2015/09/research.pasteur.fr_nolwenn-150x150.png',
page_url: 'https://research.pasteur.fr/fr/member/nolwenn-jouvenet/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 654444880,
size: 0.5,
source: 65444,
target: 4880 });
// adding node
var x_node = Math.cos(2 * 3 * Math.PI / N) * 10;
var y_node = Math.sin(2 * 3 * Math.PI / N) * 10;
g.nodes.push({
id: 24264,
label: 'TEAM: Biologie Evolutive de la Cellule Microbienne',
x: x_node,
y: y_node,
type: 'image',
url: '',
page_url: 'https://research.pasteur.fr/fr/team/evolutionary-biology-of-the-microbial-cell/',
size: 35,
color: '#DDDDDD'
});
//link content to central post
g.edges.push({
id: 25193924264,
size: 0.5,
source: 251939,
target: 24264,
});
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 57997,
label: 'Guillaume Borrel',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2015/11/research.pasteur.fr_photo-guillaume-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/guillaume-borrel/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 2426457997,
size: 0.5,
source: 24264,
target: 57997 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 90107,
label: 'Najwa Taib',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2017/05/research_pasteur-photo_ntaib-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/najwa-taib/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 2426490107,
size: 0.5,
source: 24264,
target: 90107 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 102806,
label: 'Jerzy Witwinowski',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2018/02/research_pasteur-jw3-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/jerzy-witwinowski/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264102806,
size: 0.5,
source: 24264,
target: 102806 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 113642) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 24264113642,
size: 0.5,
source: 24264,
target: 113642 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 148650,
label: 'Basile Beaud',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2020/10/research_pasteur-8a951152-5fa0-4920-99f6-30c8a2ec3081-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/fr-basile-beaud/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264148650,
size: 0.5,
source: 24264,
target: 148650 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 168402,
label: 'Camille Martin-Gallausiaux',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2021/10/research_pasteur-camille-martin-gallausiaux-photo-camille-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/camille-martin-gallausiaux/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264168402,
size: 0.5,
source: 24264,
target: 168402 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 188060,
label: 'Anna Kurowska',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2022/10/research_pasteur-anna-kurowska-img-0644-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/anna-kurowska/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264188060,
size: 0.5,
source: 24264,
target: 188060 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 121115,
label: 'Soufyan Fakroun',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2020/02/research_pasteur-img_20200204_080426_01-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/soufyan-fakroun/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264121115,
size: 0.5,
source: 24264,
target: 121115 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 196215,
label: 'Romain Villa',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2023/02/research_pasteur-romain-villa-img-20220605-wa0005-e1675352679136-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/romain-villa/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264196215,
size: 0.5,
source: 24264,
target: 196215 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 224418,
label: 'Valentin Tetaud',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/04/research_pasteur-unknown-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/valentin-tetaud/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264224418,
size: 0.5,
source: 24264,
target: 224418 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 224714,
label: 'Brittany Baker',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2024/04/research_pasteur-enbrittany-baker-img-3840-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/brittany-baker/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264224714,
size: 0.5,
source: 24264,
target: 224714 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 241198,
label: 'Julie Mathieu',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/03/research_pasteur-auto-draft-img-20250326-102246-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/julie-mathieu/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264241198,
size: 0.5,
source: 24264,
target: 241198 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 243204,
label: 'Emma Bruder',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/05/research_pasteur-emma-bruder-emma-bruder-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/emma-bruder/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264243204,
size: 0.5,
source: 24264,
target: 243204 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 250143,
label: 'Kathryn Appler',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/09/research_pasteur-whatsapp-image-2025-09-23-at-19.59.26-whatsapp-image-2025-09-23-at-19.59.26-150x150.jpeg',
page_url: 'https://research.pasteur.fr/fr/member/250143/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264250143,
size: 0.5,
source: 24264,
target: 250143 });
//check if content already exist
// update node size depending on the amount of edges
g.nodes.forEach(function(n) {
if (n.id == 251939) {
n.size = n.size + 8;
}
});
//link to content
g.edges.push({
id: 24264251939,
size: 0.5,
source: 24264,
target: 251939 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 252026,
label: 'Charlotte Bunch',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2025/10/research_pasteur-charlotte-bunch-research-pasteur-charlotte-bunch-photo-cb-150x150.jpg',
page_url: 'https://research.pasteur.fr/fr/member/charlotte-bunch/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 24264252026,
size: 0.5,
source: 24264,
target: 252026 });
//check if content already exist
if (x_node<0){
x_site = x_node + ((Math.random() * 2)-1) - offset_left;
}else{
x_site = x_node + ((Math.random() * 2)-1) + offset_left;
}
if (y_node<0){
y_site = y_node + ((Math.random() * 2)-1) - offset_left;
}else{
y_site = y_node + ((Math.random() * 2)-1) + offset_left;
}
// adding site
g.nodes.push({
id: 4286,
label: 'Simonetta Gribaldo',
type: 'image',
url: 'https://research.pasteur.fr/wp-content/uploads/2017/10/research_pasteur-photo-simo2-150x150.png',
page_url: 'https://research.pasteur.fr/fr/member/simonetta-gribaldo/',
x: x_site,
y: y_site,
size: 10,
color: '#dddddd'
});
//link to content
g.edges.push({
id: 242644286,
size: 0.5,
source: 24264,
target: 4286 });
var s = new sigma({
//container: document.getElementById('graph-main'),
graph: g,
renderer: {
// IMPORTANT:
// This works only with the canvas renderer, so the
// renderer type set as "canvas" is necessary here.
container: document.getElementById('graph-main'),
type: 'canvas'
},
settings: {
minNodeSize: 6,
maxNodeSize: 35,
mouseWheelEnabled: false,
font: 'Montserrat',
labelThreshold:25,
borderSize:1,
defaultNodeBorderColor: '#999',
sideMargin:25,
}
});
// We first need to save the original colors of our
// nodes and edges, like this:
s.graph.nodes().forEach(function(n) {
n.originalColor = n.color;
});
s.graph.edges().forEach(function(e) {
e.originalColor = e.color;
});
// When a node is clicked, we check for each node
// if it is a neighbor of the clicked one. If not,
// we set its color as grey, and else, it takes its
// original color.
// We do the same for the edges, and we only keep
// edges that have both extremities colored.
s.bind('clickNode', function(e) {
var nodeId = e.data.node.id,
toKeep = s.graph.neighbors(nodeId);
toKeep[nodeId] = e.data.node;
s.graph.nodes().forEach(function(n) {
if (toKeep[n.id])
n.color = '#35a9f5';
else
n.color = '#dddddd';
});
s.graph.edges().forEach(function(e) {
if (toKeep[e.source] && toKeep[e.target])
e.color = '#35a9f5';
else
e.color = '#dddddd';
});
// Since the data has been modified, we need to
// call the refresh method to make the colors
// update effective.
s.refresh();
});
// When the stage is clicked, we just color each
// node and edge with its original color.
s.bind('clickStage', function(e) {
s.graph.nodes().forEach(function(n) {
n.color = n.originalColor;
});
s.graph.edges().forEach(function(e) {
e.color = e.originalColor;
});
// Same as in the previous event:
s.refresh();
});
s.bind("doubleClickNode", function (e) {
$("#canvas-wrap, .sigma-scene, .sigma-mouse").val();
ajax_load_page( e.data.node.page_url );
});
var c = s.camera;
s.bind("rightClickStage", function (e) {
sigma.misc.animation.camera(c, {
ratio: c.ratio * c.settings('zoomingRatio')
}, {
duration: 200
});
});
// Configure the noverlap layout:
var noverlapListener = s.configNoverlap({
nodeMargin: 10,
scaleNodes: 0.3,
gridSize: 1,
easing: 'quadraticInOut', // animation transition function
duration: 4000 // animation duration. Long here for the purposes of this example only
});
// Bind the events:
noverlapListener.bind('start stop interpolate', function(e) {
//console.log(e.type);
if(e.type === 'start') {
//console.time('noverlap');
}
if(e.type === 'interpolate') {
//console.timeEnd('noverlap');
}
});
// Start the layout:
s.startNoverlap();
//s.refresh();
// Initialize the dragNodes plugin:
var dragListener = sigma.plugins.dragNodes(s, s.renderers[0]);
dragListener.bind('startdrag', function(event) {
});
dragListener.bind('drag', function(event) {
});
dragListener.bind('drop', function(event) {
});
dragListener.bind('dragend', function(event) {
});