Skip to content

Commit 5a8b09f

Browse files
authored
Use appropriate genome-nexus url depending on study (#4787)
Use appropriate genome-nexus url depending on reference genome build
1 parent 4bcbe7e commit 5a8b09f

File tree

3 files changed

+43
-21
lines changed

3 files changed

+43
-21
lines changed

src/pages/groupComparison/GroupComparisonMutationMapperWrapper.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ import { LollipopTooltipCountInfo } from './LollipopTooltipCountInfo';
2222
import MutationMapperUserSelectionStore from 'shared/components/mutationMapper/MutationMapperUserSelectionStore';
2323
import styles from './styles.module.scss';
2424
import { saveOncoKbIconStyleToLocalStorage } from 'shared/lib/AnnotationColumnUtils';
25-
import { generateMutationIdByGeneAndProteinChange } from 'shared/lib/StoreUtils';
25+
import {
26+
generateMutationIdByGeneAndProteinChange,
27+
getGenomeBuildFromStudies,
28+
} from 'shared/lib/StoreUtils';
2629

2730
interface IGroupComparisonMutationMapperWrapperProps {
2831
store: GroupComparisonStore;
@@ -45,6 +48,9 @@ export default class GroupComparisonMutationMapperWrapper extends React.Componen
4548
}
4649

4750
@computed get mutationMapperToolStore() {
51+
const genomeBuild = getGenomeBuildFromStudies(
52+
this.props.store.studies.result
53+
);
4854
const store = new MutationMapperToolStore(
4955
this.props.store.filteredAndAnnotatedMutations.result,
5056
{
@@ -56,8 +62,10 @@ export default class GroupComparisonMutationMapperWrapper extends React.Componen
5662
.uniqueSampleKeyToTumorType.result,
5763
uniqueSampleKeyToCancerType: this.props.store
5864
.uniqueSampleKeyToCancerType.result,
65+
genomeBuild: genomeBuild,
5966
}
6067
);
68+
6169
return store;
6270
}
6371

src/pages/staticPages/tools/mutationMapper/MutationMapperTool.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,10 @@ export default class MutationMapperTool extends React.Component<
5959
@observable.ref lastParsedInputContent: string | undefined = undefined;
6060
@observable referenceGenomeSelection: string = REFERENCE_GENOME.grch37.NCBI;
6161

62-
private store: MutationMapperToolStore = new MutationMapperToolStore();
62+
private store: MutationMapperToolStore = new MutationMapperToolStore(
63+
undefined,
64+
{ genomeBuild: REFERENCE_GENOME.grch37.NCBI }
65+
);
6366

6467
constructor(props: IMutationMapperToolProps) {
6568
super(props);
@@ -73,9 +76,9 @@ export default class MutationMapperTool extends React.Component<
7376
getBrowserWindow().localStorage.getItem('referenceGenomeId') ===
7477
REFERENCE_GENOME.grch38.NCBI
7578
) {
76-
this.store.setGenomeNexusUrl(
77-
getServerConfig().genomenexus_url_grch38!
78-
);
79+
this.store = new MutationMapperToolStore(undefined, {
80+
genomeBuild: REFERENCE_GENOME.grch38.UCSC,
81+
});
7982
this.referenceGenomeSelection = REFERENCE_GENOME.grch38.NCBI;
8083
}
8184

src/pages/staticPages/tools/mutationMapper/MutationMapperToolStore.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ import { SiteError } from 'shared/model/appMisc';
6060
export default class MutationMapperToolStore {
6161
@observable mutationData: Partial<MutationInput>[] | undefined;
6262
@observable criticalErrors: Error[] = [];
63-
// if we use grch37(default), grch38GenomeNexusUrl will be undefined
64-
@observable grch38GenomeNexusUrl: string | undefined = undefined;
6563

6664
readonly genes = remoteData<Gene[]>(
6765
{
@@ -107,9 +105,15 @@ export default class MutationMapperToolStore {
107105
}
108106

109107
@computed get genomeNexusClient() {
110-
const client = this.grch38GenomeNexusUrl
111-
? new GenomeNexusAPI(this.grch38GenomeNexusUrl)
112-
: defaultGenomeNexusClient;
108+
let client = defaultGenomeNexusClient;
109+
if (
110+
this.mutationMapperStoreConfigOverride?.genomeBuild ===
111+
REFERENCE_GENOME.grch38.UCSC
112+
) {
113+
client = new GenomeNexusAPI(
114+
getServerConfig().genomenexus_url_grch38!
115+
);
116+
}
113117

114118
client.addErrorHandler(err => {
115119
eventBus.emit(
@@ -126,9 +130,15 @@ export default class MutationMapperToolStore {
126130
}
127131

128132
@computed get genomeNexusInternalClient() {
129-
const client = this.grch38GenomeNexusUrl
130-
? new GenomeNexusAPIInternal(this.grch38GenomeNexusUrl)
131-
: defaultGenomeNexusInternalClient;
133+
let client = defaultGenomeNexusInternalClient;
134+
if (
135+
this.mutationMapperStoreConfigOverride?.genomeBuild ===
136+
REFERENCE_GENOME.grch38.UCSC
137+
) {
138+
client = new GenomeNexusAPIInternal(
139+
getServerConfig().genomenexus_url_grch38!
140+
);
141+
}
132142

133143
client.addErrorHandler(err => {
134144
eventBus.emit(
@@ -349,9 +359,11 @@ export default class MutationMapperToolStore {
349359
{
350360
filterMutationsBySelectedTranscript: !this
351361
.hasInputWithProteinChanges,
352-
genomeBuild: this.grch38GenomeNexusUrl
353-
? REFERENCE_GENOME.grch38.UCSC
354-
: REFERENCE_GENOME.grch37.UCSC,
362+
genomeBuild:
363+
this
364+
.mutationMapperStoreConfigOverride
365+
?.genomeBuild ||
366+
REFERENCE_GENOME.grch37.UCSC,
355367
...this
356368
.mutationMapperStoreConfigOverride,
357369
},
@@ -446,13 +458,12 @@ export default class MutationMapperToolStore {
446458
);
447459
}
448460

449-
public setGenomeNexusUrl(grch38GenomeNexusUrl: string | undefined) {
450-
this.grch38GenomeNexusUrl = grch38GenomeNexusUrl;
451-
}
452-
453461
@autobind
454462
generateGenomeNexusHgvsgUrl(hgvsg: string) {
455-
return getGenomeNexusHgvsgUrl(hgvsg, this.grch38GenomeNexusUrl);
463+
return getGenomeNexusHgvsgUrl(
464+
hgvsg,
465+
this.genomeNexusClient.getDomain()
466+
);
456467
}
457468

458469
@cached @computed get pubMedCache() {

0 commit comments

Comments
 (0)