The many different software packages available to the NMR spectroscopy community have traditionally employed a number of different data formats and standards to represent computational information. The inception of CCPN was partly to look at this situation and to develop a more unified approach. It was deemed that multiple, informally connected data standards not only made it more difficult for a user to move from one program to the next, but also adversely affected data fidelity, harvesting and database deposition. To this end CCPN has developed a common data standard for NMR, referred to as the CCPN data model, as well as software routines and libraries that allow access, manipulation and storage of the data. The CCPN system works alongside the Bio Mag Res Bank which continues to handle archiving NMR database depositions; the CCPN standard is for active data exchange and in-program manipulation.
Although NMR spectroscopy remains at the core of the data standard it naturally expands into other related areas of science that support and complement NMR. These include molecular and macromolecular description, three-dimensional biological structures, sample preparation, workflow management and software setup. The CCPN libraries are created using the principles of model-driven architecture and automatic code generation; the CCPN data model provides a specification for the automatic generation of APIs in multiple languages. To date CCPN provides APIs to its data model in Python, Java and C programming languages. Through its collaborations, CCPN continues to link new and existing software via its data standards. To enable interaction with as much external software as possible, CCPN has created a format conversion program. This allows data to enter from outside the CCPN scheme and provides a mechanism to translate between existing data formats. The open-source CcpNmr FormatConverter software was first released in 2005 and is available for download (from CCPN and SourceForge) but is also recently accessible as a web application.