Skip to content
Snippets Groups Projects
Commit a8528a9c authored by Julian Matschinske's avatar Julian Matschinske
Browse files

Merge branch 'enable-protein-selection-in-analysis-window' into 'master'

Enable protein selection in analysis window

See merge request covid-19/frontend!37
parents c625ad7f c2b02a78
No related branches found
No related tags found
No related merge requests found
......@@ -39,6 +39,10 @@ export class AnalysisService {
}
}
resetSelection() {
this.selectedProteins = new Map<string, Protein>();
}
inSelection(protein: Protein): boolean {
return this.selectedProteins.has(protein.proteinAc);
}
......
import {Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';
import {
Component,
ElementRef,
EventEmitter,
Input,
OnChanges,
OnInit,
Output,
SimpleChanges,
ViewChild
} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {environment} from '../../../environments/environment';
import {AnalysisService} from '../../analysis.service';
import {Task} from '../../interfaces';
import {Protein, Task} from '../../interfaces';
declare var vis: any;
......@@ -24,6 +34,7 @@ export class AnalysisWindowComponent implements OnInit, OnChanges {
private nodeData: { nodes: any, edges: any } = {nodes: null, edges: null};
private drugNodes = [];
private showDrugs = false;
private result: any;
constructor(private http: HttpClient, private analysis: AnalysisService) {
}
......@@ -41,8 +52,9 @@ export class AnalysisWindowComponent implements OnInit, OnChanges {
if (this.task && this.task.info.done) {
const result = await this.http.get<any>(`${environment.backend}result/?token=${this.token}`).toPromise();
this.result = result;
this.networkEl.nativeElement.innerHTML = '';
this.network = null;
this.network = null;
this.nodeData = {nodes: null, edges: null};
this.createNetwork(result);
}
......@@ -79,12 +91,80 @@ export class AnalysisWindowComponent implements OnInit, OnChanges {
};
this.network = new vis.Network(container, this.nodeData, options);
this.network.on('select', (properties) => {
const id: Array<string> = properties.nodes;
if (id.length > 0) {
if (id[0].startsWith('p_')) {
const protein = this.getProtein(id[0].substr(2));
if (properties.event.srcEvent.ctrlKey) {
if (this.inSelection(protein.proteinAc) === true) {
this.removeFromSelection(protein.proteinAc);
} else {
this.addToSelection(protein.proteinAc);
this.analysis.getCount();
}
}
}
}
});
this.network.on('select', () => {
// TODO
this.analysis.subscribe((protein, selected) => {
const nodeId = `p_${protein.proteinAc}`;
const node = this.nodeData.nodes.get(nodeId);
if (!node) {
return;
}
const pos = this.network.getPositions([nodeId]);
node.x = pos[nodeId].x;
node.y = pos[nodeId].y;
if (selected) {
node.color = '#c42eff';
this.nodeData.nodes.update(node);
} else {
node.color = '#e2b600';
this.nodeData.nodes.update(node);
}
});
}
inSelection(proteinAc: string): boolean {
if (!this.result.proteins || !proteinAc) {
return false;
}
const protein = this.getProtein(proteinAc);
if (!protein) {
return false;
}
return this.analysis.inSelection(protein);
}
addToSelection(proteinAc: string) {
if (!this.result.proteins || !proteinAc) {
return false;
}
const protein = this.getProtein(proteinAc);
if (!protein) {
return false;
}
this.analysis.addProtein(protein);
}
removeFromSelection(proteinAc: string) {
if (!this.result.proteins || !proteinAc) {
return false;
}
const protein = this.getProtein(proteinAc);
if (!protein) {
return false;
}
this.analysis.removeProtein(protein);
}
public getProtein(ac: string): Protein | undefined {
return this.result.proteins.find((p) => p.proteinAc === ac);
}
private mapProteinToNode(protein: any): any {
let color = '#e2b600';
if (this.analysis.inSelection(protein)) {
......
......@@ -13,7 +13,7 @@ export class ProteinNetwork {
public async loadPositions(http: HttpClient, dataset: Array<[string, string]>) {
const nodePositions = await http.get(`assets/positions/${getDatasetFilename(dataset)}`).toPromise();
this.proteins.forEach((node) => {
const nodePosition = nodePositions[`pg_${node.proteinAc}`];
const nodePosition = nodePositions[`p_${node.proteinAc}`];
if (nodePosition) {
node.x = nodePosition.x;
node.y = nodePosition.y;
......
......@@ -185,10 +185,26 @@
</header>
<div class="card-content">
<button class="button is-success" *ngIf="!inSelection(currentProteinAc)"
(click)="addToSelection(currentProteinAc)">Add to Analysis
(click)="addToSelection(currentProteinAc)">
<span>
<span class="icon">
<i class="fa fa-plus"></i>
</span>
<span>
Add to Analysis
</span>
</span>
</button>
<button class="button is-danger" *ngIf="inSelection(currentProteinAc)"
(click)="removeFromSelection(currentProteinAc)">Remove from Analysis
(click)="removeFromSelection(currentProteinAc)">
<span>
<span class="icon">
<i class="fa fa-minus"></i>
</span>
<span>
Remove from Analysis
</span>
</span>
</button>
<p></p>
<button (click)="showAnalysisDialog = true"
......@@ -247,6 +263,12 @@
</tr>
</tbody>
</table>
<footer class="card-footer">
<button [disabled]="analysis.getSelection().length < 1" (click)="analysis.resetSelection();"
class="card-footer-item button is-danger">
Reset
</button>
</footer>
</div>
</div>
......
......@@ -97,7 +97,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
});
this.analysis.subscribe((protein, selected) => {
const nodeId = `pg_${protein.proteinAc}`;
const nodeId = `p_${protein.proteinAc}`;
const node = this.nodeData.nodes.get(nodeId);
if (!node) {
return;
......@@ -106,15 +106,11 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
node.x = pos[nodeId].x;
node.y = pos[nodeId].y;
if (selected) {
if (node) {
node.color = '#c42eff';
this.nodeData.nodes.update(node);
}
node.color = '#48C774';
this.nodeData.nodes.update(node);
} else {
if (node) {
node.color = '#e2b600';
this.nodeData.nodes.update(node);
}
node.color = '#e2b600';
this.nodeData.nodes.update(node);
}
});
}
......@@ -165,7 +161,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
public async openSummary(protein: Protein, zoom: boolean) {
await this.router.navigate(['explorer'], {queryParams: {protein: protein.proteinAc}});
if (zoom) {
this.zoomToNode(`pg_${protein.proteinAc}`);
this.zoomToNode(`p_${protein.proteinAc}`);
}
}
......@@ -222,8 +218,8 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
this.network.on('select', (properties) => {
const id: Array<string> = properties.nodes;
if (id.length > 0) {
if (id[0].startsWith('pg_')) {
const protein = this.proteinData.getProtein(id[0].substr(3));
if (id[0].startsWith('p_')) {
const protein = this.proteinData.getProtein(id[0].substr(2));
this.openSummary(protein, false);
if (properties.event.srcEvent.ctrlKey) {
if (this.inSelection(protein.proteinAc) === true) {
......@@ -250,7 +246,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
}
if (this.currentProteinAc) {
this.zoomToNode(`pg_${this.currentProteinAc}`);
this.zoomToNode(`p_${this.currentProteinAc}`);
}
this.queryItems = [];
......@@ -315,7 +311,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
});
const filteredProteins = [];
for (const protein of this.proteinData.proteins) {
const nodeId = `pg_${protein.proteinAc}`;
const nodeId = `p_${protein.proteinAc}`;
const contains = connectedProteinAcs.has(protein.proteinAc);
const found = visibleIds.has(nodeId);
if (contains) {
......@@ -361,10 +357,10 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
private mapProteinToNode(protein: Protein): any {
let color = '#e2b600';
if (this.analysis.inSelection(protein)) {
color = '#c42eff';
color = '#48C774';
}
return {
id: `pg_${protein.proteinAc}`,
id: `p_${protein.proteinAc}`,
label: `${protein.proteinAc}`,
size: 10, font: '5px', color, shape: 'ellipse', shadow: false,
x: protein.x,
......@@ -384,7 +380,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
private mapEdge(edge: ProteinViralInteraction): any {
return {
from: `pg_${edge.proteinAc}`,
from: `p_${edge.proteinAc}`,
to: `eff_${edge.effectName}_${edge.virusName}_${edge.datasetName}`,
color: {color: '#afafaf', highlight: '#854141'},
};
......
This diff is collapsed.
{"pg_P27105":{"x":-13,"y":191},"pg_Q8WUY8":{"x":-168,"y":-11},"pg_Q7Z2K6":{"x":87,"y":103},"pg_Q8IXI1":{"x":-66,"y":-140},"pg_O43761":{"x":-197,"y":75},"pg_Q92947":{"x":42,"y":187},"pg_Q96AG3":{"x":90,"y":46},"pg_P56589":{"x":-96,"y":-90},"pg_Q92508":{"x":79,"y":-158},"pg_Q12913":{"x":-81,"y":74},"pg_Q9BRQ6":{"x":169,"y":-128},"pg_P53985":{"x":-152,"y":-85},"pg_A2RRP1":{"x":115,"y":-1},"pg_O15228":{"x":159,"y":-28},"pg_Q96SK2":{"x":47,"y":138},"pg_Q9BVG9":{"x":-133,"y":-184},"pg_Q8IWB1":{"x":149,"y":-80},"pg_O75911":{"x":17,"y":-220},"pg_O15287":{"x":-211,"y":18},"pg_Q9NWW5":{"x":128,"y":-172},"pg_O96008":{"x":-156,"y":49},"pg_Q9Y6C9":{"x":143,"y":128},"pg_Q8IVQ6":{"x":113,"y":-118},"pg_Q12846":{"x":201,"y":4},"pg_O96005":{"x":30,"y":-171},"pg_Q9UNL2":{"x":-26,"y":-176},"pg_P43304":{"x":103,"y":-57},"pg_P30837":{"x":-211,"y":-39},"pg_P36404":{"x":-201,"y":-91},"pg_P12235":{"x":-31,"y":103},"pg_P50336":{"x":158,"y":30},"pg_Q9BTU6":{"x":76,"y":-209},"pg_Q8TBP6":{"x":-119,"y":157},"pg_P11166":{"x":-65,"y":179},"pg_Q8N357":{"x":97,"y":158},"pg_Q9HDC9":{"x":-165,"y":124},"pg_Q9NR77":{"x":-127,"y":95},"pg_P03905":{"x":-117,"y":19},"pg_Q5VYK3":{"x":-130,"y":-40},"pg_Q7Z3C6":{"x":131,"y":76},"pg_Q9UHF1":{"x":-5,"y":143},"pg_Q13501":{"x":59,"y":-109},"pg_Q6NUQ1":{"x":-2,"y":-130},"pg_O43156":{"x":-118,"y":-136},"pg_Q6PIU2":{"x":-75,"y":130},"pg_Q3SXM5":{"x":198,"y":-64},"pg_Q96B77":{"x":31,"y":88},"pg_A6NNL5":{"x":-172,"y":-138},"pg_P00846":{"x":-40,"y":-224},"pg_P04181":{"x":182,"y":76},"pg_Q9NUQ2":{"x":-85,"y":-195},"eff_ORF3_HCoV_TUM":{"x":-8,"y":-16}}
{"p_P27105":{"x":-13,"y":191},"p_Q8WUY8":{"x":-168,"y":-11},"p_Q7Z2K6":{"x":87,"y":103},"p_Q8IXI1":{"x":-66,"y":-140},"p_O43761":{"x":-197,"y":75},"p_Q92947":{"x":42,"y":187},"p_Q96AG3":{"x":90,"y":46},"p_P56589":{"x":-96,"y":-90},"p_Q92508":{"x":79,"y":-158},"p_Q12913":{"x":-81,"y":74},"p_Q9BRQ6":{"x":169,"y":-128},"p_P53985":{"x":-152,"y":-85},"p_A2RRP1":{"x":115,"y":-1},"p_O15228":{"x":159,"y":-28},"p_Q96SK2":{"x":47,"y":138},"p_Q9BVG9":{"x":-133,"y":-184},"p_Q8IWB1":{"x":149,"y":-80},"p_O75911":{"x":17,"y":-220},"p_O15287":{"x":-211,"y":18},"p_Q9NWW5":{"x":128,"y":-172},"p_O96008":{"x":-156,"y":49},"p_Q9Y6C9":{"x":143,"y":128},"p_Q8IVQ6":{"x":113,"y":-118},"p_Q12846":{"x":201,"y":4},"p_O96005":{"x":30,"y":-171},"p_Q9UNL2":{"x":-26,"y":-176},"p_P43304":{"x":103,"y":-57},"p_P30837":{"x":-211,"y":-39},"p_P36404":{"x":-201,"y":-91},"p_P12235":{"x":-31,"y":103},"p_P50336":{"x":158,"y":30},"p_Q9BTU6":{"x":76,"y":-209},"p_Q8TBP6":{"x":-119,"y":157},"p_P11166":{"x":-65,"y":179},"p_Q8N357":{"x":97,"y":158},"p_Q9HDC9":{"x":-165,"y":124},"p_Q9NR77":{"x":-127,"y":95},"p_P03905":{"x":-117,"y":19},"p_Q5VYK3":{"x":-130,"y":-40},"p_Q7Z3C6":{"x":131,"y":76},"p_Q9UHF1":{"x":-5,"y":143},"p_Q13501":{"x":59,"y":-109},"p_Q6NUQ1":{"x":-2,"y":-130},"p_O43156":{"x":-118,"y":-136},"p_Q6PIU2":{"x":-75,"y":130},"p_Q3SXM5":{"x":198,"y":-64},"p_Q96B77":{"x":31,"y":88},"p_A6NNL5":{"x":-172,"y":-138},"p_P00846":{"x":-40,"y":-224},"p_P04181":{"x":182,"y":76},"p_Q9NUQ2":{"x":-85,"y":-195},"eff_ORF3_HCoV_TUM":{"x":-8,"y":-16}}
{"pg_Q9UBR2":{"x":-578,"y":324},"pg_P50993":{"x":-339,"y":575},"pg_P55072":{"x":-498,"y":260},"pg_P17096":{"x":-242,"y":240},"pg_Q9BU76":{"x":-240,"y":306},"pg_P20700":{"x":-207,"y":477},"pg_Q08211":{"x":-475,"y":202},"pg_P60983":{"x":-495,"y":126},"pg_Q6UWE0":{"x":-403,"y":147},"pg_Q6IN84":{"x":-427,"y":190},"pg_Q9Y2U8":{"x":-536,"y":295},"pg_P30040":{"x":-253,"y":407},"pg_Q15059":{"x":-302,"y":161},"pg_Q02413":{"x":-284,"y":210},"pg_Q9NXG0":{"x":-353,"y":164},"pg_Q86V81":{"x":-187,"y":272},"pg_O00410":{"x":-533,"y":354},"pg_P63173":{"x":-241,"y":639},"pg_Q7L4I2":{"x":-190,"y":974},"pg_Q7Z417":{"x":-162,"y":924},"pg_P10515":{"x":-151,"y":543},"pg_A0A0A0MS14":{"x":-375,"y":658},"pg_Q9Y3A5":{"x":-285,"y":1024},"pg_Q8IWE2":{"x":-187,"y":814},"pg_P02790":{"x":-323,"y":647},"pg_Q9BTE6":{"x":-418,"y":950},"pg_Q6IE81":{"x":-478,"y":956},"pg_Q92922":{"x":-487,"y":752},"pg_P30050":{"x":-152,"y":862},"pg_P55060":{"x":-458,"y":801},"pg_Q12962":{"x":-344,"y":1033},"pg_Q15599":{"x":-235,"y":732},"pg_Q9Y3I0":{"x":-365,"y":951},"pg_P49368":{"x":-517,"y":804},"pg_Q7L3T8":{"x":-162,"y":753},"pg_Q9BRR8":{"x":-523,"y":859},"pg_Q9H0G5":{"x":-279,"y":957},"pg_Q9Y263":{"x":-468,"y":857},"pg_P28070":{"x":-237,"y":1001},"pg_Q9H7Z3":{"x":-229,"y":935},"pg_P07498":{"x":-442,"y":904},"pg_Q6PK04":{"x":-324,"y":983},"pg_O14497":{"x":-504,"y":911},"pg_P63241":{"x":-204,"y":884},"pg_Q04721":{"x":-441,"y":999},"pg_P19623":{"x":-428,"y":733},"pg_O75400":{"x":-389,"y":1007},"pg_Q5JTH9":{"x":-566,"y":233},"pg_Q14244":{"x":-488,"y":490},"pg_P26639":{"x":-367,"y":236},"pg_P62753":{"x":-196,"y":345},"pg_P26440":{"x":-543,"y":572},"pg_Q96NB3":{"x":-578,"y":516},"pg_O95395":{"x":-433,"y":565},"pg_P19525":{"x":-7,"y":438},"pg_P45973":{"x":-174,"y":387},"pg_Q02790":{"x":-496,"y":605},"pg_O75319":{"x":-203,"y":563},"pg_Q8N9Q2":{"x":-561,"y":409},"pg_Q9Y295":{"x":-442,"y":620},"pg_Q5SRI9":{"x":-429,"y":316},"pg_Q9P2N5":{"x":-386,"y":598},"pg_Q9NXE8":{"x":-278,"y":566},"pg_Q9BRD0":{"x":-485,"y":552},"pg_Q9UBS4":{"x":-501,"y":411},"pg_O43809":{"x":-254,"y":508},"pg_Q93077":{"x":-530,"y":520},"pg_P28482":{"x":-532,"y":459},"pg_O75600":{"x":-470,"y":358},"pg_Q9BXF6":{"x":-530,"y":208},"pg_Q8TF01":{"x":-304,"y":338},"pg_P24666":{"x":-584,"y":459},"pg_P51148":{"x":401,"y":-174},"pg_Q9NQT5":{"x":269,"y":19},"pg_Q9Y4P3":{"x":499,"y":-33},"pg_P78552":{"x":446,"y":-64},"pg_Q03518":{"x":608,"y":-35},"pg_Q96QD8":{"x":406,"y":-234},"pg_Q8NBN3":{"x":666,"y":-258},"pg_Q15036":{"x":645,"y":-313},"pg_O00220":{"x":297,"y":-237},"pg_Q9H228":{"x":635,"y":-391},"pg_Q9Y2G1":{"x":660,"y":-100},"pg_Q9Y287":{"x":493,"y":-337},"pg_Q9UIA9":{"x":718,"y":-243},"pg_Q9NPR2":{"x":660,"y":-47},"pg_Q9Y397":{"x":604,"y":-347},"pg_O75509":{"x":424,"y":-294},"pg_Q9Y6C9":{"x":393,"y":-500},"pg_Q9H3N1":{"x":443,"y":-352},"pg_P61619":{"x":307,"y":-286},"pg_Q8N490":{"x":453,"y":-125},"pg_P43007":{"x":709,"y":-88},"pg_Q8N9A8":{"x":556,"y":-21},"pg_Q9UKM7":{"x":660,"y":-151},"pg_Q96GC9":{"x":508,"y":-395},"pg_O75751":{"x":720,"y":-139},"pg_Q8NHS3":{"x":738,"y":-186},"pg_P12236":{"x":682,"y":-357},"pg_O95136":{"x":550,"y":-355},"pg_Q96GQ5":{"x":575,"y":-406},"pg_Q12893":{"x":559,"y":-76},"pg_Q8TCJ2":{"x":774,"y":-299},"pg_Q9BXS4":{"x":704,"y":-305},"pg_P11166":{"x":504,"y":-87},"pg_Q9HD45":{"x":788,"y":-246},"pg_Q15746":{"x":684,"y":-198},"pg_P63027":{"x":400,"y":-114},"pg_P07204":{"x":609,"y":-98},"pg_Q9H270":{"x":134,"y":310},"pg_P05783":{"x":141,"y":170},"pg_Q8IWX8":{"x":107,"y":261},"pg_Q9BQ39":{"x":-106,"y":349},"pg_Q13907":{"x":-173,"y":96},"pg_Q03252":{"x":-51,"y":455},"pg_Q15436":{"x":-102,"y":130},"pg_P13639":{"x":-8,"y":67},"pg_O14949":{"x":-50,"y":380},"pg_Q8WXX5":{"x":48,"y":83},"pg_Q14764":{"x":-70,"y":82},"pg_Q02040":{"x":45,"y":136},"pg_Q96I25":{"x":21,"y":376},"pg_Q8N5F7":{"x":-202,"y":137},"pg_Q9BVJ6":{"x":150,"y":231},"pg_P10253":{"x":-24,"y":117},"pg_Q9GZL7":{"x":-142,"y":190},"pg_Q9NYQ7":{"x":83,"y":330},"pg_O14545":{"x":101,"y":123},"pg_Q16555":{"x":78,"y":384},"pg_P11766":{"x":93,"y":189},"pg_Q9Y6E2":{"x":518,"y":323},"pg_Q96S66":{"x":158,"y":528},"pg_P51636":{"x":372,"y":267},"pg_Q9BVT8":{"x":532,"y":376},"pg_P61254":{"x":430,"y":293},"pg_Q9HA64":{"x":422,"y":235},"pg_Q9BRT6":{"x":245,"y":512},"pg_Q9UQE7":{"x":276,"y":567},"pg_Q8WWY3":{"x":519,"y":484},"pg_P16402":{"x":336,"y":588},"pg_Q8N567":{"x":449,"y":564},"pg_P35659":{"x":487,"y":526},"pg_Q9NZM5":{"x":479,"y":442},"pg_Q9H089":{"x":341,"y":223},"pg_Q86Y56":{"x":192,"y":42},"pg_P48047":{"x":210,"y":457},"pg_P19474":{"x":465,"y":338},"pg_Q8NHQ9":{"x":448,"y":482},"pg_Q8WUA4":{"x":202,"y":386},"pg_O15226":{"x":535,"y":430},"pg_Q6ZYL4":{"x":366,"y":537},"pg_O43290":{"x":311,"y":526},"pg_Q9NYH9":{"x":241,"y":299},"pg_P17844":{"x":290,"y":255},"pg_P61353":{"x":396,"y":586},"pg_Q13868":{"x":477,"y":391},"pg_O15446":{"x":482,"y":274},"pg_P46776":{"x":415,"y":521},"pg_Q96D53":{"x":28,"y":824},"pg_Q6ZU35":{"x":80,"y":720},"pg_P22570":{"x":20,"y":767},"pg_P02786":{"x":111,"y":602},"pg_Q07666":{"x":-74,"y":778},"pg_P53999":{"x":-29,"y":813},"pg_P46779":{"x":65,"y":540},"pg_Q13523":{"x":120,"y":761},"pg_Q92621":{"x":-150,"y":686},"pg_Q9BRX9":{"x":126,"y":656},"pg_Q9Y5V3":{"x":142,"y":706},"pg_Q8TCG1":{"x":76,"y":792},"pg_O60613":{"x":1106,"y":-412},"pg_Q9UNL2":{"x":967,"y":-167},"pg_Q9Y512":{"x":1016,"y":-475},"pg_P18084":{"x":1089,"y":-206},"pg_A6NMD0":{"x":1134,"y":-308},"pg_Q9NXH8":{"x":1038,"y":-173},"pg_Q5BJD5":{"x":1124,"y":-253},"pg_Q13561":{"x":892,"y":-445},"pg_O95674":{"x":1070,"y":-454},"pg_Q96J01":{"x":954,"y":-478},"pg_O60658":{"x":1135,"y":-364},"pg_P11310":{"x":180,"y":-537},"pg_P46977":{"x":76,"y":-429},"pg_Q9HC07":{"x":80,"y":-567},"pg_Q9P244":{"x":-174,"y":-343},"pg_P04080":{"x":119,"y":-458},"pg_Q12913":{"x":-76,"y":-346},"pg_P51692":{"x":137,"y":-398},"pg_Q8N8Z6":{"x":97,"y":-211},"pg_Q9P035":{"x":60,"y":-482},"pg_Q92797":{"x":-140,"y":-243},"pg_O00217":{"x":-72,"y":-280},"pg_Q8WZ82":{"x":-36,"y":-217},"pg_Q9H1A4":{"x":70,"y":-108},"pg_Q15386":{"x":-79,"y":-438},"pg_O96005":{"x":31,"y":-196},"pg_Q96JB2":{"x":-126,"y":-349},"pg_Q9NQX7":{"x":-88,"y":-231},"pg_Q53GQ0":{"x":-74,"y":-174},"pg_Q01629":{"x":-158,"y":-397},"pg_Q9Y6M5":{"x":207,"y":-404},"pg_A8MXV4":{"x":-43,"y":-505},"pg_P04114":{"x":199,"y":-205},"pg_Q9HBI6":{"x":-104,"y":-395},"pg_O15321":{"x":136,"y":-534},"pg_Q9Y679":{"x":-93,"y":-485},"pg_P13498":{"x":123,"y":-570},"pg_P17655":{"x":209,"y":-255},"pg_Q9UBH6":{"x":-30,"y":-456},"pg_P31150":{"x":166,"y":-301},"pg_Q6P1A2":{"x":220,"y":-306},"pg_O75110":{"x":154,"y":-246},"pg_P55011":{"x":36,"y":-146},"pg_Q9BT67":{"x":-16,"y":-168},"pg_Q13586":{"x":172,"y":-440},"pg_O00330":{"x":-166,"y":-289},"pg_Q96PD2":{"x":-43,"y":-399},"pg_P48506":{"x":17,"y":-439},"pg_P48651":{"x":-310,"y":-188},"pg_Q9NSU2":{"x":-121,"y":-191},"pg_Q9Y5G3":{"x":171,"y":-355},"pg_Q9Y6D0":{"x":143,"y":-192},"pg_Q6ZSS7":{"x":173,"y":-155},"pg_O43556":{"x":-133,"y":-445},"pg_Q86XI2":{"x":-50,"y":-130},"pg_Q8NHV4":{"x":10,"y":-500},"pg_P17152":{"x":125,"y":-129},"pg_Q8IY26":{"x":227,"y":-357},"pg_Q13084":{"x":87,"y":-161},"pg_O60218":{"x":4,"y":-110},"pg_Q8IUH4":{"x":-118,"y":-297},"pg_P13804":{"x":39,"y":-898},"pg_Q96I59":{"x":14,"y":-765},"pg_Q8IV08":{"x":415,"y":-746},"pg_Q9NVC3":{"x":384,"y":-804},"pg_O75190":{"x":209,"y":-639},"pg_Q9P0U1":{"x":85,"y":-755},"pg_P03915":{"x":113,"y":-707},"pg_Q02978":{"x":10,"y":-827},"pg_Q96FL8":{"x":365,"y":-657},"pg_Q9P0J0":{"x":283,"y":-981},"pg_P53985":{"x":415,"y":-855},"pg_P33897":{"x":149,"y":-876},"pg_P0DJ07":{"x":127,"y":-975},"pg_O14966":{"x":339,"y":-707},"pg_Q96SQ9":{"x":301,"y":-872},"pg_Q75QN2":{"x":188,"y":-919},"pg_O60669":{"x":338,"y":-959},"pg_Q9BXW9":{"x":234,"y":-948},"pg_A6NDU8":{"x":226,"y":-996},"pg_Q9BRY0":{"x":287,"y":-929},"pg_Q96I99":{"x":57,"y":-797},"pg_Q8NC44":{"x":136,"y":-927},"pg_O43808":{"x":178,"y":-974},"pg_Q03135":{"x":260,"y":-618},"pg_Q96HH4":{"x":291,"y":-671},"pg_Q8WWC4":{"x":334,"y":-817},"pg_Q7Z3U7":{"x":363,"y":-861},"pg_Q9H1N7":{"x":96,"y":-887},"pg_Q15155":{"x":399,"y":-698},"pg_Q13445":{"x":338,"y":-909},"pg_Q96CP7":{"x":81,"y":-939},"pg_O75431":{"x":390,"y":-910},"pg_Q13015":{"x":241,"y":-896},"pg_O15427":{"x":40,"y":-717},"pg_O43826":{"x":320,"y":-624},"pg_Q9H019":{"x":148,"y":-656},"pg_Q96RQ1":{"x":75,"y":-673},"pg_Q96JW4":{"x":432,"y":-797},"pg_P43353":{"x":105,"y":-826},"pg_Q8TBE7":{"x":56,"y":-851},"pg_Q8N8R3":{"x":358,"y":-756},"pg_P48556":{"x":-809,"y":115},"pg_O14975":{"x":-581,"y":-141},"pg_O00483":{"x":-773,"y":-174},"pg_Q9H553":{"x":-842,"y":-92},"pg_Q969Z0":{"x":-649,"y":-149},"pg_Q9BSR8":{"x":-773,"y":74},"pg_Q9BT22":{"x":-814,"y":-137},"pg_O60701":{"x":-707,"y":-147},"pg_Q8NHP8":{"x":-856,"y":14},"pg_Q14CZ7":{"x":-694,"y":156},"pg_Q6P3X3":{"x":-798,"y":25},"pg_P36542":{"x":-858,"y":-40},"pg_O14684":{"x":-803,"y":-28},"pg_O00471":{"x":-637,"y":127},"pg_Q8N511":{"x":-723,"y":107},"pg_Q9Y5M8":{"x":-840,"y":67},"pg_Q14139":{"x":-668,"y":-204},"pg_P32969":{"x":-608,"y":-192},"pg_P27482":{"x":-755,"y":-120},"pg_Q96TC7":{"x":-724,"y":-199},"pg_P16401":{"x":-760,"y":148},"pg_Q6NUK1":{"x":-787,"y":-78},"pg_P49454":{"x":-229,"y":40},"pg_Q6ZRP7":{"x":-456,"y":-77},"pg_P00450":{"x":-502,"y":62},"pg_Q96ST2":{"x":-269,"y":-115},"pg_P17936":{"x":-540,"y":18},"pg_Q7Z6R9":{"x":-492,"y":-10},"pg_P47929":{"x":-242,"y":-65},"pg_Q6ZVM7":{"x":-323,"y":-113},"pg_P14209":{"x":-362,"y":-154},"pg_Q6NUM9":{"x":-403,"y":-115},"pg_P04066":{"x":-497,"y":-108},"pg_P50748":{"x":-210,"y":-18},"pg_P37268":{"x":-455,"y":-145},"pg_Q9NV06":{"x":-411,"y":-178},"pg_Q9BPU6":{"x":-524,"y":-53},"pg_Q8TED1":{"x":-847,"y":-1116},"pg_P09382":{"x":-1058,"y":-916},"eff_E_SARS-CoV2_TUM":{"x":-326,"y":827},"eff_M_SARS-CoV2_TUM":{"x":220,"y":-775},"eff_N_SARS-CoV2_TUM":{"x":337,"y":396},"eff_NSP15_SARS-CoV2_TUM":{"x":-23,"y":246},"eff_NSP16_SARS-CoV2_TUM":{"x":-374,"y":451},"eff_NSP3_SARS-CoV2_TUM":{"x":-374,"y":321},"eff_NSP4_SARS-CoV2_TUM":{"x":974,"y":-320},"eff_NSP7_SARS-CoV2_TUM":{"x":-364,"y":15},"eff_ORF3_SARS-CoV2_TUM":{"x":41,"y":-314},"eff_ORF6_SARS-CoV2_TUM":{"x":-30,"y":641},"eff_ORF7a_SARS-CoV2_TUM":{"x":-659,"y":-12},"eff_ORF7b_SARS-CoV2_TUM":{"x":544,"y":-216},"eff_ORF8_SARS-CoV2_TUM":{"x":-952,"y":-1015}}
{"p_Q9UBR2":{"x":-578,"y":324},"p_P50993":{"x":-339,"y":575},"p_P55072":{"x":-498,"y":260},"p_P17096":{"x":-242,"y":240},"p_Q9BU76":{"x":-240,"y":306},"p_P20700":{"x":-207,"y":477},"p_Q08211":{"x":-475,"y":202},"p_P60983":{"x":-495,"y":126},"p_Q6UWE0":{"x":-403,"y":147},"p_Q6IN84":{"x":-427,"y":190},"p_Q9Y2U8":{"x":-536,"y":295},"p_P30040":{"x":-253,"y":407},"p_Q15059":{"x":-302,"y":161},"p_Q02413":{"x":-284,"y":210},"p_Q9NXG0":{"x":-353,"y":164},"p_Q86V81":{"x":-187,"y":272},"p_O00410":{"x":-533,"y":354},"p_P63173":{"x":-241,"y":639},"p_Q7L4I2":{"x":-190,"y":974},"p_Q7Z417":{"x":-162,"y":924},"p_P10515":{"x":-151,"y":543},"p_A0A0A0MS14":{"x":-375,"y":658},"p_Q9Y3A5":{"x":-285,"y":1024},"p_Q8IWE2":{"x":-187,"y":814},"p_P02790":{"x":-323,"y":647},"p_Q9BTE6":{"x":-418,"y":950},"p_Q6IE81":{"x":-478,"y":956},"p_Q92922":{"x":-487,"y":752},"p_P30050":{"x":-152,"y":862},"p_P55060":{"x":-458,"y":801},"p_Q12962":{"x":-344,"y":1033},"p_Q15599":{"x":-235,"y":732},"p_Q9Y3I0":{"x":-365,"y":951},"p_P49368":{"x":-517,"y":804},"p_Q7L3T8":{"x":-162,"y":753},"p_Q9BRR8":{"x":-523,"y":859},"p_Q9H0G5":{"x":-279,"y":957},"p_Q9Y263":{"x":-468,"y":857},"p_P28070":{"x":-237,"y":1001},"p_Q9H7Z3":{"x":-229,"y":935},"p_P07498":{"x":-442,"y":904},"p_Q6PK04":{"x":-324,"y":983},"p_O14497":{"x":-504,"y":911},"p_P63241":{"x":-204,"y":884},"p_Q04721":{"x":-441,"y":999},"p_P19623":{"x":-428,"y":733},"p_O75400":{"x":-389,"y":1007},"p_Q5JTH9":{"x":-566,"y":233},"p_Q14244":{"x":-488,"y":490},"p_P26639":{"x":-367,"y":236},"p_P62753":{"x":-196,"y":345},"p_P26440":{"x":-543,"y":572},"p_Q96NB3":{"x":-578,"y":516},"p_O95395":{"x":-433,"y":565},"p_P19525":{"x":-7,"y":438},"p_P45973":{"x":-174,"y":387},"p_Q02790":{"x":-496,"y":605},"p_O75319":{"x":-203,"y":563},"p_Q8N9Q2":{"x":-561,"y":409},"p_Q9Y295":{"x":-442,"y":620},"p_Q5SRI9":{"x":-429,"y":316},"p_Q9P2N5":{"x":-386,"y":598},"p_Q9NXE8":{"x":-278,"y":566},"p_Q9BRD0":{"x":-485,"y":552},"p_Q9UBS4":{"x":-501,"y":411},"p_O43809":{"x":-254,"y":508},"p_Q93077":{"x":-530,"y":520},"p_P28482":{"x":-532,"y":459},"p_O75600":{"x":-470,"y":358},"p_Q9BXF6":{"x":-530,"y":208},"p_Q8TF01":{"x":-304,"y":338},"p_P24666":{"x":-584,"y":459},"p_P51148":{"x":401,"y":-174},"p_Q9NQT5":{"x":269,"y":19},"p_Q9Y4P3":{"x":499,"y":-33},"p_P78552":{"x":446,"y":-64},"p_Q03518":{"x":608,"y":-35},"p_Q96QD8":{"x":406,"y":-234},"p_Q8NBN3":{"x":666,"y":-258},"p_Q15036":{"x":645,"y":-313},"p_O00220":{"x":297,"y":-237},"p_Q9H228":{"x":635,"y":-391},"p_Q9Y2G1":{"x":660,"y":-100},"p_Q9Y287":{"x":493,"y":-337},"p_Q9UIA9":{"x":718,"y":-243},"p_Q9NPR2":{"x":660,"y":-47},"p_Q9Y397":{"x":604,"y":-347},"p_O75509":{"x":424,"y":-294},"p_Q9Y6C9":{"x":393,"y":-500},"p_Q9H3N1":{"x":443,"y":-352},"p_P61619":{"x":307,"y":-286},"p_Q8N490":{"x":453,"y":-125},"p_P43007":{"x":709,"y":-88},"p_Q8N9A8":{"x":556,"y":-21},"p_Q9UKM7":{"x":660,"y":-151},"p_Q96GC9":{"x":508,"y":-395},"p_O75751":{"x":720,"y":-139},"p_Q8NHS3":{"x":738,"y":-186},"p_P12236":{"x":682,"y":-357},"p_O95136":{"x":550,"y":-355},"p_Q96GQ5":{"x":575,"y":-406},"p_Q12893":{"x":559,"y":-76},"p_Q8TCJ2":{"x":774,"y":-299},"p_Q9BXS4":{"x":704,"y":-305},"p_P11166":{"x":504,"y":-87},"p_Q9HD45":{"x":788,"y":-246},"p_Q15746":{"x":684,"y":-198},"p_P63027":{"x":400,"y":-114},"p_P07204":{"x":609,"y":-98},"p_Q9H270":{"x":134,"y":310},"p_P05783":{"x":141,"y":170},"p_Q8IWX8":{"x":107,"y":261},"p_Q9BQ39":{"x":-106,"y":349},"p_Q13907":{"x":-173,"y":96},"p_Q03252":{"x":-51,"y":455},"p_Q15436":{"x":-102,"y":130},"p_P13639":{"x":-8,"y":67},"p_O14949":{"x":-50,"y":380},"p_Q8WXX5":{"x":48,"y":83},"p_Q14764":{"x":-70,"y":82},"p_Q02040":{"x":45,"y":136},"p_Q96I25":{"x":21,"y":376},"p_Q8N5F7":{"x":-202,"y":137},"p_Q9BVJ6":{"x":150,"y":231},"p_P10253":{"x":-24,"y":117},"p_Q9GZL7":{"x":-142,"y":190},"p_Q9NYQ7":{"x":83,"y":330},"p_O14545":{"x":101,"y":123},"p_Q16555":{"x":78,"y":384},"p_P11766":{"x":93,"y":189},"p_Q9Y6E2":{"x":518,"y":323},"p_Q96S66":{"x":158,"y":528},"p_P51636":{"x":372,"y":267},"p_Q9BVT8":{"x":532,"y":376},"p_P61254":{"x":430,"y":293},"p_Q9HA64":{"x":422,"y":235},"p_Q9BRT6":{"x":245,"y":512},"p_Q9UQE7":{"x":276,"y":567},"p_Q8WWY3":{"x":519,"y":484},"p_P16402":{"x":336,"y":588},"p_Q8N567":{"x":449,"y":564},"p_P35659":{"x":487,"y":526},"p_Q9NZM5":{"x":479,"y":442},"p_Q9H089":{"x":341,"y":223},"p_Q86Y56":{"x":192,"y":42},"p_P48047":{"x":210,"y":457},"p_P19474":{"x":465,"y":338},"p_Q8NHQ9":{"x":448,"y":482},"p_Q8WUA4":{"x":202,"y":386},"p_O15226":{"x":535,"y":430},"p_Q6ZYL4":{"x":366,"y":537},"p_O43290":{"x":311,"y":526},"p_Q9NYH9":{"x":241,"y":299},"p_P17844":{"x":290,"y":255},"p_P61353":{"x":396,"y":586},"p_Q13868":{"x":477,"y":391},"p_O15446":{"x":482,"y":274},"p_P46776":{"x":415,"y":521},"p_Q96D53":{"x":28,"y":824},"p_Q6ZU35":{"x":80,"y":720},"p_P22570":{"x":20,"y":767},"p_P02786":{"x":111,"y":602},"p_Q07666":{"x":-74,"y":778},"p_P53999":{"x":-29,"y":813},"p_P46779":{"x":65,"y":540},"p_Q13523":{"x":120,"y":761},"p_Q92621":{"x":-150,"y":686},"p_Q9BRX9":{"x":126,"y":656},"p_Q9Y5V3":{"x":142,"y":706},"p_Q8TCG1":{"x":76,"y":792},"p_O60613":{"x":1106,"y":-412},"p_Q9UNL2":{"x":967,"y":-167},"p_Q9Y512":{"x":1016,"y":-475},"p_P18084":{"x":1089,"y":-206},"p_A6NMD0":{"x":1134,"y":-308},"p_Q9NXH8":{"x":1038,"y":-173},"p_Q5BJD5":{"x":1124,"y":-253},"p_Q13561":{"x":892,"y":-445},"p_O95674":{"x":1070,"y":-454},"p_Q96J01":{"x":954,"y":-478},"p_O60658":{"x":1135,"y":-364},"p_P11310":{"x":180,"y":-537},"p_P46977":{"x":76,"y":-429},"p_Q9HC07":{"x":80,"y":-567},"p_Q9P244":{"x":-174,"y":-343},"p_P04080":{"x":119,"y":-458},"p_Q12913":{"x":-76,"y":-346},"p_P51692":{"x":137,"y":-398},"p_Q8N8Z6":{"x":97,"y":-211},"p_Q9P035":{"x":60,"y":-482},"p_Q92797":{"x":-140,"y":-243},"p_O00217":{"x":-72,"y":-280},"p_Q8WZ82":{"x":-36,"y":-217},"p_Q9H1A4":{"x":70,"y":-108},"p_Q15386":{"x":-79,"y":-438},"p_O96005":{"x":31,"y":-196},"p_Q96JB2":{"x":-126,"y":-349},"p_Q9NQX7":{"x":-88,"y":-231},"p_Q53GQ0":{"x":-74,"y":-174},"p_Q01629":{"x":-158,"y":-397},"p_Q9Y6M5":{"x":207,"y":-404},"p_A8MXV4":{"x":-43,"y":-505},"p_P04114":{"x":199,"y":-205},"p_Q9HBI6":{"x":-104,"y":-395},"p_O15321":{"x":136,"y":-534},"p_Q9Y679":{"x":-93,"y":-485},"p_P13498":{"x":123,"y":-570},"p_P17655":{"x":209,"y":-255},"p_Q9UBH6":{"x":-30,"y":-456},"p_P31150":{"x":166,"y":-301},"p_Q6P1A2":{"x":220,"y":-306},"p_O75110":{"x":154,"y":-246},"p_P55011":{"x":36,"y":-146},"p_Q9BT67":{"x":-16,"y":-168},"p_Q13586":{"x":172,"y":-440},"p_O00330":{"x":-166,"y":-289},"p_Q96PD2":{"x":-43,"y":-399},"p_P48506":{"x":17,"y":-439},"p_P48651":{"x":-310,"y":-188},"p_Q9NSU2":{"x":-121,"y":-191},"p_Q9Y5G3":{"x":171,"y":-355},"p_Q9Y6D0":{"x":143,"y":-192},"p_Q6ZSS7":{"x":173,"y":-155},"p_O43556":{"x":-133,"y":-445},"p_Q86XI2":{"x":-50,"y":-130},"p_Q8NHV4":{"x":10,"y":-500},"p_P17152":{"x":125,"y":-129},"p_Q8IY26":{"x":227,"y":-357},"p_Q13084":{"x":87,"y":-161},"p_O60218":{"x":4,"y":-110},"p_Q8IUH4":{"x":-118,"y":-297},"p_P13804":{"x":39,"y":-898},"p_Q96I59":{"x":14,"y":-765},"p_Q8IV08":{"x":415,"y":-746},"p_Q9NVC3":{"x":384,"y":-804},"p_O75190":{"x":209,"y":-639},"p_Q9P0U1":{"x":85,"y":-755},"p_P03915":{"x":113,"y":-707},"p_Q02978":{"x":10,"y":-827},"p_Q96FL8":{"x":365,"y":-657},"p_Q9P0J0":{"x":283,"y":-981},"p_P53985":{"x":415,"y":-855},"p_P33897":{"x":149,"y":-876},"p_P0DJ07":{"x":127,"y":-975},"p_O14966":{"x":339,"y":-707},"p_Q96SQ9":{"x":301,"y":-872},"p_Q75QN2":{"x":188,"y":-919},"p_O60669":{"x":338,"y":-959},"p_Q9BXW9":{"x":234,"y":-948},"p_A6NDU8":{"x":226,"y":-996},"p_Q9BRY0":{"x":287,"y":-929},"p_Q96I99":{"x":57,"y":-797},"p_Q8NC44":{"x":136,"y":-927},"p_O43808":{"x":178,"y":-974},"p_Q03135":{"x":260,"y":-618},"p_Q96HH4":{"x":291,"y":-671},"p_Q8WWC4":{"x":334,"y":-817},"p_Q7Z3U7":{"x":363,"y":-861},"p_Q9H1N7":{"x":96,"y":-887},"p_Q15155":{"x":399,"y":-698},"p_Q13445":{"x":338,"y":-909},"p_Q96CP7":{"x":81,"y":-939},"p_O75431":{"x":390,"y":-910},"p_Q13015":{"x":241,"y":-896},"p_O15427":{"x":40,"y":-717},"p_O43826":{"x":320,"y":-624},"p_Q9H019":{"x":148,"y":-656},"p_Q96RQ1":{"x":75,"y":-673},"p_Q96JW4":{"x":432,"y":-797},"p_P43353":{"x":105,"y":-826},"p_Q8TBE7":{"x":56,"y":-851},"p_Q8N8R3":{"x":358,"y":-756},"p_P48556":{"x":-809,"y":115},"p_O14975":{"x":-581,"y":-141},"p_O00483":{"x":-773,"y":-174},"p_Q9H553":{"x":-842,"y":-92},"p_Q969Z0":{"x":-649,"y":-149},"p_Q9BSR8":{"x":-773,"y":74},"p_Q9BT22":{"x":-814,"y":-137},"p_O60701":{"x":-707,"y":-147},"p_Q8NHP8":{"x":-856,"y":14},"p_Q14CZ7":{"x":-694,"y":156},"p_Q6P3X3":{"x":-798,"y":25},"p_P36542":{"x":-858,"y":-40},"p_O14684":{"x":-803,"y":-28},"p_O00471":{"x":-637,"y":127},"p_Q8N511":{"x":-723,"y":107},"p_Q9Y5M8":{"x":-840,"y":67},"p_Q14139":{"x":-668,"y":-204},"p_P32969":{"x":-608,"y":-192},"p_P27482":{"x":-755,"y":-120},"p_Q96TC7":{"x":-724,"y":-199},"p_P16401":{"x":-760,"y":148},"p_Q6NUK1":{"x":-787,"y":-78},"p_P49454":{"x":-229,"y":40},"p_Q6ZRP7":{"x":-456,"y":-77},"p_P00450":{"x":-502,"y":62},"p_Q96ST2":{"x":-269,"y":-115},"p_P17936":{"x":-540,"y":18},"p_Q7Z6R9":{"x":-492,"y":-10},"p_P47929":{"x":-242,"y":-65},"p_Q6ZVM7":{"x":-323,"y":-113},"p_P14209":{"x":-362,"y":-154},"p_Q6NUM9":{"x":-403,"y":-115},"p_P04066":{"x":-497,"y":-108},"p_P50748":{"x":-210,"y":-18},"p_P37268":{"x":-455,"y":-145},"p_Q9NV06":{"x":-411,"y":-178},"p_Q9BPU6":{"x":-524,"y":-53},"p_Q8TED1":{"x":-847,"y":-1116},"p_P09382":{"x":-1058,"y":-916},"eff_E_SARS-CoV2_TUM":{"x":-326,"y":827},"eff_M_SARS-CoV2_TUM":{"x":220,"y":-775},"eff_N_SARS-CoV2_TUM":{"x":337,"y":396},"eff_NSP15_SARS-CoV2_TUM":{"x":-23,"y":246},"eff_NSP16_SARS-CoV2_TUM":{"x":-374,"y":451},"eff_NSP3_SARS-CoV2_TUM":{"x":-374,"y":321},"eff_NSP4_SARS-CoV2_TUM":{"x":974,"y":-320},"eff_NSP7_SARS-CoV2_TUM":{"x":-364,"y":15},"eff_ORF3_SARS-CoV2_TUM":{"x":41,"y":-314},"eff_ORF6_SARS-CoV2_TUM":{"x":-30,"y":641},"eff_ORF7a_SARS-CoV2_TUM":{"x":-659,"y":-12},"eff_ORF7b_SARS-CoV2_TUM":{"x":544,"y":-216},"eff_ORF8_SARS-CoV2_TUM":{"x":-952,"y":-1015}}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment