|
@@ -50,7 +50,7 @@ export function residueLabel(model: Model, rI: number) {
|
|
}
|
|
}
|
|
|
|
|
|
export function printSecStructure(model: Model) {
|
|
export function printSecStructure(model: Model) {
|
|
- console.log('Secondary Structure\n=============');
|
|
|
|
|
|
+ console.log('\nSecondary Structure\n=============');
|
|
const { residues } = model.atomicHierarchy;
|
|
const { residues } = model.atomicHierarchy;
|
|
const { type, key } = model.properties.secondaryStructure;
|
|
const { type, key } = model.properties.secondaryStructure;
|
|
|
|
|
|
@@ -76,41 +76,32 @@ export function printBonds(structure: Structure) {
|
|
if (!Unit.isAtomic(unit)) continue;
|
|
if (!Unit.isAtomic(unit)) continue;
|
|
|
|
|
|
const elements = unit.elements;
|
|
const elements = unit.elements;
|
|
- const { count, offset, neighbor } = unit.bonds;
|
|
|
|
|
|
+ const { a, b } = unit.bonds;
|
|
const { model } = unit;
|
|
const { model } = unit;
|
|
|
|
|
|
- if (!count) continue;
|
|
|
|
|
|
+ if (!a.length) continue;
|
|
|
|
|
|
- for (let j = 0; j < offset.length - 1; ++j) {
|
|
|
|
- const start = offset[j];
|
|
|
|
- const end = offset[j + 1];
|
|
|
|
-
|
|
|
|
- if (end <= start) continue;
|
|
|
|
-
|
|
|
|
- const aI = elements[j];
|
|
|
|
- for (let _bI = start; _bI < end; _bI++) {
|
|
|
|
- const bI = elements[neighbor[_bI]];
|
|
|
|
- console.log(`${atomLabel(model, aI)} -- ${atomLabel(model, bI)}`);
|
|
|
|
- }
|
|
|
|
|
|
+ for (let bI = 0, _bI = a.length; bI < _bI; bI++) {
|
|
|
|
+ const x = a[bI], y = b[bI];
|
|
|
|
+ if (x >= y) continue;
|
|
|
|
+ console.log(`${atomLabel(model, elements[x])} -- ${atomLabel(model, elements[y])}`);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
export function printSequence(model: Model) {
|
|
export function printSequence(model: Model) {
|
|
- console.log('Sequence\n=============');
|
|
|
|
|
|
+ console.log('\nSequence\n=============');
|
|
const { byEntityKey } = model.sequence;
|
|
const { byEntityKey } = model.sequence;
|
|
for (const key of Object.keys(byEntityKey)) {
|
|
for (const key of Object.keys(byEntityKey)) {
|
|
const seq = byEntityKey[+key];
|
|
const seq = byEntityKey[+key];
|
|
- console.log(`${seq.entityId} (${seq.num.value(0)}, ${seq.num.value(seq.num.rowCount - 1)}) (${seq.compId.value(0)}, ${seq.compId.value(seq.compId.rowCount - 1)})`);
|
|
|
|
- // for (let i = 0; i < seq.compId.rowCount; i++) {
|
|
|
|
- // console.log(`${seq.entityId} ${seq.num.value(i)} ${seq.compId.value(i)}`);
|
|
|
|
- // }
|
|
|
|
|
|
+ console.log(`${seq.entityId} (${seq.sequence.kind} ${seq.num.value(0)} (offset ${seq.sequence.offset}), ${seq.num.value(seq.num.rowCount - 1)}) (${seq.compId.value(0)}, ${seq.compId.value(seq.compId.rowCount - 1)})`);
|
|
|
|
+ console.log(`${seq.sequence.sequence}`);
|
|
}
|
|
}
|
|
console.log();
|
|
console.log();
|
|
}
|
|
}
|
|
|
|
|
|
export function printUnits(structure: Structure) {
|
|
export function printUnits(structure: Structure) {
|
|
- console.log('Units\n=============');
|
|
|
|
|
|
+ console.log('\nUnits\n=============');
|
|
const l = Element.Location();
|
|
const l = Element.Location();
|
|
|
|
|
|
for (const unit of structure.units) {
|
|
for (const unit of structure.units) {
|
|
@@ -140,10 +131,9 @@ export function printUnits(structure: Structure) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
export function printIHMModels(model: Model) {
|
|
export function printIHMModels(model: Model) {
|
|
if (!model.coarseHierarchy.isDefined) return false;
|
|
if (!model.coarseHierarchy.isDefined) return false;
|
|
- console.log('IHM Models\n=============');
|
|
|
|
|
|
+ console.log('\nIHM Models\n=============');
|
|
console.log(Table.formatToString(model.coarseHierarchy.models));
|
|
console.log(Table.formatToString(model.coarseHierarchy.models));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -151,10 +141,10 @@ async function run(mmcif: mmCIF_Database) {
|
|
const models = await Model.create({ kind: 'mmCIF', data: mmcif }).run();
|
|
const models = await Model.create({ kind: 'mmCIF', data: mmcif }).run();
|
|
const structure = Structure.ofModel(models[0]);
|
|
const structure = Structure.ofModel(models[0]);
|
|
printSequence(models[0]);
|
|
printSequence(models[0]);
|
|
- printIHMModels(models[0]);
|
|
|
|
|
|
+ //printIHMModels(models[0]);
|
|
printUnits(structure);
|
|
printUnits(structure);
|
|
- // printBonds(structure);
|
|
|
|
- printSecStructure(models[0]);
|
|
|
|
|
|
+ //printBonds(structure);
|
|
|
|
+ //printSecStructure(models[0]);
|
|
}
|
|
}
|
|
|
|
|
|
async function runDL(pdb: string) {
|
|
async function runDL(pdb: string) {
|