diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts index 509a4e6077a5a8112cd7842f5ec0b8d247689b3d..0dd97630af3ebb05e318bcd76a7f1de94080bf5c 100644 --- a/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts +++ b/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts @@ -69,8 +69,16 @@ export async function getContourLevel(provider: 'emdb' | 'pdbe', plugin: PluginC export async function getContourLevelEmdb(plugin: PluginContext, taskCtx: RuntimeContext, emdbId: string) { const emdbHeaderServer = plugin.config.get(PluginConfig.VolumeStreaming.EmdbHeaderServer); const header = await plugin.fetch({ url: `${emdbHeaderServer}/${emdbId.toUpperCase()}/header/${emdbId.toLowerCase()}.xml`, type: 'xml' }).runInContext(taskCtx); - const map = header.getElementsByTagName('map')[0]; - const contourLevel = parseFloat(map.getElementsByTagName('contourLevel')[0].textContent!); + const contours = header.getElementsByTagName('contour'); + + let primaryContour = contours[0]; + for (let i = 1; i < contours.length; i++) { + if (contours[i].getAttribute('primary') === 'true') { + primaryContour = contours[i]; + break; + } + } + const contourLevel = parseFloat(primaryContour.getElementsByTagName('level')[0].textContent!); return contourLevel; }