「pdbFile(API)」の版間の差分
(→定数) |
|||
行1: | 行1: | ||
− | DataManip/'''pdbFile'''は[[PDB]] | + | DataManip/'''pdbFile'''は[[PDB]]ファイルを取り扱うための[[API]]です。 |
== 定数 == | == 定数 == | ||
− | === [[PDB]] | + | === [[PDB]]ファイルでの構文 === |
+ | ==== 文字数定義 ==== | ||
#define PDB_FILE_RECORD_FULL_LENGTH (80) | #define PDB_FILE_RECORD_FULL_LENGTH (80) | ||
#define PDB_FILE_RECORD_START (0) | #define PDB_FILE_RECORD_START (0) | ||
行38: | 行39: | ||
#define RESIDUE_THREECHAR_MODE (3) | #define RESIDUE_THREECHAR_MODE (3) | ||
− | === | + | ==== 文字列定義 ==== |
#define pdbRecordAtom ("ATOM ") | #define pdbRecordAtom ("ATOM ") | ||
#define pdbRecordHeteroAtom ("HETATM") | #define pdbRecordHeteroAtom ("HETATM") | ||
行45: | 行46: | ||
#define pdbRecordTurn ("TURN ") | #define pdbRecordTurn ("TURN ") | ||
#define pdbRecordEnd ("END ") | #define pdbRecordEnd ("END ") | ||
+ | |||
+ | === 二次構造 === | ||
+ | ==== 二次構造のモード ==== | ||
+ | typedef enum pdbFileSecondaryStructureMode { | ||
+ | pdbFileSecondaryStructureModeNo = 0, | ||
+ | pdbFileSecondaryStructureModeHelix = 1, | ||
+ | pdbFileSecondaryStructureModeSheet = 2, | ||
+ | pdbFileSecondaryStructureModeTurn = 3 | ||
+ | } pdbFileSecondaryStructureMode; | ||
+ | |||
+ | ==== ヘリックス構造 ==== | ||
+ | typedef enum pdbSecondaryStructureHelixClass { | ||
+ | HelixClassRightHandedAlpha = 1, | ||
+ | HelixClassRightHandedOmega = 2, | ||
+ | HelixClassRightHandedPi = 3, | ||
+ | HelixClassRightHandedGammda= 4, | ||
+ | HelixClassRightHanded310 = 5, | ||
+ | HelixClassLeftHandedAlpha = 6, | ||
+ | HelixClassLeftHandedOmega = 7, | ||
+ | HelixClassLeftHandedGammda = 9, | ||
+ | HelixClassPolyProline = 10, | ||
+ | } pdbSecondaryStructureHelixClass; | ||
== 構造体 == | == 構造体 == | ||
+ | === PDBファイル === | ||
+ | 最上位の構造体です。[[PDB]]ファイルとの読み書きでも使用します。 | ||
+ | typedef struct pdbFile { | ||
+ | pdbRecord* top; | ||
+ | pdbRecord* PDB; | ||
+ | pdbFileParaTypeInteger nAtom; | ||
+ | pdbFileSecondaryStructure second; | ||
+ | } pdbFile; | ||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <th>メンバ</th> | ||
+ | <th>説明</th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>top</td> | ||
+ | <td>先頭のPDBデータ(ポインタ)</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>PDB</td> | ||
+ | <td>現在のPDBデータ(ポインタ)</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>nAtom</td> | ||
+ | <td>原子情報数</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>second</td> | ||
+ | <td>二次構造データ</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | === PDBデータ === | ||
+ | [[PDB]]データが格納されているリスト構造をしている構造体です。各要素がPDBファイル一行分のデータに対応しています。 | ||
+ | typedef struct pdbRecord pdbRecord; | ||
+ | |||
+ | struct pdbRecord { | ||
+ | pdbFileParaTypeCharacter FullRecord[PDB_FILE_RECORD_FULL_LENGTH+1]; | ||
+ | |||
+ | pdbFileParaTypeCharacter Record[PDB_FILE_RECORD_LENGTH+1]; | ||
+ | |||
+ | /* ATOM and HETATM Record */ | ||
+ | pdbFileParaTypeInteger AtomSerialNumber; | ||
+ | pdbFileParaTypeCharacter AtomName[PDB_FILE_ATOM_NAME_LENGTH+1]; | ||
+ | pdbFileParaTypeCharacter LocationIndicator; | ||
+ | pdbFileParaTypeCharacter ResidueName[PDB_FILE_RESIDUE_LENGTH+1]; | ||
+ | pdbFileParaTypeCharacter ChainIdentifier; | ||
+ | pdbFileParaTypeInteger ResidueSequenceNumber; | ||
+ | pdbFileParaTypeCharacter InsertionCode; | ||
+ | pdbCoord Coord; | ||
+ | pdbFileParaTypeReal Occupancy; | ||
+ | pdbFileParaTypeReal TemperatureFactor; | ||
+ | pdbFileParaTypeInteger FootnoteNumber; | ||
+ | pdbFileParaTypeCharacter Footnote[PDB_FILE_FOOTNOTE_LENGTH+1]; | ||
+ | |||
+ | pdbRecord* prev; | ||
+ | pdbRecord* next; | ||
+ | }; | ||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <th>メンバ</th> | ||
+ | <th>説明</th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>FullRecord</td> | ||
+ | <td>一行分のPDBデータ</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>Record</td> | ||
+ | <td>原子情報としての一行分のPDBデータ</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>AtomSerialNumber</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>AtomName</td> | ||
+ | <td>原子名</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>LocationIndicator</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>ResidueName</td> | ||
+ | <td>残基名</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>ChainIdentifier</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>ResidueSequenceNumber</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>InsertionCode</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>Coord</td> | ||
+ | <td>原子の座標</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>Occupancy</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>TemperatureFactor</td> | ||
+ | <td>温度因子</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>FootnoteNumber</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>Footnote</td> | ||
+ | <td></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>prev</td> | ||
+ | <td>前データ</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>next</td> | ||
+ | <td>次データ</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
typedef char pdbFileParaTypeCharacter; | typedef char pdbFileParaTypeCharacter; | ||
typedef long pdbFileParaTypeInteger; | typedef long pdbFileParaTypeInteger; | ||
行63: | 行216: | ||
} pdbCoord; | } pdbCoord; | ||
− | + | === 二次構造 === | |
− | + | typedef struct pdbFileSecondaryStructure { | |
− | + | int nSecondaryStructure; | |
− | + | pdbFileSecondaryStructureRecord* top; | |
− | + | pdbFileSecondaryStructureRecord* SecondaryStructure; | |
− | + | } pdbFileSecondaryStructure; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | } | + | |
+ | ==== ヘリックス構造 ==== | ||
typedef struct pdbSecondaryStructureHelix { | typedef struct pdbSecondaryStructureHelix { | ||
int serNum; /* Serial Number */ | int serNum; /* Serial Number */ | ||
行94: | 行243: | ||
} pdbSecondaryStructureHelix; | } pdbSecondaryStructureHelix; | ||
+ | ==== シート構造 ==== | ||
typedef struct pdbSecondaryStructureSheet { | typedef struct pdbSecondaryStructureSheet { | ||
int strand; /* Strand number which starts 1 for eache strand wihtin a sheet and increases by one */ | int strand; /* Strand number which starts 1 for eache strand wihtin a sheet and increases by one */ | ||
行125: | 行275: | ||
char prevICode; /* Registration. Insertion code in current strand */ | char prevICode; /* Registration. Insertion code in current strand */ | ||
}pdbSecondaryStructureSheet; | }pdbSecondaryStructureSheet; | ||
− | + | ||
+ | ==== ターン構造 ==== | ||
typedef struct pdbSecondaryStructureTurn { | typedef struct pdbSecondaryStructureTurn { | ||
int serNum; /* Serial Number */ | int serNum; /* Serial Number */ | ||
行159: | 行310: | ||
char* comment; | char* comment; | ||
}pdbSecondaryStructureNo; | }pdbSecondaryStructureNo; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
typedef struct pdbFileSecondaryStructureRecord pdbFileSecondaryStructureRecord; | typedef struct pdbFileSecondaryStructureRecord pdbFileSecondaryStructureRecord; | ||
行178: | 行322: | ||
pdbFileSecondaryStructureRecord* next; | pdbFileSecondaryStructureRecord* next; | ||
}; | }; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== API == | == API == |
2014年10月6日 (月) 05:34時点における版
DataManip/pdbFileはPDBファイルを取り扱うためのAPIです。
定数
PDBファイルでの構文
文字数定義
#define PDB_FILE_RECORD_FULL_LENGTH (80) #define PDB_FILE_RECORD_START (0) #define PDB_FILE_RECORD_LENGTH (6) #define PDB_FILE_ATOM_NUMBER_START (6) #define PDB_FILE_ATOM_NUMBER_LENGTH (5) #define PDB_FILE_ATOM_NAME_START (12) #define PDB_FILE_ATOM_NAME_LENGTH (4) #define PDB_FILE_LOCATION_START (16) #define PDB_FILE_LOCATION_LENGTH (1) #define PDB_FILE_RESIDUE_START (17) #define PDB_FILE_RESIDUE_LENGTH (3) #define PDB_FILE_CHAIN_IDENT_START (21) #define PDB_FILE_CHAIN_IDENT_LENGTH (1) #define PDB_FILE_RESNUM_START (22) #define PDB_FILE_RESNUM_LENGTH (4) #define PDB_FILE_INSERTION_START (26) #define PDB_FILE_INSERTION_LENGTH (1) #define PDB_FILE_X_START (30) #define PDB_FILE_X_LENGTH (8) #define PDB_FILE_Y_START (38) #define PDB_FILE_Y_LENGTH (8) #define PDB_FILE_Z_START (46) #define PDB_FILE_Z_LENGTH (8) #define PDB_FILE_OCCUPANCY_START (54) #define PDB_FILE_OCCUPANCY_LENGTH (6) #define PDB_FILE_TEMPERATURE_START (60) #define PDB_FILE_TEMPERATURE_LENGTH (6) #define PDB_FILE_FOOT_START (67) #define PDB_FILE_FOOT_LENGTH (3) #define PDB_FILE_FOOTNOTE_START (70) #define PDB_FILE_FOOTNOTE_LENGTH (10) #define MAX_RESIDUE_NUMBER (20) #define RESIDUE_ONECHAR_MODE (1) #define RESIDUE_THREECHAR_MODE (3)
文字列定義
#define pdbRecordAtom ("ATOM ") #define pdbRecordHeteroAtom ("HETATM") #define pdbRecordHelix ("HELIX ") #define pdbRecordSheet ("SHEET ") #define pdbRecordTurn ("TURN ") #define pdbRecordEnd ("END ")
二次構造
二次構造のモード
typedef enum pdbFileSecondaryStructureMode { pdbFileSecondaryStructureModeNo = 0, pdbFileSecondaryStructureModeHelix = 1, pdbFileSecondaryStructureModeSheet = 2, pdbFileSecondaryStructureModeTurn = 3 } pdbFileSecondaryStructureMode;
ヘリックス構造
typedef enum pdbSecondaryStructureHelixClass { HelixClassRightHandedAlpha = 1, HelixClassRightHandedOmega = 2, HelixClassRightHandedPi = 3, HelixClassRightHandedGammda= 4, HelixClassRightHanded310 = 5, HelixClassLeftHandedAlpha = 6, HelixClassLeftHandedOmega = 7, HelixClassLeftHandedGammda = 9, HelixClassPolyProline = 10, } pdbSecondaryStructureHelixClass;
構造体
PDBファイル
最上位の構造体です。PDBファイルとの読み書きでも使用します。
typedef struct pdbFile { pdbRecord* top; pdbRecord* PDB; pdbFileParaTypeInteger nAtom; pdbFileSecondaryStructure second; } pdbFile;
メンバ | 説明 |
---|---|
top | 先頭のPDBデータ(ポインタ) |
PDB | 現在のPDBデータ(ポインタ) |
nAtom | 原子情報数 |
second | 二次構造データ |
PDBデータ
PDBデータが格納されているリスト構造をしている構造体です。各要素がPDBファイル一行分のデータに対応しています。
typedef struct pdbRecord pdbRecord; struct pdbRecord { pdbFileParaTypeCharacter FullRecord[PDB_FILE_RECORD_FULL_LENGTH+1]; pdbFileParaTypeCharacter Record[PDB_FILE_RECORD_LENGTH+1]; /* ATOM and HETATM Record */ pdbFileParaTypeInteger AtomSerialNumber; pdbFileParaTypeCharacter AtomName[PDB_FILE_ATOM_NAME_LENGTH+1]; pdbFileParaTypeCharacter LocationIndicator; pdbFileParaTypeCharacter ResidueName[PDB_FILE_RESIDUE_LENGTH+1]; pdbFileParaTypeCharacter ChainIdentifier; pdbFileParaTypeInteger ResidueSequenceNumber; pdbFileParaTypeCharacter InsertionCode; pdbCoord Coord; pdbFileParaTypeReal Occupancy; pdbFileParaTypeReal TemperatureFactor; pdbFileParaTypeInteger FootnoteNumber; pdbFileParaTypeCharacter Footnote[PDB_FILE_FOOTNOTE_LENGTH+1]; pdbRecord* prev; pdbRecord* next; };
メンバ | 説明 |
---|---|
FullRecord | 一行分のPDBデータ |
Record | 原子情報としての一行分のPDBデータ |
AtomSerialNumber | |
AtomName | 原子名 |
LocationIndicator | |
ResidueName | 残基名 |
ChainIdentifier | |
ResidueSequenceNumber | |
InsertionCode | |
Coord | 原子の座標 |
Occupancy | |
TemperatureFactor | 温度因子 |
FootnoteNumber | |
Footnote | |
prev | 前データ |
next | 次データ |
typedef char pdbFileParaTypeCharacter; typedef long pdbFileParaTypeInteger; typedef float pdbFileParaTypeReal;
typedef struct residueName { char residueName3[4]; char residueName1[2]; } residueName;
PDBファイルの座標
typedef struct pdbCoord { pdbFileParaTypeReal x; pdbFileParaTypeReal y; pdbFileParaTypeReal z; } pdbCoord;
二次構造
typedef struct pdbFileSecondaryStructure { int nSecondaryStructure; pdbFileSecondaryStructureRecord* top; pdbFileSecondaryStructureRecord* SecondaryStructure; } pdbFileSecondaryStructure;
ヘリックス構造
typedef struct pdbSecondaryStructureHelix { int serNum; /* Serial Number */ char* helixID; /* HelixID : Three alpahnumeric characters */ /* informtion for the initial residue */ char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ char initChainID; /* Chain identifier */ int initSeqNum; /* Sequence number of the initial residue */ char initICode; /* informtion for the terminal residue */ char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ char endChainID; /* Chain identifier */ int endSeqNum; /* Sequence number of the initial residue */ char endICode; pdbSecondaryStructureHelixClass helixClass; char* comment; int length; } pdbSecondaryStructureHelix;
シート構造
typedef struct pdbSecondaryStructureSheet { int strand; /* Strand number which starts 1 for eache strand wihtin a sheet and increases by one */ char* sheetID; /* Sheet ID */ int numStrands; /* Number of strands in sheet */ /* initial residue */ char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ char initChainID; /* Chain identifier */ int initSeqNum; /* Sequence number of the initial residue */ char initICode; /* informtion for the terminal residue */ char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ char endChainID; /* Chain identifier */ int endSeqNum; /* Sequence number of the initial residue */ char endICode; int sense; /* 0: first strand, 1: parallel, -1: anti-paralle */ char* curAtom; /* Registration. Atom name in current strand */ char* curResName; /* Registration. Residue name in current strand */ char curChainID; /* Registration. Chain ID in current strand */ int curResSeq; /* Registration. Res sequence in current strand */ char curICode; /* Registration. Insertion code in current strand */ char* prevAtom; /* Registration. Atom name in current strand */ char* prevResName; /* Registration. Residue name in current strand */ char prevChainID; /* Registration. Chain ID in current strand */ int prevResSeq; /* Registration. Res sequence in current strand */ char prevICode; /* Registration. Insertion code in current strand */ }pdbSecondaryStructureSheet;
ターン構造
typedef struct pdbSecondaryStructureTurn { int serNum; /* Serial Number */ char* turnID; /* Turn ID : Three alpahnumeric characters */ /* informtion for the initial residue */ char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ char initChainID; /* Chain identifier */ int initSeqNum; /* Sequence number of the initial residue */ char initICode; /* informtion for the terminal residue */ char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ char endChainID; /* Chain identifier */ int endSeqNum; /* Sequence number of the initial residue */ char endICode; char* comment; }pdbSecondaryStructureTurn;
typedef struct pdbSecondaryStructureNo { int serNum; /* Serial Number */ char* noID; /* Turn ID : Three alpahnumeric characters */ /* informtion for the initial residue */ char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ char initChainID; /* Chain identifier */ int initSeqNum; /* Sequence number of the initial residue */ char initICode; /* informtion for the terminal residue */ char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ char endChainID; /* Chain identifier */ int endSeqNum; /* Sequence number of the initial residue */ char endICode; char* comment; }pdbSecondaryStructureNo;
typedef struct pdbFileSecondaryStructureRecord pdbFileSecondaryStructureRecord; struct pdbFileSecondaryStructureRecord { pdbFileSecondaryStructureMode mode; pdbSecondaryStructureHelix* helix; pdbSecondaryStructureSheet* sheet; pdbSecondaryStructureTurn* turn; pdbSecondaryStructureNo* no; pdbFileSecondaryStructureRecord* prev; pdbFileSecondaryStructureRecord* next; };
API
ファイル読み出し(pdbFileRead)
ファイルfptから読み出したデータをpdbへ格納します。
extern void pdbFileRead(FILE* fpt, pdbFile* pdb);
ファイル書き込み(pdbFileWrite)
pdbのデータをファイルfptへ書き込みます。
extern void pdbFileWrite(FILE* fpt, pdbFile* pdb);
pdbの座標リストのみをファイルfptへ書き込みます。
extern void pdbFileWriteCoord(FILE* fpt, pdbFile* pdb);
PDBデータ処理
新規作成
pdb->PDBのデータに新規データを作成します。
メモリを確保して新規データを作り、先頭データとして、前、次のデータはNULLとします。
extern pdbRecord* pdbFileNew(pdbFile* pdb);
追加
pdb->PDBのデータの後に新規データを追加します。
メモリを確保して新規データを作り、現在のデータとして、前を元のデータ、次を元データの次として、間に挿入します。
extern pdbRecord* pdbFileAppend(pdbFile* pdb);
extern pdbRecord* pdbFileFree(pdbFile* pdb); extern pdbRecord* pdbFileRecordPrint(FILE* fpt, pdbFile* pdb);
テーブル処理
extern void pdbFileTableWrite(FILE* fpt, pdbFile* pdb); extern pdbRecord* pdbFileRecordTablePrint(FILE* fpt, pdbFile* pdb);
行列処理
extern void pdbMatrixFileFormat(FILE* fpt); extern void pdbMatrixFileRead(FILE* fpt, Matrix3D Matrix); extern void pdbMatrixFileWrite(FILE* fpt, Matrix3D Matrix);
extern void pdbTrans(pdbFile* pdb, Matrix3D Matrix); extern void pdbTransCuda(float* hv, int n, Matrix3D Matrix);
Residue
extern void pdbFileResidueSequenceNumberIncrementAll(pdbFile* pdb, int n); extern void pdbFileResidueSequenceNumberIncrement(pdbFile* pdb, int n);
Chain ID
extern void pdbFileChainIdentifierSetAll(pdbFile* pdb, unsigned char c); extern void pdbFileChainIdentifierSet(pdbFile* pdb, unsigned char c); extern unsigned char pdbFileChainIdentifierGet(pdbFile* pdb);
温度因子
extern pdbFileParaTypeReal pdbFileTemperatureFactorGet(pdbFile* pdb); extern void pdbFileTemperatureFactorSet(pdbFile* pdb, double temp);
extern pdbFileParaTypeReal pdbFileOccupancyGet(pdbFile* pdb); extern void pdbFileOccupancySet(pdbFile* pdb, double temp);
二次構造
二次構造をファイルfptへ書き出します。
extern void pdbFileWriteSecondaryStructure(FILE* fpt, pdbFileSecondaryStructure* second);
二次構造(HELIX, SHEET, TURN)の場合は1、そうでない場合は0を返します。
extern long pdbFileIsSecondaryStructure(pdbFile* pdb);
extern pdbFileSecondaryStructureRecord* pdbFileSecondaryStructureRecordPrint(FILE* fpt, pdbFileSecondaryStructureRecord* second);
pdb->PDB->FullRecordから二次構造を読み取り、secondへ格納します。
extern int pdbSecondaryStructureSetFromPDB(pdbFile* pdb, pdbFileSecondaryStructure* second); extern int pdbNoSecondaryStructureSetFromPDB(pdbFile* pdb, pdbFileSecondaryStructure* second);
secondへメモリを確保して新規作成した二次構造データを追加します。
extern int pdbSecondaryStructureAppend(pdbFileSecondaryStructure* second);
元々のデータ数second->nSecondaryStructure=0の場合は、新規データを先頭データとして、前、次のデータはNULLとします。
そうでない場合は、新規データを現在のデータとして、前を元のデータ、次を元データの次として、間に挿入します。
extern pdbFileSecondaryStructureMode pdbFileWithSecondaryStructure(pdbFile* pdb, pdbFileSecondaryStructure* second);
座標
extern long pdbFileCoordSet(pdbFile* pdb, pdbFileParaTypeReal x, pdbFileParaTypeReal y, pdbFileParaTypeReal z);
extern long pdbFileCoordGet(pdbFile* pdb, pdbFileParaTypeReal* x, pdbFileParaTypeReal* y, pdbFileParaTypeReal* z); extern long pdbFileResidueSequenceNumberGet(pdbFile* pdb); extern char* pdbFileResidueNameGet(pdbFile* pdb,int mode);
原子情報
ポインタ移動
先頭データに移動します。
extern pdbRecord* pdbFileTop(pdbFile* pdb);
先頭データのポインタpdb->topを返します。
extern pdbRecord* pdbFileTopPointer(pdbFile* pdb);
次データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFileNext(pdbFile* pdb);
次の原子データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFileNextAtom(pdbFile* pdb);
次のアルファ炭素データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFileNextCA(pdbFile* pdb);
前データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFilePrev(pdbFile* pdb);
前の原子データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFilePrevAtom(pdbFile* pdb);
前のアルファ炭素データに移動します。(該当無しの場合はNULLとします)
extern pdbRecord* pdbFilePrevCA(pdbFile* pdb);
末尾データの場合は1、そうでない場合は0を返します。
extern long pdbFileEnd(pdbFile* pdb);
末尾データに移動します。
extern long pdbFileGoToEnd(pdbFile* pdb);
pdb->PDB->Recordが終端文字(END)の場合は1、そうでない場合は0を返します。
extern long pdbFileIsEndLine(pdbFile* pdb);
pdb->PDB->Recordが原子の場合は1、そうでない場合は0を返します。
extern long pdbFileIsAtom(pdbFile* pdb);
extern long pdbRecordIsNearby(pdbRecord record1,pdbRecord record2); extern long pdbFileIsCA(pdbFile* pdb); extern long pdbFileIsNegative(pdbFile* pdb); extern long pdbFileIsPositive(pdbFile* pdb); extern long pdbFileIsCharge(pdbFile* pdb);
ヘリックス構造(HELIX)の場合は1、そうでない場合は0を返します。
extern long pdbFileIsHelix(pdbFile* pdb);
シート構造(SHEET)の場合は1、そうでない場合は0を返します。
extern long pdbFileIsSheet(pdbFile* pdb);
ターン構造(TURN)の場合は1、そうでない場合は0を返します。
extern long pdbFileIsTurn(pdbFile* pdb);
extern pdbFileParaTypeInteger pdbZValueGet(pdbFile* pdb);
extern pdbRecord* pdbFileCAOnlyCopy(pdbFile* pdb, pdbFile* src); extern void pdbFileCAOnlyCopyAll(pdbFile* pdb, pdbFile* src); extern void pdbFileCopyAll(pdbFile* dst, pdbFile* src); extern void pdbFileAppendAll(pdbFile* dst, pdbFile* src); extern pdbRecord* pdbFileOneRecordCopy(pdbFile* dst, pdbFile* src); extern void pdbFileOneProteinCopy(pdbFile* dst, pdbFile* src, long num);
回転処理
extern void pdbRotationFollowingEulerAngle(pdbFile* pdb, char Mode[4], pdbFileParaTypeReal rot1, pdbFileParaTypeReal rot2, pdbFileParaTypeReal rot3); extern void pdbRotationFollowingEulerAngleInverse(pdbFile* pdb, char Mode[4], pdbFileParaTypeReal rot1, pdbFileParaTypeReal rot2, pdbFileParaTypeReal rot3); extern void pdbRotationXYZ(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz); extern void pdbRotationZYX(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz); extern void pdbRotationZXY(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz); extern void pdbRotationYXZ(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz);