Skip to content
Snippets Groups Projects
Commit df6092c7 authored by David Sehnal's avatar David Sehnal
Browse files

refactoring custom props

parent 43932093
Branches
Tags
No related merge requests found
...@@ -33,7 +33,7 @@ export namespace StructureQualityReport { ...@@ -33,7 +33,7 @@ export namespace StructureQualityReport {
id: Column.Schema.int, id: Column.Schema.int,
...mmCIF_residueId_schema, ...mmCIF_residueId_schema,
pdbx_PDB_model_num: Column.Schema.int, pdbx_PDB_model_num: Column.Schema.int,
issue_group_id: Column.Schema.int issue_type_group_id: Column.Schema.int
}, },
pdbe_structure_quality_report_issue_types: { pdbe_structure_quality_report_issue_types: {
group_id: Column.Schema.int, group_id: Column.Schema.int,
...@@ -129,7 +129,7 @@ export namespace StructureQualityReport { ...@@ -129,7 +129,7 @@ export namespace StructureQualityReport {
const _structure_quality_report_issues_fields = CifWriter.fields<number, ReportExportContext['models'][0]>() const _structure_quality_report_issues_fields = CifWriter.fields<number, ReportExportContext['models'][0]>()
.index('id') .index('id')
.many(residueIdFields((i, d) => d.elements[i], { includeModelNum: true })) .many(residueIdFields((i, d) => d.elements[i], { includeModelNum: true }))
.int('group_id', (i, d) => d.groupId[i]) .int('issue_type_group_id', (i, d) => d.groupId[i])
.getFields(); .getFields();
interface ReportExportContext { interface ReportExportContext {
...@@ -208,18 +208,16 @@ function createIssueMapFromCif(modelData: Model, ...@@ -208,18 +208,16 @@ function createIssueMapFromCif(modelData: Model,
groupData: Table<typeof StructureQualityReport.Schema.pdbe_structure_quality_report_issue_types>): StructureQualityReport.IssueMap | undefined { groupData: Table<typeof StructureQualityReport.Schema.pdbe_structure_quality_report_issue_types>): StructureQualityReport.IssueMap | undefined {
const ret = new Map<ResidueIndex, string[]>(); const ret = new Map<ResidueIndex, string[]>();
const { label_entity_id, label_asym_id, auth_seq_id, pdbx_PDB_ins_code, issue_group_id, pdbx_PDB_model_num, _rowCount } = residueData; const { label_entity_id, label_asym_id, auth_seq_id, pdbx_PDB_ins_code, issue_type_group_id, pdbx_PDB_model_num, _rowCount } = residueData;
const groups = parseIssueTypes(groupData); const groups = parseIssueTypes(groupData);
for (let i = 0; i < _rowCount; i++) { for (let i = 0; i < _rowCount; i++) {
if (pdbx_PDB_model_num.value(i) !== modelData.modelNum) continue; if (pdbx_PDB_model_num.value(i) !== modelData.modelNum) continue;
const idx = modelData.atomicHierarchy.index.findResidue(label_entity_id.value(i), label_asym_id.value(i), auth_seq_id.value(i), pdbx_PDB_ins_code.value(i)); const idx = modelData.atomicHierarchy.index.findResidue(label_entity_id.value(i), label_asym_id.value(i), auth_seq_id.value(i), pdbx_PDB_ins_code.value(i));
ret.set(idx, groups.get(issue_group_id.value(i))!); ret.set(idx, groups.get(issue_type_group_id.value(i))!);
} }
console.log(ret);
return IndexedCustomProperty.fromResidueMap(ret); return IndexedCustomProperty.fromResidueMap(ret);
} }
......
...@@ -34,22 +34,28 @@ function wrapFile(fn: string) { ...@@ -34,22 +34,28 @@ function wrapFile(fn: string) {
return w; return w;
} }
const basePath = path.join(__dirname, '..', '..', '..', '..') export const basePath = path.join(__dirname, '..', '..', '..', '..')
const examplesPath = path.join(basePath, 'examples') export const examplesPath = path.join(basePath, 'examples')
const outPath = path.join(basePath, 'build', 'test') export const outPath = path.join(basePath, 'build', 'test')
if (!fs.existsSync(outPath)) fs.mkdirSync(outPath); if (!fs.existsSync(outPath)) fs.mkdirSync(outPath);
async function run() { async function run() {
try { try {
// const testFile = '1crn.cif' // const testFile = '1crn.cif'
// const testFile = '1grm_updated.cif'
// const testFile = 'C:/Projects/mol-star/molstar-proto/build/test/in/1grm_updated.cif'
// const request = createJob({
// entryId: testFile,
// queryName: 'full',
// queryParams: { },
// });
const testFile = '1grm_updated.cif' const testFile = '1grm_updated.cif'
//const testFile = 'C:/Projects/mol-star/molstar-proto/build/test/1grm_updated.cif'
const request = createJob({ const request = createJob({
entryId: path.join(examplesPath, testFile), entryId: path.join(examplesPath, testFile),
queryName: 'full', queryName: 'full',
queryParams: { }, queryParams: { }
// options: { modelNums: [ 2, 3 ] }
}); });
// const request = createJob({ // const request = createJob({
// entryId: path.join(examplesPath, testFile), // entryId: path.join(examplesPath, testFile),
// queryName: 'atoms', // queryName: 'atoms',
...@@ -67,6 +73,7 @@ async function run() { ...@@ -67,6 +73,7 @@ async function run() {
// }); // });
const encoder = await resolveJob(request); const encoder = await resolveJob(request);
const writer = wrapFile(path.join(outPath, testFile)); const writer = wrapFile(path.join(outPath, testFile));
// const writer = wrapFile(path.join(outPath, '1grm_test.cif'));
encoder.writeTo(writer); encoder.writeTo(writer);
writer.end(); writer.end();
} catch (e) { } catch (e) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment