化學文件格式

本文討論了一些常見的分子文件格式，以及它們之間的使用和轉換。

## 區分這些格式

化學資訊通常以文件或流（stream）的形式提供，人們已經創建了許多格式，分別具有不同詳細程度的文檔。格式通過以下三種方式表示（參見 "Chemical MIME" 部分）

- 文件擴展名（通常為 3 個字母）。這不是十分可靠，因為包括非化學文件在內的許多文件類型共用這些常見的後綴，例如「.mol」和「.dat」。
- 文件中包含格式資訊的自描述文件。例如CIF和CML。
- 可以傳輸化學資訊的伺服器傳輸的Chemical/MIME流。

## 化學標記語言（CML）

化學標記語言（CML）是一種用於表示分子和其他化學數據的開源格式。其開源項目包含XML Schema、用於解析和使用CML數據的一整套原始碼以及一個活躍的社區。許多工具都兼容CML數據文件，包括JChemPaint、Jmol、XDrawChem和MarvinView。

## 蛋白質資料庫（PDB）

PDB格式通常用於蛋白質，但也可用於其他類型的分子。它最初的設計為固定列寬格式，因此具有最大原子數、殘基數和鏈數的限制；這導致較大的結構（例如核糖體）需要被拆分為多個文件。但是也有許多工具可以讀取超出這些限制的文件。例如，E.coli 70S核糖體 在 2009 年被分割為 4 個PDB文件： 3I1M、 3I1N、3I1O和 3I1P，在2014 年又被合併為一個文件 4V6C。

一些PDB文件擁有描述原子連接性和位置的可選功能。因為這些文件有時用於描述大分子組裝體或在顯式溶劑中表示的分子，所以它們的體積會非常大且被壓縮。一些工具，例如Jmol和KiNG，可以讀取 .gz格式的PDB文件。wwPDB制定並維護PDB及其XML替代方案PDBML的規範。2007 年 8 月，PDB格式規範（版本 3.0）發生了相當大的變化，並且修復了現有資料庫中的許多文件問題。PDB文件的典型文件擴展名是.pdb，一些較舊的文件也可能使用.ent或.brk。一些分子建模工具根據自己的需要調整基本格式為非標準的PDB樣式文件。

## GROMACS

GROMACS系列文件格式是為與分子模擬軟體包GROMACS一起使用而創建的。它與PDB格式非常相似，但允許額外的數值精度，並可選擇保留有關粒子速度以及模擬軌跡中給定點的位置的資訊。這是因為它被設計用於存儲分子動力學模擬的輸出。GROMACS不允許存儲連接資訊，這些資訊是從單獨的分子和系統拓撲文件中獲得的。GROMACS文件的典型文件擴展名是.gro。

## CHARMM

CHARMM分子動力學軟體包可以讀寫多種標準的化學和生化文件格式；但CARD（coordinate, 坐標）和PSF（Protein Structure File, 蛋白質結構文件）幾乎是CHARMM獨有的。CARD格式是固定列寬的，類似於PDB格式，專門用於存儲原子坐標。PSF文件包含原子連接資訊（即描述原子之間的鍵），這在在開始分子動力學模擬之前是必需的。使用的典型文件擴展名分別是.crd和.psf。

## GSD（General Simulation Data）

通用模擬數據（General Simulation Data, GSD）格式用於高效地讀取和寫入主要來自（但不限於）HOOMD-blue的粒子模擬數據。該軟體包包含的一個python模塊可以以易於使用的語法讀取和寫入HOOMD模式的gsd文件。

## Ghemical

Ghemical軟體可以使用OpenBabel導入和導出多種文件格式，默認使用GPR格式。該文件由幾個部分組成，由 `!Header` `!Info` `!Atoms` `!Bonds` `!Coord` `!PartialCharges` `!End` 分隔。

這種格式的推薦MIME類型為application/x-ghemical。

## SYBYL線性字串（SYBYL Line Notation，SLN）

SYBYL線性字串（SYBYL Line Notation, SLN）是一種用字串表示化學結構的方法。因其基於SMILES，所以包含用於特定相對立體化學的完整表示方式。SLN具有豐富的查詢語法，允許查詢Markush結構，還支持ChemDraw組合庫的規範。

例：

SLN字串

苯｜C1H:CH:CH:CH:CH:CH:@1

丙氨酸｜NH2Cs=nH(CH3)C(=O)OH

要求顯示R側鏈｜R1hac>1C1:C:C:C:C:C:@1

醯胺/磺胺

## 簡化分子線性輸入規範（SMILES）

Simplified Molecular Input Line Entry Specification（簡化分子線性輸入規範，SMILES）用一串字符描述分子。SMILES字串包括連接情況，但不包括 2D和 3D坐標。

氫原子會被略去，原子用在方括號內的化學元素符號表示，例如Au表示「金」。有機物中的C、N、O、P、S、Br、Cl、I等原子可以省略方括號，其他元素必須包括在方括號之內。離子用方括號括起，用元素符號和電荷表示，"+"表示正電荷、"-"表示負電荷，電荷數跟在正負號之後。如果該原子與氫原子相連，氫原子寫在元素符號後面。

符號「=」表示雙鍵，「#」表示三鍵。表示分支。如果結構中有環，則要打開。斷開處的兩個原子用同一個數字標記，表示原子間有鍵相連。

芳環中的C、O、S、N原子分別用用小寫字母c,o,s,n表示。如苯表示為c1ccccc1

例：

名稱｜化學式｜SMILES字串

甲烷｜CH4｜C

乙醇｜C2H6O｜CCO

苯｜C6H6｜C1=CC=CC=C1 or c1ccccc1

乙烯｜C2H4

## XYZ

XYZ是一種簡單的格式，通常在第一行給出原子數，在第二行給出注釋，然後是幾行原子符號（或原子序數）和坐標參數。

## MDL編號

MDL編號包含每個反應和變化的唯一標識號。格式為RXXXnnnnnnnn。R表示一個反應（reaction），XXX表示哪個資料庫包含反應記錄。數字部分nnnnnnnn是一個 8 位數字。

## 其他常見格式

`最广泛使用的工业标准之一是化学表格文件（{{`tsl|en|Chemical_table_file|Chemical_table_file|Chemical table file）格式，例如結構數據格式(Structure Data Format，SDF) 文件。這些文本文件遵循著嚴格格式，用於表示多個化學結構和相關數據。該格式最初由Molecular Design Limited (MDL) 開發和發布。MOL是MDL的另一種文件格式。它記錄在CTfile格式的第 4 章中。

PubChem還有XML和ASN1 格式，是PubChem在線資料庫的導出選項。二者均基於文本（ASN1 通常是二進位格式）。

下表列出了大量其他格式

## 格式轉換

OpenBabel和JOELib是免費提供的開源工具，專門被設計用來將文件在各種格式之間轉換。他們的化學專家系統（chemical expert systems）支持大型的文件轉換。

OpenBabel的基本命令是

`babel -i ''input_format'' ''input_file'' -o ''output_format'' ''output_file''`

例如，要將SDF中的 腎上腺素.sdf 文件轉換為CML格式：

`babel -i sdf epinephrine.sdf -o cml epinephrine.cml`

生成的文件是 腎上腺素.cml

IOData 是一個免費的開源Python庫，用於解析、存儲和轉換量子化學、分子動力學和平面波密度泛函理論軟體程序常用的各種文件格式。它還能為各種軟體包生成導入文件的靈活框架。有關支持格式的完整列表，請訪問。

許多用於查看和編輯分子結構的工具能夠讀取多種格式的文件並以其他格式輸出。例如：JChemPaint（基於Chemistry Development Kit）、XDrawChem（基於OpenBabel）、Chime、Jmol、Mol2mol 和Discovery Studio。

## 化學MIME項目

「化學MIME」是一種將化學資訊流附加到MIME類型的方法。該項目於 1994 年 1 月開始，並於 1994 年 5 月在CERN舉行的第一屆WWW國際會議的化學研討會上首次宣布。……草案的第一個版本在 1994 年 5 月至 10 月期間發布，第二個修訂版在 1995 年 4 月至 9 月期間發布。在 1996 年 8 月的IUPAC會議上提交給CPEP（印刷和電子出版物委員會）的論文尚待商榷。1998年該文件在JCIM上正式發表。

文件拓展名｜MIME類型｜全名｜備註

alc｜chemical/x-alchemy｜Alchemy格式

csf｜chemical/x-cache-csf｜CAChe MolStruct CSF

