Skip to content
Snippets Groups Projects
Commit 0994fd84 authored by Julian Späth's avatar Julian Späth Committed by Julian Matschinske
Browse files

Accumulate bait filters

parent 8ed9293e
No related branches found
No related tags found
No related merge requests found
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
<label class="checkbox"> <label class="checkbox">
<input type="checkbox" class="checkbox" [ngModel]="bait.checked" <input type="checkbox" class="checkbox" [ngModel]="bait.checked"
(ngModelChange)="bait.checked = $event; filterNodes()"> (ngModelChange)="bait.checked = $event; filterNodes()">
Bait {{ bait.data.effectId }} {{ bait.data.effectName }}
</label> </label>
</div> </div>
</div> </div>
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
<button class="button is-primary" *ngIf="!inSelection(currentProteinAc)" <button class="button is-primary" *ngIf="!inSelection(currentProteinAc)"
(click)="addToSelection(currentProteinAc)">Select for analysis (click)="addToSelection(currentProteinAc)">Select for analysis
</button> </button>
<button class="button is-primary" *ngIf="inSelection(currentProteinAc)" <button class="button is-danger" *ngIf="inSelection(currentProteinAc)"
(click)="removeFromSelection(currentProteinAc)">Remove from analysis (click)="removeFromSelection(currentProteinAc)">Remove from analysis
</button> </button>
</div> </div>
......
...@@ -157,11 +157,19 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -157,11 +157,19 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
this.proteinData.linkNodes(); this.proteinData.linkNodes();
// Populate baits // Populate baits
const effectNames = [];
this.proteinData.effects.sort((a, b) => {
return a.effectName.localeCompare(b.effectName);
});
this.proteinData.effects.forEach((effect) => { this.proteinData.effects.forEach((effect) => {
const effectName = effect.effectName;
if (effectNames.indexOf(effectName) === -1) {
effectNames.push(effectName);
this.viralProteinCheckboxes.push({ this.viralProteinCheckboxes.push({
checked: false, checked: false,
data: effect, data: effect,
}); });
}
}); });
const {nodes, edges} = this.mapDataToNodes(this.proteinData); const {nodes, edges} = this.mapDataToNodes(this.proteinData);
...@@ -188,9 +196,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -188,9 +196,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
this.network.on('click', (properties) => { this.network.on('click', (properties) => {
const id: Array<string> = properties.nodes; const id: Array<string> = properties.nodes;
// TODO use groupID // TODO use groupID
console.log(id);
if (id.length > 0) { if (id.length > 0) {
console.log('clicked node:', id);
if (id[0].startsWith('pg_')) { if (id[0].startsWith('pg_')) {
const protein = this.proteinData.getProtein(id[0].substr(3)); const protein = this.proteinData.getProtein(id[0].substr(3));
this.openSummary(protein, false); this.openSummary(protein, false);
...@@ -202,6 +208,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -202,6 +208,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
if (this.dumpPositions) { if (this.dumpPositions) {
this.network.on('stabilizationIterationsDone', () => { this.network.on('stabilizationIterationsDone', () => {
// tslint:disable-next-line:no-console
console.log(JSON.stringify(this.network.getPositions())); console.log(JSON.stringify(this.network.getPositions()));
}); });
this.network.stabilize(); this.network.stabilize();
...@@ -224,27 +231,33 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -224,27 +231,33 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
const addNodes = new Map<string, Node>(); const addNodes = new Map<string, Node>();
const showAll = !this.viralProteinCheckboxes.find((eff) => eff.checked); const showAll = !this.viralProteinCheckboxes.find((eff) => eff.checked);
console.log(showAll);
const connectedProteinAcs = new Set<string>(); const connectedProteinAcs = new Set<string>();
this.viralProteinCheckboxes.forEach((bait) => { this.viralProteinCheckboxes.forEach((cb) => {
const nodeId = `eff_${bait.data.effectId}`; const effects = [];
this.proteinData.effects.forEach((effect) => {
if (effect.effectName === cb.data.effectName) {
effects.push(effect);
}
});
effects.forEach((effect) => {
const nodeId = `eff_${effect.effectId}`;
const found = visibleIds.has(nodeId); const found = visibleIds.has(nodeId);
if ((bait.checked || showAll) && !found) { if ((cb.checked || showAll) && !found) {
const node = this.mapEffectToNode(bait.data); const node = this.mapEffectToNode(effect);
// this.nodeData.nodes.add(node); // this.nodeData.nodes.add(node);
addNodes.set(node.id, node); addNodes.set(node.id, node);
} else if ((!showAll && !bait.checked) && found) { } else if ((!showAll && !cb.checked) && found) {
// this.nodeData.nodes.remove(nodeId); // this.nodeData.nodes.remove(nodeId);
removeIds.add(nodeId); removeIds.add(nodeId);
} }
if (bait.checked || showAll) { if (cb.checked || showAll) {
bait.data.proteins.forEach((pg) => { effect.proteins.forEach((pg) => {
connectedProteinAcs.add(pg.proteinAc); connectedProteinAcs.add(pg.proteinAc);
}); });
} }
}); });
});
this.filteredProteins = []; this.filteredProteins = [];
for (const protein of this.proteinData.proteins) { for (const protein of this.proteinData.proteins) {
const nodeId = `pg_${protein.proteinAc}`; const nodeId = `pg_${protein.proteinAc}`;
...@@ -256,7 +269,6 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -256,7 +269,6 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
if (contains && !found) { if (contains && !found) {
const node = this.mapProteinToNode(protein); const node = this.mapProteinToNode(protein);
// this.nodeData.nodes.add(node); // this.nodeData.nodes.add(node);
addNodes.set(node.id, node); addNodes.set(node.id, node);
} else if (!contains && found) { } else if (!contains && found) {
// this.nodeData.nodes.remove(nodeId); // this.nodeData.nodes.remove(nodeId);
...@@ -264,7 +276,6 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { ...@@ -264,7 +276,6 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
} }
} }
this.nodeData.nodes.remove(Array.from(removeIds.values())); this.nodeData.nodes.remove(Array.from(removeIds.values()));
this.nodeData.nodes.add(Array.from(addNodes.values())); this.nodeData.nodes.add(Array.from(addNodes.values()));
this.fillQueryItems(); this.fillQueryItems();
......
...@@ -12,4 +12,5 @@ if (environment.production) { ...@@ -12,4 +12,5 @@ if (environment.production) {
} }
platformBrowserDynamic().bootstrapModule(AppModule) platformBrowserDynamic().bootstrapModule(AppModule)
// tslint:disable-next-line:no-console
.catch(err => console.error(err)); .catch(err => console.error(err));
...@@ -44,14 +44,7 @@ ...@@ -44,14 +44,7 @@
} }
], ],
"no-consecutive-blank-lines": false, "no-consecutive-blank-lines": false,
"no-console": [ "no-console": true,
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-empty": false, "no-empty": false,
"no-inferrable-types": [ "no-inferrable-types": [
true, true,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment