diff --git a/src/app/analysis.service.ts b/src/app/analysis.service.ts index d120bb6c092a33486e41926cba18fb9bc20ee3e4..4b040e5c870fd8e66350cbf5e35661d31152d70c 100644 --- a/src/app/analysis.service.ts +++ b/src/app/analysis.service.ts @@ -1,4 +1,4 @@ -import {Wrapper, Task, getWrapperFromProtein, getWrapperFromViralProtein, Protein, ViralProtein} from './interfaces'; +import {Wrapper, Task, getWrapperFromProtein, getWrapperFromViralProtein, Protein, ViralProtein, Dataset} from './interfaces'; import {Subject} from 'rxjs'; import {HttpClient} from '@angular/common/http'; import {environment} from '../environments/environment'; @@ -14,7 +14,8 @@ export const algorithmNames = { multisteiner: 'Multi-Steiner', closeness: 'Closeness Centrality', degree: 'Degree Centrality', - quick: 'Quick-Find Drugs', + quick: 'Quick-Find Drugs (custom)', + super: 'Quick-Find Drugs', }; export interface Algorithm { @@ -43,7 +44,7 @@ export class AnalysisService { public tasks: Task[] = []; private intervalId: any; - private canLaunchNewTask = false; + private canLaunchNewTask = true; private launchingQuick = false; @@ -150,7 +151,7 @@ export class AnalysisService { }); } - async startQuickAnalysis(dataset: string) { + async startQuickAnalysis(isSuper: boolean, dataset: Dataset) { if (!this.canLaunchTask()) { toast({ message: `You can only run ${MAX_TASKS} tasks at once. Please wait for one of them to finish or delete it from the task list.`, @@ -167,11 +168,12 @@ export class AnalysisService { this.launchingQuick = true; const resp = await this.http.post<any>(`${environment.backend}task/`, { - algorithm: 'quick', + algorithm: isSuper ? 'super' : 'quick', target: 'drug', parameters: { - strain: dataset, - seeds: this.getSelection().map((i) => i.backendId), + strain: dataset.backendId, + datasets: dataset.data, + seeds: isSuper ? [] : this.getSelection().map((i) => i.backendId), }, }).toPromise(); this.tokens.push(resp.token); diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html index 823ab1219aabf3d1e687ae3349b7eed38a497159..4dabb047456357b0edefcbb5a4e47a0869f28211 100644 --- a/src/app/pages/explorer-page/explorer-page.component.html +++ b/src/app/pages/explorer-page/explorer-page.component.html @@ -230,6 +230,25 @@ <div class="card-content quick-find"> <div class="field"> <div class="control"> + <div class="tile notification is-danger"> + <div class="align-vmiddle"> + <div class="digit"><i class="fa fa-fast-forward"></i></div> + <button (click)="analysis.startQuickAnalysis(true, selectedDataset)" + [disabled]="analysis.isLaunchingQuick()" + class="button is-white is-rounded"> + <span class="icon"> + <i class="fa fa-capsules" *ngIf="!analysis.isLaunchingQuick()"></i> + <i class="fa fa-spin fa-spinner" *ngIf="analysis.isLaunchingQuick()"></i> + </span> + <span> + Quick Find + </span> + </button> + </div> + </div> + <div class="divisor-rapid"> + — or — + </div> <div class="tile notification is-info"> <div class="align-vmiddle"> <div class="digit" *ngIf="analysis.getCount() == 0">1</div> @@ -242,7 +261,7 @@ <div class="tile notification is-info"> <div class="align-vmiddle"> <div class="digit">2</div> - <button (click)="analysis.startQuickAnalysis(selectedDataset.backendId)" + <button (click)="analysis.startQuickAnalysis(false, selectedDataset)" [disabled]="analysis.getCount() === 0 || analysis.isLaunchingQuick()" class="button is-white is-rounded"> <span class="icon"> diff --git a/src/app/pages/explorer-page/explorer-page.component.scss b/src/app/pages/explorer-page/explorer-page.component.scss index 1323942b7720d999a3d8ccdbb3a6f92de709a3cb..92874617b0bc7b3da85f3db2268524f2579ae69f 100644 --- a/src/app/pages/explorer-page/explorer-page.component.scss +++ b/src/app/pages/explorer-page/explorer-page.component.scss @@ -13,6 +13,12 @@ font-weight: bold; } } + + .divisor-rapid { + margin-top: -10px; + margin-bottom: 10px; + text-align: center; + } } .align-vmiddle {