Search philosophyΒΆ
The ccdc.search module supports four types of search:
The basic philosophy used to set up and run searches is to:
Create a search object
Use the
ccdc.search.Search.search()function of the search object to search a specific database
For substructure and similarity searches the database to be searched can be:
the CSD
a (multi) molecule file path
a
ccdc.ioreader (this can be one or more databases)a Python list of identifiers
an individual molecule
an individual crystal
Because text numeric searches are carried out on fields specific to the CSD these searches can only be performed on the CSD.
The ccdc.search.Search.search() function will return a list of
ccdc.search.Search.SearchHit instances. In some cases these
have been specialised for the specific type of search performed:
All hit classes contain an identifier as well as attributes to
access ccdc.entry.Entry, ccdc.crystal.Crystal and
ccdc.molecule.Molecule.
The ccdc.search.SimilaritySearch.SimilarityHit additionally contains a
similarity attribute.
The ccdc.search.SubstructureSearch.SubstructureHit has two additional functions:
ccdc.search.SubstructureSearch.SubstructureHit.match_atoms()ccdc.search.SubstructureSearch.SubstructureHit.match_components()
Furthermore the
ccdc.search.SubstructureSearch.SubstructureHitList has an
additional function for superimposing the hits on the first
ccdc.search.SubstructureSearch.SubstructureHit in the
ccdc.search.SubstructureSearch.SubstructureHitList:
A ccdc.search.SubstructureSearch.SubstructureHit may also contain the attributes
measurements and constraints if any geometric
measurements/constraints have been added to the
ccdc.search.SubstructureSearch. These are dictionaries keyed by
the name of the measurement or constraint defined on the
ccdc.search.SubstructureSearch. For more information on
measurements and constraints see
Substructure searching with geometric measurements and
Substructure searching with geometric constraints.