SlideShare a Scribd company logo
1 of 14
Using the MMDB C++
library from Python
CRBM
Background
CCP4 has traditionally developed and
maintained programs for macromolecular
crystallography – mostly in Fortran. We realised
a need for object-oriented programming
particularly to handle more complex
experimental data. Hence the development of
two C++ libraries:
Clipper, for experimental data, by Kevin Cowtan
MMDB (macro-molecular data-base) by Eugene
Krissinel
CCP4mg
CCP4mg project begun after the library project.
We want to use the libraries and integrate with
other scientific methods being developed in
C++ but
recognise advantages of Python for rapid coding
and the Python libraries (and thanks to
Warren and Michel for demonstrating Python
MG will work!).
SWIG
Auto generates code to export C/C++ interface
to Python (and other scripting languages).
We had some problems initially – particularly
exporting overloaded method names. These
were solved by SWIG version >=1.3.17
Our build currently auto generates for all of
MMDB – huge file and the slow step in program
building. (Solution: we need to be more
discerning in what we interface).
C++-Python Interface Issues
It is not efficient to pass large quantities of data
through this interface. Any functionality which
requires looping over all atoms (or residues) is
written in C++. (Should we just export the
whole data structure in one go?).
In our code Python does not access the
underlying data – it is a puppet-master which
usually deals with pointers to the model, handles
to selection sets and a few individual
atom/residue/chain pointers.
MMDB
MMDB is heavily used by European
BioInfomatics Macromolecular Structure
Database group to handle deposited data which
may be in PDB or mmCIF format.
Freely available – www.ccp4.ac.uk
www.ebi.ac.uk/~keb/cldoc
MMDB Functionality
•Read/write PDB mmCif, binary format
•Large number of methods to ‘surf’ data structure
•Methods to safely edit the data structure
•Tools to select sets of atoms (these are brilliant!)
•Handling additional generic user defined data
•Structure analysis methods
Python Code example – list chain ids and residue
names
# molHnd is instance of MMDBManager object (a molecule)
molHnd = CMMDBManager()
#Read a PDB file
RC = molHnd.ReadCoordFile(‘mydata.pdb’)
# Get a table of the chains in the molecule
chainTable = newPPCChain()
nChains = intp()
molHnd.GetChainTable(1,chainTable,nChains)
#Loop over all chains and print chain ID
for ic in range(0,nChains.value())
pc=CChainPtr(getPCChain(chainTable,ic))
print ‘Chain’,pc.GetChainID()
#Get a table of the residues in the chain
resTable = newPPCResidue()
nRes = intp()
pc = GetResidueTable(resTable,nRes)
#Loop over residues and print out name and sequence ID
for ir in range(0,nRes.value())
pr = CResiduePtr(getPCResidue(resTable,ir))
print ‘ Residue’,pr.name,pr.seqNum
….and similarly for atoms
There are many means of navigating round the
data hierarchy – the example shows just one of
them
There are a few lines of code here to handle the
C++-Python interface which presumably would
not be necessary in a pure Python
implementation.
Comments on the Code Example
Comments for CRBM
I may be going off on the wrong track but here’s
my two pennies worth..
• CCP4 is (mostly) writing scientific methods in
C++ and not Python, so should we be involved
in CRBM? One C in CCP4 is for ‘Collaborative’ so
in principle we are interested.
• The useful things people in CRBM might want to
share are scientific methods but these are
(usually) closely tied to underlying data
structures which makes sharing tricky. (As a
not completely reformed Fortran programmer I
can not resist pointing out that this is at odds
with the usual ‘reusable methods’ hype for OO).
Comments - continued
• If I understood correctly one idea put up by
Michel was some standardizing of interface to
the underlying data structures.
• Alternatively need mechanism to move data
between different data structures. The old-
fashioned way is via a file.
Comments - continued
Something I would like to see standardized – the
naming syntax for atoms/residues etc.
e.g. MMDB/CCP4 syntax for unique identifier for
an atom
/1/A/27/CA
i.e. CA atom or residue 27 or chain A of (NMR)
model 1)
The NMR model number is usually omitted.

More Related Content

Similar to Using the MMDB C++ library from Python

Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...
Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...
Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...Anthony Bradley
 
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.iraminnezarat
 
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...Uwe Korn
 
