From b4f098e11c5746fe4980d5a6d7ab9ad2ff99a4fa Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Fri, 18 Oct 2019 12:55:15 +0200 Subject: [PATCH] bugfix: commonsense filter --- deploy/datasets/query.js | 4 ++-- deploy/datasets/supplements/commonSense.js | 26 +++++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/deploy/datasets/query.js b/deploy/datasets/query.js index 83986048b..6dd7876b0 100644 --- a/deploy/datasets/query.js +++ b/deploy/datasets/query.js @@ -3,7 +3,7 @@ const request = require('request') const URL = require('url') const path = require('path') const archiver = require('archiver') -const { commonSenseDsFilter } = require('./supplements/commonSense') +const { getCommonSenseDsFilter } = require('./supplements/commonSense') const { getPreviewFile, hasPreview } = require('./supplements/previewFile') const { init: kgQueryUtilInit, getUserKGRequestParam } = require('./util') @@ -183,7 +183,7 @@ const filterByPRName = ({ parcellationName = null, dataset = {parcellationAtlas: : (dataset.parcellationAtlas || []).some(({ name }) => name === parcellationName) const filter = (datasets = [], { templateName, parcellationName }) => datasets - .filter(ds => commonSenseDsFilter({ ds, templateName, parcellationName })) + .filter(getCommonSenseDsFilter({ templateName, parcellationName })) .filter(ds => { if (/infant/.test(ds.name)) return false diff --git a/deploy/datasets/supplements/commonSense.js b/deploy/datasets/supplements/commonSense.js index 42e4f30f5..404617f8f 100644 --- a/deploy/datasets/supplements/commonSense.js +++ b/deploy/datasets/supplements/commonSense.js @@ -34,7 +34,7 @@ const mouseParcellationSet = new Set([ 'Allen Mouse Common Coordinate Framework v3 2015' ]) -const dsIsHuman = ({ds}) => ds && ds.species.some(species => /homo\ sapiens/i.test(species)) +const dsIsHuman = ({ ds }) => ds && ds.species.some(species => /homo\ sapiens/i.test(species)) const dsIsRat = ({ ds }) => ds && ds.species.some(species => /rattus\ norvegicus/i.test(species)) const dsIsMouse = ({ ds }) => ds && ds.species.some(species => /mus\ musculus/i.test(species)) @@ -50,7 +50,23 @@ const queryIsHuman = ({ templateName, parcellationName }) => (templateName && humanTemplateSet.has(templateName)) || (parcellationName && humanParcellationSet.has(parcellationName)) -exports.commonSenseDsFilter = ({ ds , templateName, parcellationName}) => - (queryIsHuman({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsMouse({ ds })) - || (queryIsMouse({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsHuman({ ds })) - || (queryIsRat({ templateName, parcellationName }) && !dsIsMouse({ ds }) && !dsIsHuman({ ds })) +exports.getCommonSenseDsFilter = ({ templateName, parcellationName }) => { + const trueFilter = queryIsHuman({ templateName, parcellationName }) + ? dsIsHuman + : queryIsMouse({ templateName, parcellationName }) + ? dsIsMouse + : queryIsRat({ templateName, parcellationName }) + ? dsIsRat + : null + + const falseFilters = queryIsHuman({ templateName, parcellationName }) + ? [dsIsMouse, dsIsRat] + : queryIsMouse({ templateName, parcellationName }) + ? [dsIsHuman, dsIsRat] + : queryIsRat({ templateName, parcellationName }) + ? [dsIsMouse, dsIsHuman] + : [] + return ds => trueFilter + ? trueFilter({ ds }) || (falseFilters.every(filterFn => !filterFn({ ds }))) + : false +} -- GitLab