molstar
Version:
A comprehensive macromolecular library.
99 lines • 5.43 kB
JavaScript
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
;