Numerical Simulation of Nonlinear Mechanical Problems using Metafor
Numerical Simulation of Nonlinear Mechanical Problems using MetaforNumerical Simulation of Nonlinear Mechanical Problems using Metafor
Numerical Simulation of Nonlinear Mechanical Problems using MetaforRomain Boman
 
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie Morgan
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie MorganEmbedded Recipes 2018 - Shared memory / telemetry - Yves-Marie Morgan
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie MorganAnne Nicolas
 
Evaluating Machine Learning Algorithms for Materials Science using the Matben...
Evaluating Machine Learning Algorithms for Materials Science using the Matben...Evaluating Machine Learning Algorithms for Materials Science using the Matben...
Evaluating Machine Learning Algorithms for Materials Science using the Matben...Anubhav Jain
 
OpenDiscovery
OpenDiscoveryOpenDiscovery
OpenDiscoverygwprice
 
Some "challenges" on the open-source/open-data front
Some "challenges" on the open-source/open-data frontSome "challenges" on the open-source/open-data front
Some "challenges" on the open-source/open-data frontGreg Landrum
 
FDP-faculty deveopmemt program on python
FDP-faculty deveopmemt program on pythonFDP-faculty deveopmemt program on python
FDP-faculty deveopmemt program on pythonkannikadg
 
How to automate Machine Learning pipeline ?
How to automate Machine Learning pipeline ?How to automate Machine Learning pipeline ?
How to automate Machine Learning pipeline ?Axel de Romblay
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpcDr Reeja S R
 
Group presentation.pptx
Group presentation.pptxGroup presentation.pptx
Group presentation.pptxYonas D. Ebren
 
Computational Approaches to Systems Biology
Computational Approaches to Systems BiologyComputational Approaches to Systems Biology
Computational Approaches to Systems BiologyMike Hucka
 
RDF Join Query Processing with Dual Simulation Pruning
RDF Join Query Processing with Dual Simulation PruningRDF Join Query Processing with Dual Simulation Pruning
RDF Join Query Processing with Dual Simulation Pruningwajrcs
 
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...Marcello Tomasini
 
EuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPIEuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPIDan Holmes
 

Similar to Using the MMDB C++ library from Python (20)

Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...
Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...
Small, fast and useful – MMTF a new paradigm in macromolecular data transmiss...
 
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...
PyConDE / PyData Karlsruhe 2017 – Connecting PyData to other Big Data Landsca...
 
Numerical Simulation of Nonlinear Mechanical Problems using Metafor
Numerical Simulation of Nonlinear Mechanical Problems using MetaforNumerical Simulation of Nonlinear Mechanical Problems using Metafor
Numerical Simulation of Nonlinear Mechanical Problems using Metafor
 
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie Morgan
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie MorganEmbedded Recipes 2018 - Shared memory / telemetry - Yves-Marie Morgan
Embedded Recipes 2018 - Shared memory / telemetry - Yves-Marie Morgan
 
C++ Basics
C++ BasicsC++ Basics
C++ Basics
 
Evaluating Machine Learning Algorithms for Materials Science using the Matben...
Evaluating Machine Learning Algorithms for Materials Science using the Matben...Evaluating Machine Learning Algorithms for Materials Science using the Matben...
Evaluating Machine Learning Algorithms for Materials Science using the Matben...
 
OpenDiscovery
OpenDiscoveryOpenDiscovery
OpenDiscovery
 
Some "challenges" on the open-source/open-data front
Some "challenges" on the open-source/open-data frontSome "challenges" on the open-source/open-data front
Some "challenges" on the open-source/open-data front
 
FDP-faculty deveopmemt program on python
FDP-faculty deveopmemt program on pythonFDP-faculty deveopmemt program on python
FDP-faculty deveopmemt program on python
 
How to automate Machine Learning pipeline ?
How to automate Machine Learning pipeline ?How to automate Machine Learning pipeline ?
How to automate Machine Learning pipeline ?
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpc
 
Introducing Parallel Pixie Dust
Introducing Parallel Pixie DustIntroducing Parallel Pixie Dust
Introducing Parallel Pixie Dust
 
Group presentation.pptx
Group presentation.pptxGroup presentation.pptx
Group presentation.pptx
 
Be cse
Be cseBe cse
Be cse
 
Computational Approaches to Systems Biology
Computational Approaches to Systems BiologyComputational Approaches to Systems Biology
Computational Approaches to Systems Biology
 
RDF Join Query Processing with Dual Simulation Pruning
RDF Join Query Processing with Dual Simulation PruningRDF Join Query Processing with Dual Simulation Pruning
RDF Join Query Processing with Dual Simulation Pruning
 
