Skip to content
Snippets Groups Projects
Commit a13bf4fe authored by Hartung, Michael's avatar Hartung, Michael
Browse files

expression style in legend

parent a0f3e250
No related branches found
No related tags found
No related merge requests found
<div <div
class="legend" class="legend"
[class.right]="config.legendPos === 'right'" [class.right]="config.legendPos === 'right'"
[ngClass]="{ 'legend-small': drugstoneConfig.smallStyle }" [ngClass]="{ 'legend-small': drugstoneConfig.smallStyle, 'expression': networkHandler.activeNetwork.currentViewSelectedTissue }"
> >
<div class="legend-background" *ngIf="!config.legendUrl.length"></div> <div class="legend-background" *ngIf="!config.legendUrl.length"></div>
<!-- default legend in html --> <!-- default legend in html -->
...@@ -12,6 +12,20 @@ ...@@ -12,6 +12,20 @@
class="list-item" class="list-item"
*ngIf="nodeGroup.key && checkNodeGroupContext(nodeGroup.key)" *ngIf="nodeGroup.key && checkNodeGroupContext(nodeGroup.key)"
> >
<!-- special legend for node types concerned by expression -->
<ng-container *ngIf="networkHandler.activeNetwork.nodeGroupsWithExpression.has(nodeGroup.key)">
<th>
<span
class="node dot expression-style"
[style.background-color]="nodeGroup.value.color.background"
>
</span>
</th>
<td class="group-name">&nbsp;{{ nodeGroup.value.groupName }} (exprs)</td>
</ng-container>
<!-- normal legend without expression -->
<ng-container *ngIf="!networkHandler.activeNetwork.nodeGroupsWithExpression.has(nodeGroup.key)">
<ng-container *ngIf="nodeGroup.value.image"> <ng-container *ngIf="nodeGroup.value.image">
<!-- group icon given, use icon in legend --> <!-- group icon given, use icon in legend -->
<th> <th>
...@@ -92,6 +106,7 @@ ...@@ -92,6 +106,7 @@
</th> </th>
<td class="group-name">&nbsp;{{ nodeGroup.value.groupName }}</td> <td class="group-name">&nbsp;{{ nodeGroup.value.groupName }}</td>
</ng-container> </ng-container>
</ng-container>
</tr> </tr>
</ng-container> </ng-container>
</ng-container> </ng-container>
......
...@@ -85,13 +85,20 @@ div.legend { ...@@ -85,13 +85,20 @@ div.legend {
border-radius: 50%; border-radius: 50%;
display: inline-block; display: inline-block;
} }
.dot { .dot:not(.expression-style) {
background: $legend-default-background-color; background: $legend-default-background-color;
border-radius: 50%; border-radius: 50%;
width: $legend-circle-size; width: $legend-circle-size;
height: $legend-circle-size; height: $legend-circle-size;
display: inline-block; display: inline-block;
} }
.dot.expression-style {
background: conic-gradient(rgba(255, 255, 255, .6) 0.00% 25.00%, rgba(255, 255, 255, .0) 25.00% 40.00%, rgba(255, 255, 255, .6) 40.00%);
border-radius: 50%;
width: $legend-circle-size;
height: $legend-circle-size;
display: inline-block;
}
.circle { .circle {
background: $legend-default-background-color; background: $legend-default-background-color;
border-radius: 50%; border-radius: 50%;
......
...@@ -3,6 +3,7 @@ import { LegendContext } from 'src/app/interfaces'; ...@@ -3,6 +3,7 @@ import { LegendContext } from 'src/app/interfaces';
import { DrugstoneConfigService } from 'src/app/services/drugstone-config/drugstone-config.service'; import { DrugstoneConfigService } from 'src/app/services/drugstone-config/drugstone-config.service';
import {IConfig} from '../../../config'; import {IConfig} from '../../../config';
import {LegendService} from "src/app/services/legend-service/legend-service.service"; import {LegendService} from "src/app/services/legend-service/legend-service.service";
import { NetworkHandlerService } from 'src/app/services/network-handler/network-handler.service';
@Component({ @Component({
selector: 'app-network-legend', selector: 'app-network-legend',
...@@ -46,7 +47,7 @@ export class NetworkLegendComponent implements OnInit { ...@@ -46,7 +47,7 @@ export class NetworkLegendComponent implements OnInit {
return Object.keys(this.config.edgeGroups).some(key => this.checkEdgeGroupContext(key)); return Object.keys(this.config.edgeGroups).some(key => this.checkEdgeGroupContext(key));
} }
constructor(public drugstoneConfig: DrugstoneConfigService, public legendService: LegendService) { } constructor(public drugstoneConfig: DrugstoneConfigService, public legendService: LegendService, public networkHandler: NetworkHandlerService) { }
ngOnInit(): void { ngOnInit(): void {
} }
......
...@@ -85,6 +85,8 @@ export class NetworkComponent implements OnInit { ...@@ -85,6 +85,8 @@ export class NetworkComponent implements OnInit {
public loading = false; public loading = false;
public nodeGroupsWithExpression: Set<string> = new Set();
constructor( constructor(
public legendService: LegendService, public legendService: LegendService,
public networkHandler: NetworkHandlerService, public networkHandler: NetworkHandlerService,
...@@ -448,6 +450,7 @@ export class NetworkComponent implements OnInit { ...@@ -448,6 +450,7 @@ export class NetworkComponent implements OnInit {
public selectTissue(tissue: Tissue | null) { public selectTissue(tissue: Tissue | null) {
this.loadingScreen.stateUpdate(true); this.loadingScreen.stateUpdate(true);
this.nodeGroupsWithExpression = new Set();
this.expressionExpanded = false; this.expressionExpanded = false;
if (!tissue) { if (!tissue) {
// delete expression values // delete expression values
...@@ -516,6 +519,7 @@ export class NetworkComponent implements OnInit { ...@@ -516,6 +519,7 @@ export class NetworkComponent implements OnInit {
const networkIdMapping = {}; const networkIdMapping = {};
this.nodeData.nodes.get().forEach(element => { this.nodeData.nodes.get().forEach(element => {
if (element.drugstoneType === 'protein') { if (element.drugstoneType === 'protein') {
this.nodeGroupsWithExpression.add(element.group);
element.drugstoneId.forEach(id => { element.drugstoneId.forEach(id => {
if (networkIdMapping[id]) { if (networkIdMapping[id]) {
networkIdMapping[id].push(element.id); networkIdMapping[id].push(element.id);
......
...@@ -113,9 +113,9 @@ menu<br> ...@@ -113,9 +113,9 @@ menu<br>
<div style="max-width: 80vw; width: 1276px; height: 500px"> <div style="max-width: 80vw; width: 1276px; height: 500px">
<drugst-one id="netexp1" <drugst-one id="netexp1"
config="{'activateNetworkMenuButtonAdjacentDisorders':false,'activateNetworkMenuButtonAdjacentDrugs':true, 'activateNetworkMenuButtonAdjacentDisordersDrugs': true, 'licensedDatasets':true}" config="{'activateNetworkMenuButtonAdjacentDisorders':false,'activateNetworkMenuButtonAdjacentDrugs':false, 'activateNetworkMenuButtonAdjacentDisordersDrugs': false, 'licensedDatasets':true}"
groups='{"nodeGroups":{"important":{"type":"gene","color":"#ff881f","font":{"color":"#000000"},"groupName":"Important Gene","shape":"star"},"gene":{"type":"gene","color":"#4da300","font":{"color":"#f0f0f0"},"groupName":"Gene","shape":"circle"},"foundDrug":{"type":"drug","color":"#F12590","font":{"color":"#000000"},"groupName":"Drug","shape":"diamond"}},"edgeGroups":{"default":{"color":"#000000","groupName":"default edge"}}}' groups='{"nodeGroups":{"important":{"type":"gene","color":"#ff881f","font":{"color":"#000000"},"groupName":"Important Gene","shape":"star"},"gene":{"type":"gene","color":"#4da300","font":{"color":"#f0f0f0"},"groupName":"Gene","shape":"circle"},"foundDrug":{"type":"drug","color":"#F12590","font":{"color":"#000000"},"groupName":"Drug","shape":"diamond"}},"edgeGroups":{"default":{"color":"#000000","groupName":"default edge"}}}'
network='{"nodes":[{"id":"CFTR","group":"gene","label":"CFTR"},{"id":"TGFB1","group":"gene","label":"TGFB1"},{"id":"TNFRSF1A","group":"gene","label":"TNFRSF1A"},{"id":"FCGR2A","group":"gene","label":"FCGR2A"},{"id":"ENG","group":"gene","label":"ENG"},{"id":"DCTN4","group":"gene","label":"DCTN4"},{"id":"CLCA4","group":"gene","label":"CLCA4"},{"id":"STX1A","group":"gene","label":"STX1A"},{"id":"SCNN1G","group":"gene","label":"SCNN1G"},{"id":"SCNN1A","group":"gene","label":"SCNN1A"},{"id":"SCNN1B","group":"gene","label":"SCNN1B"}],"edges":[{"from":"DCTN4","to":"CFTR"},{"from":"STX1A","to":"SCNN1B","group":"default"},{"from":"SCNN1A","to":"SCNN1G","group":"default"},{"from":"SCNN1B","to":"SCNN1G","group":"default"}]}'> network='{"nodes":[{"id":"CFTR","group":"important","label":"CFTR"},{"id":"TGFB1","group":"gene","label":"TGFB1"},{"id":"TNFRSF1A","group":"gene","label":"TNFRSF1A"},{"id":"FCGR2A","group":"gene","label":"FCGR2A"},{"id":"ENG","group":"gene","label":"ENG"},{"id":"DCTN4","group":"gene","label":"DCTN4"},{"id":"CLCA4","group":"gene","label":"CLCA4"},{"id":"STX1A","group":"gene","label":"STX1A"},{"id":"SCNN1G","group":"gene","label":"SCNN1G"},{"id":"SCNN1A","group":"gene","label":"SCNN1A"},{"id":"SCNN1B","group":"gene","label":"SCNN1B"}],"edges":[{"from":"DCTN4","to":"CFTR"},{"from":"STX1A","to":"SCNN1B","group":"default"},{"from":"SCNN1A","to":"SCNN1G","group":"default"},{"from":"SCNN1B","to":"SCNN1G","group":"default"}]}'>
></drugst-one> ></drugst-one>
<!-- <drugst-one id="netexp1"--> <!-- <drugst-one id="netexp1"-->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment