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

mol-model: mmCIF export omit symmetry/asm related categories for "generated" structures

parent c91b826f
No related branches found
No related tags found
No related merge requests found
...@@ -43,13 +43,14 @@ export function getUniqueEntityIndicesFromStructures(structures: Structure[]): R ...@@ -43,13 +43,14 @@ export function getUniqueEntityIndicesFromStructures(structures: Structure[]): R
return ret.array; return ret.array;
} }
export function copy_mmCif_category(name: keyof mmCIF_Schema, condition?: (model: Model) => boolean): CifWriter.Category<CifExportContext> { export function copy_mmCif_category(name: keyof mmCIF_Schema, condition?: (structure: Structure) => boolean): CifWriter.Category<CifExportContext> {
return { return {
name, name,
instance({ structures }) { instance({ structures }) {
if (condition && !condition(structures[0])) return CifWriter.Category.Empty;
const model = structures[0].model; const model = structures[0].model;
if (model.sourceData.kind !== 'mmCIF') return CifWriter.Category.Empty; if (model.sourceData.kind !== 'mmCIF') return CifWriter.Category.Empty;
if (condition && !condition(model)) return CifWriter.Category.Empty;
const table = model.sourceData.data[name]; const table = model.sourceData.data[name];
if (!table || !table._rowCount) return CifWriter.Category.Empty; if (!table || !table._rowCount) return CifWriter.Category.Empty;
......
...@@ -43,6 +43,10 @@ const _entity: CifCategory<CifExportContext> = { ...@@ -43,6 +43,10 @@ const _entity: CifCategory<CifExportContext> = {
} }
} }
function isWithoutSymmetry(structure: Structure) {
return structure.units.every(u => u.conformation.operator.isIdentity)
}
const Categories = [ const Categories = [
// Basics // Basics
copy_mmCif_category('entry'), copy_mmCif_category('entry'),
...@@ -50,13 +54,13 @@ const Categories = [ ...@@ -50,13 +54,13 @@ const Categories = [
_entity, _entity,
// Symmetry // Symmetry
copy_mmCif_category('cell'), copy_mmCif_category('cell', isWithoutSymmetry),
copy_mmCif_category('symmetry'), copy_mmCif_category('symmetry', isWithoutSymmetry),
// Assemblies // Assemblies
copy_mmCif_category('pdbx_struct_assembly'), copy_mmCif_category('pdbx_struct_assembly', isWithoutSymmetry),
copy_mmCif_category('pdbx_struct_assembly_gen'), copy_mmCif_category('pdbx_struct_assembly_gen', isWithoutSymmetry),
copy_mmCif_category('pdbx_struct_oper_list'), copy_mmCif_category('pdbx_struct_oper_list', isWithoutSymmetry),
// Secondary structure // Secondary structure
_struct_conf, _struct_conf,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment