ketcher-core
Version:
Web-based molecule sketcher
68 lines (67 loc) • 3.01 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;
private getComplimentaryChainIfNucleotide;
private reorderChainsPutSenseChainOrderInAccordanceAntisenseConnection;
getAllChainsWithConnectionInBlock(c: Chain): GrouppedChain[];
getChainByMonomer(monomer: BaseMonomer): Chain | undefined;
getComplimentaryChainsWithData(chain: Chain): ComplimentaryChainsWithData[];
getAntisenseChainsWithData(chain: Chain): {
antisenseChainsWithData: ComplimentaryChainsWithData[];
antisenseChainsStartIndexes: number[];
antisenseChainsStartIndexesMap: Map<number, ComplimentaryChainsWithData>;
antisenseNodesToIndexesMap: Map<number, {
node: SubChainNode;
chain: Chain;
nodeIndex: number;
}>;
};
getAlignedSenseAntisenseChainItems(chain: Chain): ITwoStrandedChainItem[];
getAlignedSenseAntisenseChains(): ITwoStrandedChainItem[][];
}