cbin, cascii, ctab｜chemical/x-cactvs-binary｜CACTVS格式

cdx｜chemical/x-cdx｜ChemDraw eXchange文件

cer｜chemical/x-cerius｜MSI Cerius II格式

c3d｜chemical/x-chem3d｜Chem3D格式

chm｜chemical/x-chemdraw｜ChemDraw文件

cif｜chemical/x-cif｜晶體學資訊文檔，晶體學資訊框架｜由國際晶體學聯合會頒布

cmdf｜chemical/x-cmdf｜CrystalMaker數據格式

cml｜chemical/x-cml｜化學標記語言｜基於XML的 化學標記語言

cpa｜chemical/x-compass｜Compass program of the Takahashi

bsd｜chemical/x-crossfire｜Crossfire文件

csm, csml｜chemical/x-csml｜化學特色標記語言Chemical Style Markup Language

ctx｜chemical/x-ctx｜Gasteiger group CTX格式

cxf, cef｜chemical/x-cxf｜Chemical eXchange格式

emb, embl｜chemical/x-embl-dl-nucleotide｜EMBL Nucleotide格式

spc｜chemical/x-galactic-spc｜光譜學和色譜學的SPC格式

inp, gam, gamin｜chemical/x-gamess-input｜GAMESS輸入格式

fch, fchk｜chemical/x-gaussian-checkpoint｜Gaussian檢查點格式

cub｜chemical/x-gaussian-cube｜Gaussian Cube (Wavefunction) 格式

gau, gjc, gjf, com｜chemical/x-gaussian-input｜Gaussian輸入格式

gcg｜chemical/x-gcg8-sequence｜Protein Sequence格式

gen｜chemical/x-genbank｜ToGenBank格式

istr,ist｜chemical/x-isostar｜分子間反應的IsoStar Library

jdx, dx｜chemical/x-jcamp-dx｜JCAMP光譜學數據交換格式

kin｜chemical/x-kinemage｜Kinetic (蛋白質結構) 圖像; Kinemage

mcm｜chemical/x-macmolecule｜MacMolecule格式

mmd, mmod｜chemical/x-macromodel-input｜MacroModel分子機理

mol｜chemical/x-mdl-molfile｜MDL Mol文件

smiles, smi｜chemical/x-daylight-smiles｜簡化分子線性輸入規範｜對分子的線性字符描述

sdf｜chemical/x-mdl-sdfile｜結構數據文件

el｜chemical/x-sketchel｜SketchEl分子文件

ds｜chemical/x-datasheet｜SketchEl XML數據表

inchi｜chemical/x-inchi｜IUPAC國際化學標識

jsd, jsdraw｜chemical/x-jsdraw｜JSDraw原生文件格式

helm, ihelm｜chemical/x-helm｜Pistoia Alliance HELM字串｜對生物化學分子的線性字符描述

xhelm｜chemical/x-xhelm｜Pistoia Alliance XHELM XML文件｜基於XML的 大分子分級編輯語言，包含單體的結構

## 化學數據來源

以下是部分免費提供的分子數據來源。網際網路上的資源比此處列出的要多得多。下面的參考資料中給出了這些來源的連結。

- 美國國家衛生研究院PubChem資料庫是一個巨大的化學數據來源。所有數據都是二維的。數據包括SDF、SMILES、PubChem XML和PubChem ASN1 格式。
- 全球蛋白質資料庫（wwPDB）是蛋白質和核酸分子坐標數據的極好來源。數據是三維的，以蛋白質資料庫（PDB）格式提供。
- eMolecules是一個用於分子數據的商業資料庫。數據包括每個化合物的二維結構圖和微笑字串。eMolecules支持基於部分分子結構的快速子結構搜索。
- ChemExper是用於分子數據的商業資料庫。搜索結果包括許多化合物的二維結構圖和摩爾文件。
- 紐約大學 3-D分子結構圖書館。
- 美國環境保護署的分布式結構可搜索毒性（DSSTox）資料庫網路是EPA計算毒理學計劃的一個項目。該資料庫提供SDF分子文件，重點關注致癌物質和其他有毒物質。

## 另請參見

- 文件格式
- OpenBabel,JOELib, OELib
- 化學開發工具包（Chemistry Development Kit）
- 化學標記語言
- 分子建模軟體（Software for molecular modeling）
- NCI/CADD化學標識符解析器