Package org.openscience.cdk
Class ConformerContainer
- java.lang.Object
-
- org.openscience.cdk.ConformerContainer
-
- All Implemented Interfaces:
Iterable<IAtomContainer>,Collection<IAtomContainer>,List<IAtomContainer>
public class ConformerContainer extends Object implements List<IAtomContainer>
A memory-efficient data structure to store conformers for a single molecule. Since all the conformers for a given molecule only differ in their 3D coordinates this data structure stores a singleIAtomContainercontaining the atom and bond details and a List of 3D coordinate sets, each element being the set of 3D coordinates for a given conformer. The class behaves in many ways as aList<IAtomContainer>object, though a few methods are not implemented. Though it is possible to add conformers by hand, this data structure is probably best used in combination withIteratingMDLConformerReaderasIteratingMDLConformerReader reader = new IteratingMDLConformerReader( new FileReader(new File(filename)), DefaultChemObjectBuilder.getInstance()); while (reader.hasNext()) { ConformerContainer cc = (ConformerContainer) reader.next(); for (IAtomContainer conformer : cc) { // do something with each conformer } }- Author:
- Rajarshi Guha
- See Also:
IteratingMDLConformerReader- Source code:
- main
- Belongs to CDK module:
- data
-
-
Constructor Summary
Constructors Constructor Description ConformerContainer()ConformerContainer(IAtomContainer atomContainer)Create a ConformerContainer object from a single molecule object.ConformerContainer(IAtomContainer[] atomContainers)Create a ConformerContainer from an array of molecules.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int i, IAtomContainer atomContainer)booleanadd(IAtomContainer atomContainer)Add a conformer to the end of the list.booleanaddAll(int i, Collection<? extends IAtomContainer> iAtomContainers)booleanaddAll(Collection<? extends IAtomContainer> atomContainers)voidclear()Get rid of all the conformers but keeps atom and bond information.booleancontains(Object o)Checks to see whether the specified conformer is currently stored.booleancontainsAll(Collection<?> objects)IAtomContainerget(int i)Get the conformer at a specified position.StringgetTitle()Get the title of the conformers.intindexOf(Object o)Returns the lowest index at which the specific IAtomContainer appears in the list or -1 if is not found.booleanisEmpty()Checks whether any conformers are stored or not.Iterator<IAtomContainer>iterator()Gets an iterator over the conformers.intlastIndexOf(Object o)Returns the highest index at which the specific IAtomContainer appears in the list or -1 if is not found.ListIterator<IAtomContainer>listIterator()ListIterator<IAtomContainer>listIterator(int i)IAtomContainerremove(int i)Removes the conformer at the specified position.booleanremove(Object o)Remove the specified conformer.booleanremoveAll(Collection<?> objects)booleanretainAll(Collection<?> objects)IAtomContainerset(int i, IAtomContainer atomContainer)intsize()Get the number of conformers stored.List<IAtomContainer>subList(int i, int i1)Object[]toArray()Returns the conformers in the form of an array of IAtomContainers.<IAtomContainer>
IAtomContainer[]toArray(IAtomContainer[] ts)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
equals, hashCode, replaceAll, sort, spliterator
-
-
-
-
Constructor Detail
-
ConformerContainer
public ConformerContainer()
-
ConformerContainer
public ConformerContainer(IAtomContainer atomContainer)
Create a ConformerContainer object from a single molecule object. Using this constructor, the resultant conformer container will contain a single conformer. More conformers can be added using theadd(org.openscience.cdk.interfaces.IAtomContainer)method. Note that the constructor will use the title of the input molecule when adding new molecules as conformers. That is, the title of any molecule to be added as a conformer should match the title of the input molecule.- Parameters:
atomContainer- The base molecule (or first conformer).
-
ConformerContainer
public ConformerContainer(IAtomContainer[] atomContainers)
Create a ConformerContainer from an array of molecules. This constructor can be used when you have an array of conformers of a given molecule. Note that this constructor will assume that all molecules in the input array will have the same title.- Parameters:
atomContainers- The array of conformers
-
-
Method Detail
-
getTitle
public String getTitle()
Get the title of the conformers. Note that all conformers for a given molecule will have the same title.- Returns:
- The title for the conformers
-
size
public int size()
Get the number of conformers stored.- Specified by:
sizein interfaceCollection<IAtomContainer>- Specified by:
sizein interfaceList<IAtomContainer>- Returns:
- The number of conformers
-
isEmpty
public boolean isEmpty()
Checks whether any conformers are stored or not.- Specified by:
isEmptyin interfaceCollection<IAtomContainer>- Specified by:
isEmptyin interfaceList<IAtomContainer>- Returns:
- true if there is at least one conformer, otherwise false
-
contains
public boolean contains(Object o)
Checks to see whether the specified conformer is currently stored. This method first checks whether the title of the supplied molecule matches the stored title. If not, it returns false. If the title matches it then checks all the coordinates to see whether they match. If all coordinates match it returns true else false.- Specified by:
containsin interfaceCollection<IAtomContainer>- Specified by:
containsin interfaceList<IAtomContainer>- Parameters:
o- The IAtomContainer to check for- Returns:
- true if it is present, false otherwise
-
iterator
public Iterator<IAtomContainer> iterator()
Gets an iterator over the conformers.- Specified by:
iteratorin interfaceCollection<IAtomContainer>- Specified by:
iteratorin interfaceIterable<IAtomContainer>- Specified by:
iteratorin interfaceList<IAtomContainer>- Returns:
- an iterator over the conformers. Each iteration will return an IAtomContainer object corresponding to the current conformer.
-
toArray
public Object[] toArray()
Returns the conformers in the form of an array of IAtomContainers. Beware that if you have a large number of conformers you may run out memory during construction of the array since IAtomContainer's are not light weight objects!- Specified by:
toArrayin interfaceCollection<IAtomContainer>- Specified by:
toArrayin interfaceList<IAtomContainer>- Returns:
- The conformers as an array of individual IAtomContainers.
-
toArray
public <IAtomContainer> IAtomContainer[] toArray(IAtomContainer[] ts)
- Specified by:
toArrayin interfaceCollection<IAtomContainer>- Specified by:
toArrayin interfaceList<IAtomContainer>
-
add
public boolean add(IAtomContainer atomContainer)
Add a conformer to the end of the list. This method allows you to add a IAtomContainer object as another conformer. Before adding it ensures that the title of specific object matches the stored title for these conformers. It will also check that the number of atoms in the specified molecule match the number of atoms in the current set of conformers. This method will not check for duplicate conformers.- Specified by:
addin interfaceCollection<IAtomContainer>- Specified by:
addin interfaceList<IAtomContainer>- Parameters:
atomContainer- The new conformer to add.- Returns:
- true
-
remove
public boolean remove(Object o)
Remove the specified conformer.- Specified by:
removein interfaceCollection<IAtomContainer>- Specified by:
removein interfaceList<IAtomContainer>- Parameters:
o- The conformer to remove (should be castable to IAtomContainer)- Returns:
- true if the specified conformer was present and removed, false if not found
-
containsAll
public boolean containsAll(Collection<?> objects)
- Specified by:
containsAllin interfaceCollection<IAtomContainer>- Specified by:
containsAllin interfaceList<IAtomContainer>
-
addAll
public boolean addAll(Collection<? extends IAtomContainer> atomContainers)
- Specified by:
addAllin interfaceCollection<IAtomContainer>- Specified by:
addAllin interfaceList<IAtomContainer>
-
addAll
public boolean addAll(int i, Collection<? extends IAtomContainer> iAtomContainers)- Specified by:
addAllin interfaceList<IAtomContainer>
-
removeAll
public boolean removeAll(Collection<?> objects)
- Specified by:
removeAllin interfaceCollection<IAtomContainer>- Specified by:
removeAllin interfaceList<IAtomContainer>
-
retainAll
public boolean retainAll(Collection<?> objects)
- Specified by:
retainAllin interfaceCollection<IAtomContainer>- Specified by:
retainAllin interfaceList<IAtomContainer>
-
clear
public void clear()
Get rid of all the conformers but keeps atom and bond information.- Specified by:
clearin interfaceCollection<IAtomContainer>- Specified by:
clearin interfaceList<IAtomContainer>
-
get
public IAtomContainer get(int i)
Get the conformer at a specified position.- Specified by:
getin interfaceList<IAtomContainer>- Parameters:
i- The position of the requested conformer- Returns:
- The conformer
-
set
public IAtomContainer set(int i, IAtomContainer atomContainer)
- Specified by:
setin interfaceList<IAtomContainer>
-
add
public void add(int i, IAtomContainer atomContainer)- Specified by:
addin interfaceList<IAtomContainer>
-
remove
public IAtomContainer remove(int i)
Removes the conformer at the specified position.- Specified by:
removein interfaceList<IAtomContainer>- Parameters:
i- The position in the list to remove- Returns:
- The conformer that was at the specified position
-
indexOf
public int indexOf(Object o)
Returns the lowest index at which the specific IAtomContainer appears in the list or -1 if is not found. A given IAtomContainer will occur in the list if the title matches the stored title for the conformers in this container and if the coordinates for each atom in the specified molecule are equal to the coordinates of the corresponding atoms in a conformer.- Specified by:
indexOfin interfaceList<IAtomContainer>- Parameters:
o- The IAtomContainer whose presence is being tested- Returns:
- The index where o was found
-
lastIndexOf
public int lastIndexOf(Object o)
Returns the highest index at which the specific IAtomContainer appears in the list or -1 if is not found. A given IAtomContainer will occur in the list if the title matches the stored title for the conformers in this container and if the coordinates for each atom in the specified molecule are equal to the coordinates of the corresponding atoms in a conformer.- Specified by:
lastIndexOfin interfaceList<IAtomContainer>- Parameters:
o- The IAtomContainer whose presence is being tested- Returns:
- The index where o was found
-
listIterator
public ListIterator<IAtomContainer> listIterator()
- Specified by:
listIteratorin interfaceList<IAtomContainer>
-
listIterator
public ListIterator<IAtomContainer> listIterator(int i)
- Specified by:
listIteratorin interfaceList<IAtomContainer>
-
subList
public List<IAtomContainer> subList(int i, int i1)
- Specified by:
subListin interfaceList<IAtomContainer>
-
-