UNPKG

molstar

Version:

A comprehensive macromolecular library.

99 lines 5.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.testQ = void 0; var tslib_1 = require("tslib"); var builder_1 = require("../mol-script/language/builder"); var compiler_1 = require("../mol-script/runtime/query/compiler"); var structure_1 = require("../mol-model/structure"); var model_1 = require("../cli/structure-info/model"); var symbol_1 = require("../mol-script/language/symbol"); var type_1 = require("../mol-script/language/type"); var parser_1 = require("../mol-script/language/parser"); var util = (0, tslib_1.__importStar)(require("util")); var symbols_1 = require("../mol-script/script/mol-script/symbols"); var expression_formatter_1 = require("../mol-script/language/expression-formatter"); var prop_1 = require("../extensions/pdbe/structure-quality-report/prop"); var node_fetch_1 = (0, tslib_1.__importDefault)(require("node-fetch")); var custom_property_1 = require("../mol-model/custom-property"); // import Examples from 'mol-script/script/mol-script/examples' // import { parseMolScript } from 'mol-script/script/mol-script/parser' // //import { compileAST } from 'mol-script/script/mol-script/compile'; // for (const e of Examples) { // const expr = parseMolScript(e.value)[0]; // console.log(e.name, util.inspect(expr, true, 10, true)); // } // const exprs = parseMolScript(`(sel.atom.atom-groups // :residue-test (= atom.auth_comp_id ALA) // ;; ho ho ho // :atom-test (set.has { _C _N } atom.el)) ; comm // ;; this is a comment // ((hi) (ho))`); // ;; :residue-test (= atom.label_comp_id REA) var exprs = (0, parser_1.parseMolScript)("(sel.atom.atom-groups\n :residue-test (> pdbe.structure-quality.issue-count 0)\n :atom-test (= atom.el _C))"); var tsp = (0, symbols_1.transpileMolScript)(exprs[0]); // console.log(util.inspect(exprs, true, 10, true)); console.log(util.inspect(tsp, true, 10, true)); console.log(expression_formatter_1.formatMolScript); console.log((0, expression_formatter_1.formatMolScript)(tsp)); // //console.log(expr); var expr = builder_1.MolScriptBuilder.core.math.add([1, 2, 3]); var compiled = (0, compiler_1.compile)(expr); var result = compiled(new structure_1.QueryContext(structure_1.Structure.Empty)); console.log(result); var CustomProp = (0, custom_property_1.CustomPropertyDescriptor)({ name: 'test_prop', cifExport: { prefix: '', categories: [] }, symbols: { residueIndex: compiler_1.QuerySymbolRuntime.Dynamic((0, symbol_1.CustomPropSymbol)('custom.test-prop', 'residue-index', type_1.Type.Num), function (ctx) { var e = ctx.element; // console.log(e.element, e.unit.model.atomicHierarchy.residueAtomSegments.index[e.element]) return e.unit.model.atomicHierarchy.residueAtomSegments.index[e.element]; }) } }); compiler_1.DefaultQueryRuntimeTable.addCustomProp(CustomProp); compiler_1.DefaultQueryRuntimeTable.addCustomProp(prop_1.StructureQualityReportProvider.descriptor); function testQ() { return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { var frame, structure, model, rawData, data, _a, _b, _c, expr, compiled, result; return (0, tslib_1.__generator)(this, function (_d) { switch (_d.label) { case 0: return [4 /*yield*/, (0, model_1.readCifFile)('e:/test/quick/1cbs_updated.cif')]; case 1: frame = _d.sent(); return [4 /*yield*/, (0, model_1.getModelsAndStructure)(frame)]; case 2: structure = (_d.sent()).structure; model = structure.models[0]; return [4 /*yield*/, (0, node_fetch_1.default)("https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry/" + model.entryId.toLowerCase())]; case 3: rawData = _d.sent(); _b = (_a = prop_1.StructureQualityReport).fromJson; _c = [model]; return [4 /*yield*/, rawData.json()]; case 4: data = _b.apply(_a, _c.concat([_d.sent()])); prop_1.StructureQualityReportProvider.set(model, { serverUrl: '' }, data); expr = builder_1.MolScriptBuilder.struct.generator.atomGroups({ 'atom-test': builder_1.MolScriptBuilder.core.rel.eq([ builder_1.MolScriptBuilder.struct.atomProperty.core.elementSymbol(), builder_1.MolScriptBuilder.es('C') ]), // 'residue-test': MolScriptBuilder.core.rel.eq([ // MolScriptBuilder.struct.atomProperty.macromolecular.label_comp_id(), // 'REA' // ]) 'residue-test': builder_1.MolScriptBuilder.core.rel.inRange([CustomProp.symbols.residueIndex.symbol(), 1, 5]) }); expr = tsp; compiled = (0, compiler_1.compile)(expr); result = compiled(new structure_1.QueryContext(structure)); console.log(result); return [2 /*return*/]; } }); }); } exports.testQ = testQ; testQ(); //# sourceMappingURL=mol-script.js.map