SoC-2012-pres-2
SoC-2012-pres-2SoC-2012-pres-2
SoC-2012-pres-2
 
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...
CSE5656 Complex Networks - Location Correlation in Human Mobility, Implementa...
 
EuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPIEuroMPI 2013 presentation: McMPI
EuroMPI 2013 presentation: McMPI
 

Recently uploaded

Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 

Recently uploaded (20)

Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 

Using the MMDB C++ library from Python

  • 1. Using the MMDB C++ library from Python CRBM
  • 2. Background CCP4 has traditionally developed and maintained programs for macromolecular crystallography – mostly in Fortran. We realised a need for object-oriented programming particularly to handle more complex experimental data. Hence the development of two C++ libraries: Clipper, for experimental data, by Kevin Cowtan MMDB (macro-molecular data-base) by Eugene Krissinel
  • 3. CCP4mg CCP4mg project begun after the library project. We want to use the libraries and integrate with other scientific methods being developed in C++ but recognise advantages of Python for rapid coding and the Python libraries (and thanks to Warren and Michel for demonstrating Python MG will work!).
  • 4. SWIG Auto generates code to export C/C++ interface to Python (and other scripting languages). We had some problems initially – particularly exporting overloaded method names. These were solved by SWIG version >=1.3.17 Our build currently auto generates for all of MMDB – huge file and the slow step in program building. (Solution: we need to be more discerning in what we interface).
  • 5. C++-Python Interface Issues It is not efficient to pass large quantities of data through this interface. Any functionality which requires looping over all atoms (or residues) is written in C++. (Should we just export the whole data structure in one go?). In our code Python does not access the underlying data – it is a puppet-master which usually deals with pointers to the model, handles to selection sets and a few individual atom/residue/chain pointers.
  • 6. MMDB MMDB is heavily used by European BioInfomatics Macromolecular Structure Database group to handle deposited data which may be in PDB or mmCIF format. Freely available – www.ccp4.ac.uk www.ebi.ac.uk/~keb/cldoc
  • 7.
  • 8. MMDB Functionality •Read/write PDB mmCif, binary format •Large number of methods to ‘surf’ data structure •Methods to safely edit the data structure •Tools to select sets of atoms (these are brilliant!) •Handling additional generic user defined data •Structure analysis methods
  • 9. Python Code example – list chain ids and residue names # molHnd is instance of MMDBManager object (a molecule) molHnd = CMMDBManager() #Read a PDB file RC = molHnd.ReadCoordFile(‘mydata.pdb’) # Get a table of the chains in the molecule chainTable = newPPCChain() nChains = intp() molHnd.GetChainTable(1,chainTable,nChains) #Loop over all chains and print chain ID for ic in range(0,nChains.value()) pc=CChainPtr(getPCChain(chainTable,ic)) print ‘Chain’,pc.GetChainID()
  • 10. #Get a table of the residues in the chain resTable = newPPCResidue() nRes = intp() pc = GetResidueTable(resTable,nRes) #Loop over residues and print out name and sequence ID for ir in range(0,nRes.value()) pr = CResiduePtr(getPCResidue(resTable,ir)) print ‘ Residue’,pr.name,pr.seqNum ….and similarly for atoms
  • 11. There are many means of navigating round the data hierarchy – the example shows just one of them There are a few lines of code here to handle the C++-Python interface which presumably would not be necessary in a pure Python implementation. Comments on the Code Example
  • 12. Comments for CRBM I may be going off on the wrong track but here’s my two pennies worth.. • CCP4 is (mostly) writing scientific methods in C++ and not Python, so should we be involved in CRBM? One C in CCP4 is for ‘Collaborative’ so in principle we are interested. • The useful things people in CRBM might want to share are scientific methods but these are (usually) closely tied to underlying data structures which makes sharing tricky. (As a not completely reformed Fortran programmer I can not resist pointing out that this is at odds with the usual ‘reusable methods’ hype for OO).
  • 13. Comments - continued • If I understood correctly one idea put up by Michel was some standardizing of interface to the underlying data structures. • Alternatively need mechanism to move data between different data structures. The old- fashioned way is via a file.
  • 14. Comments - continued Something I would like to see standardized – the naming syntax for atoms/residues etc. e.g. MMDB/CCP4 syntax for unique identifier for an atom /1/A/27/CA i.e. CA atom or residue 27 or chain A of (NMR) model 1) The NMR model number is usually omitted.