@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
791 lines (790 loc) • 33.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchFacets = exports.PHENOTYPE_FACET = exports.INTERPRO_FACET = exports.DISEASE_FACET = exports.GO_COMPONENT_FACET = exports.GO_PROCESS_FACET = exports.GO_FUNCTION_FACET = exports.ENZYME_CLASS_FACET = exports.CHEM_COMP_FACET = exports.ENTITY_NAME_FACET = exports.PFAM_FACET = exports.TAXONOMY_FACET = exports.ORGANISM_FACET = exports.LIGAND_OF_INTEREST_FACET = exports.LIGAND_FACET = exports.ECOD_FACET = exports.CATH_FACET = exports.SCOP_FACET = exports.RELEASE_DATE_FACET = exports.CHIMERIC_FACET = exports.TAXONOMY_COUNT_FACET = exports.METHODOLOGY_FACET = exports.RESOLUTION_FACET = exports.EXPERIMENTAL_METHOD_FACET = void 0;
const SearchMetadata_1 = require("@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchMetadata");
const SearchEnums_1 = require("@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchEnums");
const ChartConfigInterface_1 = require("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface");
const SearchQueryTools_1 = require("@rcsb/rcsb-search-tools/lib/SearchQueryTools/SearchQueryTools");
exports.EXPERIMENTAL_METHOD_FACET = {
id: "method",
title: "Experimental Method",
attributeName: "EXPERIMENTAL_METHOD_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.Exptl.Method.path,
chartType: ChartConfigInterface_1.ChartType.barplot,
contentType: "string",
chartConfig: {
mostPopulatedGroups: 3
},
facet: {
name: "EXPERIMENTAL_METHOD_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.Exptl.Method.path,
min_interval_population: 1
}
};
exports.RESOLUTION_FACET = {
id: "resolution",
title: "Resolution",
attributeName: "RESOLUTION_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.ResolutionCombined.path,
contentType: "number",
chartType: ChartConfigInterface_1.ChartType.histogram,
chartConfig: {
tickFormat: {
domAxis: (t) => {
if (parseInt(t.toString()) == 5)
return `> ${t}`;
if (parseInt(t.toString()) > 5)
return '';
return t.toString();
}
},
chartDisplayConfig: {
constHeight: 225
},
histogramBinIncrement: 0.5,
domainMinValue: 0,
domainMaxValue: 6,
axisLabel: "Angstroms",
tooltipText: (d) => {
if (d.x > 5)
return "> 5";
return `Resolution ${d.x - 0.25} - ${d.x + 0.25}`;
}
},
facetConfig: {
mergeDomainMaxValue: 5
},
facet: {
name: "RESOLUTION_FACET",
aggregation_type: SearchEnums_1.AggregationType.Histogram,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.ResolutionCombined.path,
interval: 0.5,
min_interval_population: 1,
}
};
exports.METHODOLOGY_FACET = {
id: "computed",
title: "Determination Methodology",
attributeName: "METHODOLOGY_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.StructureDeterminationMethodology.path,
chartType: ChartConfigInterface_1.ChartType.barplot,
contentType: "string",
chartConfig: {
mostPopulatedGroups: 3
},
facet: {
name: "METHODOLOGY_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.StructureDeterminationMethodology.path,
min_interval_population: 1
}
};
exports.TAXONOMY_COUNT_FACET = {
id: "taxonomy_count",
title: "Number of Source Taxonomies",
attributeName: "TAXONOMY_COUNT_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourceTaxonomyCount.path,
chartType: ChartConfigInterface_1.ChartType.barplot,
contentType: "string",
facetConfig: {
facetTransform: (bucket) => {
const out = [];
const wt = bucket.find(b => parseInt(b.label.toString()) == 1);
if (wt)
out.push({
label: "Single",
labelPath: ["Single"],
population: wt.population
});
const synthetic = bucket.find(b => parseInt(b.label.toString()) == 0);
if (synthetic)
out.push({
label: "None",
labelPath: ["None"],
population: synthetic.population
});
const chimeric = bucket.filter(b => parseInt(b.label.toString()) > 1);
if ((chimeric === null || chimeric === void 0 ? void 0 : chimeric.length) > 0)
out.push({
label: "Multiple",
labelPath: ["Multiple"],
population: chimeric.reduce((c, p) => c + p.population, 0)
});
return out;
},
bucketClickSearchQuery: (datum, data, e) => {
if (datum.x == "Single")
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.TAXONOMY_COUNT_FACET.attribute,
value: 1,
operator: SearchEnums_1.Operator.Equals,
service: SearchEnums_1.Service.Text
});
else if (datum.x == "None")
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.TAXONOMY_COUNT_FACET.attribute,
value: 0,
operator: SearchEnums_1.Operator.Equals,
service: SearchEnums_1.Service.Text
});
else
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.TAXONOMY_COUNT_FACET.attribute,
value: 1,
operator: SearchEnums_1.Operator.Greater,
service: SearchEnums_1.Service.Text
});
}
},
facet: {
name: "TAXONOMY_COUNT_FACET",
aggregation_type: SearchEnums_1.AggregationType.Histogram,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourceTaxonomyCount.path,
min_interval_population: 1,
interval: 1
}
};
exports.CHIMERIC_FACET = {
id: "chimeric",
title: "Biological Source",
attributeName: "CHIMERIC_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path,
chartType: ChartConfigInterface_1.ChartType.barplot,
contentType: "string",
facetConfig: {
facetTransform: (bucket) => {
const out = [];
const wt = bucket.find(b => b.label == 1);
if (wt)
out.push({
label: "Non-chimeric",
labelPath: ["Non-chimeric"],
population: wt.population
});
const synthetic = bucket.find(b => b.label == 0);
if (synthetic)
out.push({
label: "Synthetic",
labelPath: ["Synthetic"],
population: synthetic.population
});
const chimeric = bucket.filter(b => parseInt(b.label.toString()) > 1);
if ((chimeric === null || chimeric === void 0 ? void 0 : chimeric.length) > 0)
out.push({
label: "Chimeric",
labelPath: ["Chimeric"],
population: chimeric.reduce((c, p) => c + p.population, 0)
});
return out;
},
bucketClickSearchQuery: (datum, data, e) => {
if (datum.x == "Non-chimeric")
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.CHIMERIC_FACET.attribute,
value: 1,
operator: SearchEnums_1.Operator.Equals,
service: SearchEnums_1.Service.Text
});
else if (datum.x == "Synthetic")
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.CHIMERIC_FACET.attribute,
value: 0,
operator: SearchEnums_1.Operator.Equals,
service: SearchEnums_1.Service.Text
});
else
return (0, SearchQueryTools_1.buildAttributeQuery)({
attribute: exports.CHIMERIC_FACET.attribute,
value: 1,
operator: SearchEnums_1.Operator.Greater,
service: SearchEnums_1.Service.Text
});
}
},
facet: {
name: "CHIMERIC_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path,
min_interval_population: 1
}
};
exports.RELEASE_DATE_FACET = {
id: "release_date",
title: undefined,
attributeName: "RELEASE_DATE_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbAccessionInfo.InitialReleaseDate.path,
contentType: "date",
chartType: ChartConfigInterface_1.ChartType.histogram,
chartConfig: {
tickIncrement: {
origin: 1980,
increment: 10
},
tickFormat: {
domAxis: (t) => {
return t.toString().replace(",", "");
}
},
histogramBinIncrement: 1,
domainMinValue: 1970,
domainMaxValue: new Date().getFullYear() + 2,
axisLabel: "Year",
chartDisplayConfig: {
constHeight: 225
},
tooltipText: (d) => {
return `Release ${d.x - 0.5} - ${d.x + 0.5}`;
}
},
facet: {
name: "RELEASE_DATE_FACET",
aggregation_type: SearchEnums_1.AggregationType.DateHistogram,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbAccessionInfo.InitialReleaseDate.path,
interval: "year",
min_interval_population: 1
}
};
exports.SCOP_FACET = {
id: "scop_class",
title: "SCOP/SCOPe Domain",
attributeName: "SCOP_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path,
value: 'SCOP'
}
},
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals,
value: 5,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path
}
},
facets: [{
name: "SCOP_FACET",
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
aggregation_type: SearchEnums_1.AggregationType.Terms
}]
}]
}
};
exports.CATH_FACET = {
id: "cath_class",
title: "CATH Domain",
attributeName: "CATH_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path,
value: 'CATH'
}
},
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals,
value: 4,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path
}
},
facets: [{
name: "CATH_FACET",
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
aggregation_type: SearchEnums_1.AggregationType.Terms
}]
}]
}
};
exports.ECOD_FACET = {
id: "ecod_class",
title: "ECOD Domain",
attributeName: "ECOD_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path,
value: 'ECOD'
}
},
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals,
value: 4,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path
}
},
facets: [{
name: "ECOD_FACET",
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path,
aggregation_type: SearchEnums_1.AggregationType.Terms
}]
}]
}
};
exports.LIGAND_FACET = {
id: "ligands",
title: "Small Molecules",
attributeName: "LIGAND_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 20
},
facet: {
name: "LIGAND_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path,
min_interval_population: 1
}
};
exports.LIGAND_OF_INTEREST_FACET = {
id: "ligands",
title: "Ligands of Interest",
attributeName: "LIGAND_OF_INTEREST_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 20
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.Type.path,
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.Type.operator.ExactMatch,
value: "SUBJECT_OF_INVESTIGATION"
}
},
facets: [{
name: "LIGAND_OF_INTEREST_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.CompId.path,
min_interval_population: 1
}]
}
};
exports.ORGANISM_FACET = {
id: "organism",
title: "Organism",
attributeName: "ORGANISM_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiScientificName.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 9
},
facet: {
name: "ORGANISM_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiScientificName.path,
min_interval_population: 1
}
};
exports.TAXONOMY_FACET = {
id: "taxonomy",
title: "Taxonomy",
attributeName: "TAXONOMY_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiParentScientificName.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 5
},
facet: {
name: "TAXONOMY_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiParentScientificName.path,
min_interval_population: 1
}
};
exports.PFAM_FACET = {
id: "Pfam",
title: "PFAM Domain",
attributeName: "PFAM_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path,
value: 'Pfam'
}
},
facets: [{
name: "PFAM_FACET",
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
aggregation_type: SearchEnums_1.AggregationType.Terms
}]
}
};
exports.ENTITY_NAME_FACET = {
id: "entiy_names",
title: undefined,
attributeName: "ENTITY_NAME_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbPolymerNameCombined.Names.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 5
},
facet: {
name: "ENTITY_NAME_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbPolymerNameCombined.Names.path,
min_interval_population: 1
}
};
exports.CHEM_COMP_FACET = {
id: "chemp_comp",
title: "Chemical Component",
attributeName: "CHEM_COMP_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.ChemComp.Type.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 5
},
facet: {
name: "CHEM_COMP_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.ChemComp.Type.path,
min_interval_population: 1
}
};
exports.ENZYME_CLASS_FACET = {
id: "enzyme_class",
title: "Enzyme Classification",
attributeName: "ENZYME_CLASS_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Depth.operator.GreaterOrEqual,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Depth.path,
value: 3
}
},
facets: [{
name: "ENZYME_CLASS_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Name.path,
min_interval_population: 1
}]
}
};
exports.GO_FUNCTION_FACET = {
id: "go_function_class",
title: "GO Molecular Function",
attributeName: `GO_FUNCTION_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facetConfig: {
facetTransform: goFacetTransform
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path,
value: "GO"
}
},
facets: [{
name: "GO_FUNCTION_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
max_num_intervals: 1000,
min_interval_population: 1,
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path,
value: "molecular_function"
}
},
facets: [{
name: `GO_FUNCTION_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
aggregation_type: SearchEnums_1.AggregationType.Terms,
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path
}]
}]
}]
}
};
exports.GO_PROCESS_FACET = {
id: "go_process_class",
title: "GO Biological Process",
attributeName: `GO_PROCESS_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facetConfig: {
facetTransform: goFacetTransform
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path,
value: "GO"
}
},
facets: [{
name: "GO_PROCESS_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
max_num_intervals: 1000,
min_interval_population: 1,
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path,
value: "biological_process"
}
},
facets: [{
name: `GO_PROCESS_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
aggregation_type: SearchEnums_1.AggregationType.Terms,
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path
}]
}]
}]
}
};
exports.GO_COMPONENT_FACET = {
id: "go_component_class",
title: "GO Cellular Component",
attributeName: `GO_COMPONENT_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facetConfig: {
facetTransform: goFacetTransform
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path,
value: "GO"
}
},
facets: [{
name: "GO_COMPONENT_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
max_num_intervals: 1000,
min_interval_population: 1,
facets: [{
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path,
value: "cellular_component"
}
},
facets: [{
name: `GO_COMPONENT_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`,
aggregation_type: SearchEnums_1.AggregationType.Terms,
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path
}]
}]
}]
}
};
exports.DISEASE_FACET = {
id: "disease",
title: "Disease Association",
attributeName: "DISEASE_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.path,
value: "disease"
}
},
facets: [{
name: "DISEASE_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path
}]
}
};
exports.INTERPRO_FACET = {
id: "InterPro",
title: "InterPro Domain",
attributeName: "INTERPRO_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path,
value: 'InterPro'
}
},
facets: [{
name: "INTERPRO_FACET",
min_interval_population: 1,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path,
aggregation_type: SearchEnums_1.AggregationType.Terms
}]
}
};
exports.PHENOTYPE_FACET = {
id: "phenotype",
title: "Phenotype Association",
attributeName: "PHENOTYPE_FACET",
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path,
contentType: "string",
chartType: ChartConfigInterface_1.ChartType.barplot,
chartConfig: {
mostPopulatedGroups: 10
},
facet: {
filter: {
type: SearchEnums_1.Type.Terminal,
service: SearchEnums_1.Service.Text,
parameters: {
operator: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.operator.ExactMatch,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.path,
value: "phenotype"
}
},
facets: [{
name: "PHENOTYPE_FACET",
aggregation_type: SearchEnums_1.AggregationType.Terms,
attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path
}]
}
};
exports.SearchFacets = {
EXPERIMENTAL_METHOD_FACET: exports.EXPERIMENTAL_METHOD_FACET,
RESOLUTION_FACET: exports.RESOLUTION_FACET,
RELEASE_DATE_FACET: exports.RELEASE_DATE_FACET,
SCOP_FACET: exports.SCOP_FACET,
LIGAND_FACET: exports.LIGAND_FACET,
ORGANISM_FACET: exports.ORGANISM_FACET,
TAXONOMY_FACET: exports.TAXONOMY_FACET,
PFAM_FACET: exports.PFAM_FACET,
ENTITY_NAME_FACET: exports.ENTITY_NAME_FACET,
CHEM_COMP_FACET: exports.CHEM_COMP_FACET,
ECOD_FACET: exports.ECOD_FACET,
CATH_FACET: exports.CATH_FACET,
ENZYME_CLASS_FACET: exports.ENZYME_CLASS_FACET,
GO_FUNCTION_FACET: exports.GO_FUNCTION_FACET,
GO_PROCESS_FACET: exports.GO_PROCESS_FACET,
GO_COMPONENT_FACET: exports.GO_COMPONENT_FACET,
LIGAND_OF_INTEREST_FACET: exports.LIGAND_OF_INTEREST_FACET,
METHODOLOGY_FACET: exports.METHODOLOGY_FACET,
TAXONOMY_COUNT_FACET: exports.TAXONOMY_COUNT_FACET,
CHIMERIC_FACET: exports.CHIMERIC_FACET,
DISEASE_FACET: exports.DISEASE_FACET,
INTERPRO_FACET: exports.INTERPRO_FACET,
PHENOTYPE_FACET: exports.PHENOTYPE_FACET
};
function goFacetTransform(bucket, facetConfig) {
return bucket.map(d => (Object.assign(Object.assign({}, d), { label: d.labelPath[0] })));
}