ketcher-core
Version:
Web-based molecule sketcher
58 lines (57 loc) • 2.6 kB
TypeScript
import { Chain } from "./Chain";
import { AmbiguousMonomer, BaseMonomer, Chem, Peptide, Phosphate, RNABase, SubChainNode, Sugar, UnresolvedMonomer, UnsplitNucleotide } from "./..";
import { BaseSubChain } from "./BaseSubChain";
import { BackBoneSequenceNode } from "../BackBoneSequenceNode";
export interface ComplimentaryChainsWithData {
complimentaryChain: Chain;
chain: Chain;
firstConnectedNode: SubChainNode;
firstConnectedComplimentaryNode: SubChainNode;
chainIdxConnection: number;
}
export declare type GrouppedChain = {
group: number;
chain: Chain;
};
export interface ITwoStrandedChainItem {
senseNode?: SubChainNode | BackBoneSequenceNode;
senseNodeIndex: number;
chain: Chain;
antisenseNode?: SubChainNode | BackBoneSequenceNode;
antisenseNodeIndex?: number;
antisenseChain?: Chain;
}
export declare class ChainsCollection {
chains: Chain[];
get monomerToChain(): Map<BaseMonomer, Chain>;
get monomerToNode(): Map<BaseMonomer, SubChainNode>;
rearrange(): void;
add(chain: Chain): this;
static fromMonomers(monomers: BaseMonomer[]): ChainsCollection;
static getFirstMonomersInChains(monomers: BaseMonomer[], MonomerTypes?: Array<typeof Peptide | typeof Chem | typeof Phosphate | typeof Sugar | typeof RNABase | typeof UnresolvedMonomer | typeof UnsplitNucleotide | typeof AmbiguousMonomer>): BaseMonomer[][];
private static getFirstMonomersInMiddleOfChains;
get firstNode(): SubChainNode;
private static getFirstMonomersInRegularChains;
private static getFirstMonomersInCycledChains;
private static getMonomerWithLowerCoordsFromMonomerList;
get lastNode(): SubChainNode;
get length(): number;
forEachNode(forEachCallback: (params: {
chainIndex: number;
subChainIndex: number;
nodeIndex: number;
nodeIndexOverall: number;
node: SubChainNode;
subChain: BaseSubChain;
chain: Chain;
}) => void): void;
private getFirstComplimentaryMonomer;
private findCycledComplimentaryChains;
getComplimentaryChainIfNucleotide(node: SubChainNode, monomerToChain: Map<BaseMonomer, Chain>, monomerToNode: Map<BaseMonomer, SubChainNode>): {
complimentaryChain: Chain | undefined;
complimentaryNode: SubChainNode | undefined;
};
private reorderChainsPutSenseChainOrderInAccordanceAntisenseConnection;
getAllChainsWithConnectionInBlock(c: Chain): GrouppedChain[];
getComplimentaryChainsWithData(chain: Chain): ComplimentaryChainsWithData[];
}