Skip to content
Snippets Groups Projects
Commit b4f098e1 authored by Xiao Gui's avatar Xiao Gui
Browse files

bugfix: commonsense filter

parent e1c9d17d
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment