public class SimulatedAnnealing extends MembranePackingAlgorithm implements java.awt.event.ItemListener, javax.swing.event.ChangeListener, java.awt.event.ActionListener
basicOperations, BORDER_EAST, BORDER_MAX_Y, BORDER_MIN_Y, BORDER_NORTH, BORDER_SOUTH, BORDER_WEST, calculationManager, CurrentMicroDomain, databaseOperations, EXTRA, INTRA, lipidsEC, lipidsIC, LIPIDTYPE, membraneViewListener, microDomains, PROTEINTYPE
Constructor and Description |
---|
SimulatedAnnealing()
generates a new SimulatedAnneling
|
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent arg0)
action performed method.
|
boolean |
buildAndShowGui()
Sets up the GUI for the settings
|
float |
energyFunction(Molecule mol,
int membraneside)
The energy function returns a value which specifies the average distance
to the neighbor molecules in the cutoff radius.
|
void |
fillWithLipids()
calls methods to fill membrane with lipids.
|
java.lang.String |
getFullInformation()
returns the full information about this algorithm
|
java.lang.String |
getName()
returns the name of this algorithm.
|
Lipid |
getRandomLipid(int membraneside)
Returns a randomly chosen lipid from all lipids placed on the chosen
membrane side.
|
java.awt.Component |
getRuntimeControlPanel() |
java.lang.String |
getShortInformation()
returns the short information about this algorithm
|
java.lang.String |
getStringRepresentationOfSetupParameters()
returns string representation of the chosen settings.
|
void |
itemStateChanged(java.awt.event.ItemEvent arg0)
item state changed method.
|
void |
moveMolecule(Lipid mol,
int membraneside)
Moves the molecule to a new position.
|
boolean |
overrideExistingLipids() |
void |
placeNewLipidDuringSimulationBorder(int membraneside)
Try to add new molecules on the north, east, south or west border.
|
void |
placeNewLipidDuringSimulationRandom(int membraneside)
Try to add new molecules somewhere inside the membrane.
|
void |
setInitialState()
Sets up the initial state.
|
void |
shakeMolecule(Molecule mol)
Simple method to change position and rotation of a molecule at random.
|
void |
simpleMode()
Creates rows of lipids.
|
void |
simulateAnnealing()
Fulfills the simulated annealing method.
|
void |
simulateAnnealingStep(int membraneside)
Tries to find a better place for randomly chosen lipids.
|
void |
stateChanged(javax.swing.event.ChangeEvent arg0)
state changed method.
|
void |
stopAlgorithm()
sets the breake flag.
|
boolean |
supportsAbsoluteValues() |
boolean |
supportsMicrodomains() |
Lipid |
testForBetterPositionInFirstState(Lipid lip,
int membraneside)
Tests if a new Random Position is better then the old Position.
|
addEntryToDB, addExtracellularLipid, addIntracellularLipid, clearAllLipids, copyMatrix, countSampleLipids_Extracellular, countSampleLipids_Intracellular, countTotalLipidsThatAreAdded, createAUnitMatrix, createNextExtracellularLipid, createNextExtracellularLipid, createNextIntracellularLipid, createNextIntracellularLipid, createRandomLayerID, createRandomXZPosition, displayInformation, distance, distance, dock, getAlgorithm_Directory_In_Workspace, getAllLipids, getAllLipidsInDomain, getAllMoleculesInCurrentModel, getAllProteins, getAllProteinsInDomain, getAllSampleLipids_ExtraCellular, getAllSampleLipids_ExtraCellular, getAllSampleLipids_IntraCellular, getAllSampleLipids_IntraCellular, getAllSampleLipidsInModel, getCurrentLayerID, getCurrentRenderMode, getDecimalPlaces, getDesiredAtomDistance, getExtracellularLipidByPDBCode, getIntersectedBorders, getIntersectedMolecules, getIntracellularLipidByPDBCode, getJ3DBranchGroup, getLayerAtIndex, getLayerByLayerID, getLayerCount, getLipidInMembraneHeight, getLipidsInRadiusExcept, getMembraneArea, getMembraneBounds2D, getMembraneSize, getMicroDomain, getMicroDomainAt, getMicroDomainAtPoint, getMicroDomainAtPoint, getMicroDomainCount, getMinAtomDistance, getMoleculesInRadius, getMoleculesInRadiusExcept, getMoleculesInRadiusOnMySide, getMoleculesInRadiusOnMySide, getMoleculesInRadiusOnMySideExcept, getNearestLipidOnMySide, getNearestMolecule, getNearestMoleculeExcept, getNearestMoleculeExceptDetailed, getNearestMoleculeExceptOnMySide, getNearestMoleculeExceptOnMySideDetailed, getNearestMoleculeOnMySide, getNearestMoleculeOnMySideDetailed, getNearestProtein, getNearestProteinDetailed, getNearestProteinExcept, getNearestProteinExceptDetailed, getOriginalConstraintLenghts, getOriginalConstraintLengths, getPercentages_ExtraCellular, getPercentages_IntraCellular, getSampleLipid_Extracellular, getSampleLipid_Intracellular, getSelectedArea, getStartingTime, getSystemCovalentRadius, getSystemVanDerWaalsRadius, getTerminationTime, getTotalHeight, getTotalHeight, hasMembraneAnyExtracellularLipids, hasMembraneAnyIntracellularLipids, hasMembraneAnyProteins, hasMultipleLayers, intersects, intersectsAnyMicroDomain, intersectsBorderEast, intersectsBorderNorth, intersectsBorders, intersectsBorderSouth, intersectsBorderWest, intersectsEarth, intersectsEarthOrSky, intersectsMoleculeWithMolecule, intersectsMoleculeWithMolecules, intersectsSky, intersectsWithLipid, intersectsWithProteins, isAtomCollisionOn, isAtomDistanceAbsolute, isComputeAbsoluteValuesSelected, isInSystemTray, isOnAir, isStartInBackgroundAllowed, isStartInBackgroundSelected, manuallyUpdateStatistics, MembraneHasAnyExtracellularLipids, MembraneHasAnyIntracellularLipids, nearestAtomPoints, nearestTrianglePoints, refreshViews, removeExtracellularLipid, removeIntracellularLipid, removeLipidsFromMembrane, requestChangeOfRenderMode, restoreMembraneFromPDB, returnFromSystemTray, sendToSystemTray, setComputeAbsoluteValues, setDisplayedProgress, setListenerAndPrepare, setListenerAndPrepare, setListenerAndPrepare, setPercentages, setSimpleRandom, setStartInBackgroundAllowed, setStartInBackgroundSelected, setStartingTime, setTerminationTime, setUniqueRandom
public boolean buildAndShowGui()
buildAndShowGui
in interface MembranePackingAlgorithmInterface
public void fillWithLipids()
fillWithLipids
in interface MembranePackingAlgorithmInterface
public void setInitialState()
public Lipid testForBetterPositionInFirstState(Lipid lip, int membraneside)
lip
- membraneside
- public void shakeMolecule(Molecule mol)
mol
- public void simulateAnnealing()
public void simulateAnnealingStep(int membraneside)
membraneside
- public void placeNewLipidDuringSimulationRandom(int membraneside)
membraneside
- public void placeNewLipidDuringSimulationBorder(int membraneside)
membraneside
- public Lipid getRandomLipid(int membraneside)
membraneside
- public void moveMolecule(Lipid mol, int membraneside)
mol
- ori
- membraneside
- public float energyFunction(Molecule mol, int membraneside)
public void simpleMode()
public void stateChanged(javax.swing.event.ChangeEvent arg0)
stateChanged
in interface javax.swing.event.ChangeListener
public void itemStateChanged(java.awt.event.ItemEvent arg0)
itemStateChanged
in interface java.awt.event.ItemListener
public void actionPerformed(java.awt.event.ActionEvent arg0)
actionPerformed
in interface java.awt.event.ActionListener
public java.lang.String getFullInformation()
getFullInformation
in interface MembranePackingAlgorithmInterface
MembranePackingAlgorithmInterface.getFullInformation()
public java.lang.String getName()
getName
in interface MembranePackingAlgorithmInterface
public java.lang.String getShortInformation()
getShortInformation
in interface MembranePackingAlgorithmInterface
public java.lang.String getStringRepresentationOfSetupParameters()
getStringRepresentationOfSetupParameters
in interface MembranePackingAlgorithmInterface
public void stopAlgorithm()
stopAlgorithm
in interface MembranePackingAlgorithmInterface
public boolean supportsAbsoluteValues()
supportsAbsoluteValues
in interface MembranePackingAlgorithmInterface
public boolean supportsMicrodomains()
supportsMicrodomains
in interface MembranePackingAlgorithmInterface
public boolean overrideExistingLipids()
overrideExistingLipids
in interface MembranePackingAlgorithmInterface
public java.awt.Component getRuntimeControlPanel()
getRuntimeControlPanel
in interface MembranePackingAlgorithmInterface