Skip to content

Commit

Permalink
feat: update OCL to v2022.10.2
Browse files Browse the repository at this point in the history
  • Loading branch information
targos committed Oct 17, 2022
1 parent 14ffa2e commit 64b7d9a
Show file tree
Hide file tree
Showing 88 changed files with 19,624 additions and 447 deletions.
2 changes: 1 addition & 1 deletion openchemlib
Submodule openchemlib updated 44 files
+2 −2 pom.xml
+20 −14 src/main/java/com/actelion/research/chem/AbstractDepictor.java
+3 −0 src/main/java/com/actelion/research/chem/Canonizer.java
+131 −49 src/main/java/com/actelion/research/chem/ExtendedMolecule.java
+69 −0 src/main/java/com/actelion/research/chem/ExtendedMoleculeFunctions.java
+47 −4 src/main/java/com/actelion/research/chem/IDCodeParserWithoutCoordinateInvention.java
+92 −55 src/main/java/com/actelion/research/chem/Molecule.java
+3 −0 src/main/java/com/actelion/research/chem/MoleculeStandardizer.java
+134 −22 src/main/java/com/actelion/research/chem/RingCollection.java
+88 −29 src/main/java/com/actelion/research/chem/SSSearcher.java
+3 −12 src/main/java/com/actelion/research/chem/SSSearcherWithIndex.java
+6 −6 src/main/java/com/actelion/research/chem/SmilesParser.java
+208 −57 src/main/java/com/actelion/research/chem/TautomerHelper.java
+10 −1 src/main/java/com/actelion/research/chem/conf/BondLengthSet.java
+1 −0 src/main/java/com/actelion/research/chem/conf/TorsionDB.java
+2 −1 src/main/java/com/actelion/research/chem/contrib/DiastereotopicAtomID.java
+1 −1 src/main/java/com/actelion/research/chem/coords/CoordinateInventor.java
+3 −2 src/main/java/com/actelion/research/chem/descriptor/DescriptorHandlerAllFragmentsFP.java
+67 −0 src/main/java/com/actelion/research/chem/descriptor/flexophore/MolDistHistHelper.java
+7 −8 src/main/java/com/actelion/research/chem/descriptor/flexophore/PPNode.java
+170 −20 ...ion/research/chem/descriptor/flexophore/completegraphmatcher/ObjectiveBlurFlexophoreHardMatchUncovered.java
+14 −7 src/main/java/com/actelion/research/chem/descriptor/flexophore/generator/CreatorMolDistHistViz.java
+3 −0 src/main/java/com/actelion/research/chem/descriptor/flexophore/generator/MultCoordFragIndex.java
+16 −16 src/main/java/com/actelion/research/chem/descriptor/flexophore/generator/SubFlexophoreGenerator.java
+59 −45 src/main/java/com/actelion/research/chem/io/CompoundFileHelper.java
+2 −2 src/main/java/com/actelion/research/chem/reaction/ReactionSearch.java
+12 −4 src/main/java/com/actelion/research/chem/reaction/Transformer.java
+8 −2 src/main/java/com/actelion/research/chem/reaction/TransformerRule.java
+20 −0 src/main/java/com/actelion/research/chem/reaction/mapping/ChemicalRuleEnhancedReactionMapper.java
+22 −5 src/main/java/com/actelion/research/gui/CompoundCollectionPane.java
+6 −3 src/main/java/com/actelion/research/gui/FileHelper.java
+17 −9 src/main/java/com/actelion/research/gui/JFileChooserOverwrite.java
+23 −7 src/main/java/com/actelion/research/gui/clipboard/ClipboardHandler.java
+129 −95 src/main/java/com/actelion/research/gui/editor/AtomQueryFeatureDialogBuilder.java
+34 −20 src/main/java/com/actelion/research/gui/editor/BondQueryFeatureDialogBuilder.java
+59 −15 src/main/java/com/actelion/research/gui/editor/GenericEditorArea.java
+11 −24 src/main/java/com/actelion/research/gui/editor/GenericEditorToolbar.java
+9 −5 src/main/java/com/actelion/research/util/CommandLineParser.java
+2 −2 src/main/java/com/actelion/research/util/SortedList.java
+1 −1 src/main/java/com/actelion/research/util/UniqueList.java
+139 −26 src/main/java/com/actelion/research/util/graph/complete/CompleteGraphMatcher.java
+3 −0 src/main/java/com/actelion/research/util/graph/complete/IObjectiveCompleteGraph.java
+4 −1 src/main/java/com/actelion/research/util/graph/complete/SolutionCompleteGraph.java
+28 −11 src/main/resources/html/editor/editor.html
74 changes: 59 additions & 15 deletions scripts/openchemlib/classes.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ const changed = [
['chem/MolfileCreator', changeLineSeparator],
['chem/MolfileV3Creator', changeLineSeparator],
['chem/Molecule3D', removeCloneInfos],
['chem/TautomerHelper', changeTautomerHelper],
['chem/TextDrawingObject', changeTextDrawingObject],
['gui/editor/GenericEditorArea', changeGenericEditorArea],
['gui/editor/CustomAtomDialogBuilder', changeCustomAtomDialogBuilder],
['share/gui/editor/Model', removePrintf],
['util/ArrayUtils', changeArrayUtils],
['util/datamodel/IntVec', changeIntVec],
];

exports.changed = changed.map(([path, ...transformers]) => {
Expand Down Expand Up @@ -93,8 +97,6 @@ const removed = [
'chem/descriptor/pharmacophoretree',
'chem/dnd', // ui
'chem/docking',
'chem/ExtendedDepictor.java',
'chem/ExtendedMoleculeFunctions.java',
'chem/forcefield/mmff/Sdf.java', // needs access to disk
'chem/hyperspace',
'chem/interactionstatistics',
Expand All @@ -103,11 +105,9 @@ const removed = [
'chem/io/DWARFileCreator.java',
'chem/io/NativeMDLReactionReader.java',
'chem/io/pdb',
'chem/mcs',
'chem/mmp',
'chem/Molecule3DFunctions.java',
'chem/optimization/MCHelper.java',
'chem/PeriodicTable.java',
'chem/phesa',
'chem/phesaflex',
'chem/potentialenergy',
Expand All @@ -117,32 +117,30 @@ const removed = [
'chem/properties/complexity',
'chem/properties/fractaldimension',
'chem/reaction/ClassificationData.java',
'chem/reaction/CommonSubGraphHelper.java',
'chem/reaction/FunctionalGroupClassifier.java',
'chem/reaction/mapping',
'chem/reaction/MCSReactionMapper.java',
'chem/reaction/ReactionClassifier.java',
'chem/reaction/ReactionSearch.java',
'chem/RingHelper.java',
'chem/shredder/Fragment.java',
'chem/StructureSearch.java',
'jfx',
'gui/clipboard',
'gui/clipboard/ClipboardHandler.java',
'gui/clipboard/external',
'gui/clipboard/ImageClipboardHandler.java',
'gui/clipboard/NativeClipboardAccessor.java',
'gui/clipboard/TextClipboardHandler.java',
'gui/CompoundCollectionPane.java',
'gui/dnd',
'gui/dock',
'gui/editor/CustomAtomDialogBuilder.java',
'gui/editor/FXEditorArea.java',
'gui/editor/FXEditorDialog.java',
'gui/editor/FXEditorPane.java',
'gui/editor/FXEditorToolbar.java',
'gui/editor/GenericEditorArea.java',
'gui/editor/GenericEditorToolbar.java',
'gui/editor/SwingEditorArea.java',
'gui/editor/SwingEditorDialog.java',
'gui/editor/SwingEditorPanel.java',
'gui/editor/SwingEditorToolbar.java',
'gui/FileHelper.java',
'gui/fx',
'gui/HeaderPaintHelper.java',
'gui/hidpi',
Expand All @@ -168,11 +166,9 @@ const removed = [
'gui/JScrollableMenu.java',
'gui/JStructureView.java',
'gui/JTextDrawingObjectDialog.java',
'gui/LookAndFeelHelper.java',
'gui/MultiPanelDragListener.java',
'gui/PopupItemProvider.java',
'gui/ScrollPaneAutoScrollerWhenDragging.java',
'gui/swing',
'gui/table',
'gui/VerticalFlowLayout.java',
'gui/wmf',
Expand All @@ -184,7 +180,6 @@ const removed = [
'util/CommandLineParser.java',
'util/concurrent',
'util/convert/String2DoubleArray.java',
'util/datamodel',
'util/Formatter.java',
'util/graph',
'util/IO.java',
Expand Down Expand Up @@ -213,6 +208,9 @@ exports.generated = generated.map((file) => [getFilename(file[0]), file[1]]);
function getFilename(file) {
if (file.startsWith('@org/')) {
return `../org/${file.replace('@org/', '')}.java`;
}
if (file.startsWith('@gwt/')) {
return `../../${file.replace('@gwt/', '')}.java`;
} else {
return `actelion/research/${file}.java`;
}
Expand All @@ -228,7 +226,10 @@ function getFolderName(file) {

function methodRegExp(methodName, options = {}) {
const { indent = '\t' } = options;
return new RegExp(`public.*? ${methodName}\\(.*\n(.*\n)*?${indent}}`, 'g');
return new RegExp(
`(?:public|private|protected).*? ${methodName}\\(.*\n(?:.*\n)*?${indent}}`,
'g',
);
}

function removePrintf(code) {
Expand All @@ -253,19 +254,62 @@ function removeCloneInfos(code) {
);
}

function changeTautomerHelper(code) {
code = code.replace(
'import java.util',
'import java.util.Arrays;\nimport java.util',
);
code = code.replace(
'mRegionDCount.clone();',
'Arrays.copyOf(mRegionDCount, mRegionDCount.length);',
);
code = code.replace(
'mRegionTCount.clone();',
'Arrays.copyOf(mRegionTCount, mRegionTCount.length);',
);
return code;
}

function changeTextDrawingObject(code) {
return code.replace(
'detail.append(String.format(" size=\\"%.4f\\"", new Double(mSize)));',
'detail.append(" size=\\""+mSize+"\\"");',
);
}

function changeGenericEditorArea(code) {
// TODO: find replacements
code = code.replaceAll(
methodRegExp('showWarningMessage'),
'private void showWarningMessage(String msg) {}',
);
code = code.replaceAll(
methodRegExp('openReaction'),
'private void openReaction() {}',
);
code = code.replaceAll('System.getProperty("development") != null', 'false');
return code;
}

function changeCustomAtomDialogBuilder(code) {
code = code.replace('e.getSource() instanceof JTextField', 'false');
return code;
}

function changeArrayUtils(code) {
code = removeSlice(code, '\n /**\n * Resize an array', 'return newArray;\n }');
code = removeSlice(code, '\n /**\n * Copy an array ', 'return newArray;\n }');
return code;
}

function changeIntVec(code) {
const options = { indent: ' ' };
code = code.replace(methodRegExp('convert', options), '');
code = code.replace(methodRegExp('read', options), '');
code = code.replace(methodRegExp('readBitStringDense', options), '');
return code;
}

function removeSlice(code, start, end) {
const startIdx = code.indexOf(start);
if (startIdx === -1) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
package com.actelion.research.gui.hidpi;

import com.actelion.research.gui.generic.GenericImage;

public class HiDPIHelper {
public static int scale(float value) {
return value;
return Math.round(getUIScaleFactor() * value);
}

public static float getUIScaleFactor() {
return 1.0f;
}

public static void adaptForLookAndFeel(GenericImage image) {
return;
}

public static void disableImage(GenericImage image) {
return;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public abstract class AbstractDepictor<T> {
public static final int cDModeSuppressCIPParity = 0x0040;
public static final int cDModeSuppressESR = 0x0080;

private static final int cDModeShowSymmetryAny = 0x0700;
private static final int cDModeShowSymmetryAny = 0x0300;
public static final int cDModeShowSymmetrySimple = 0x0100;
public static final int cDModeShowSymmetryStereoHeterotopicity = 0x0200;
public static final int cDModeNoImplicitAtomLabelColors = 0x0400;
Expand Down Expand Up @@ -1782,30 +1782,36 @@ else if (neighbours == Molecule.cAtomQFNot0Neighbours+Molecule.cAtomQFNot1Neighb
else if (neighbours == (Molecule.cAtomQFNeighbours & ~Molecule.cAtomQFNot4Neighbours))
isoStr = append(isoStr, "n>3");
}
if ((queryFeatures & Molecule.cAtomQFZValue) != 0) {
long eNegNeighbours = (queryFeatures & Molecule.cAtomQFZValue);
if (eNegNeighbours == (Molecule.cAtomQFZValue & ~Molecule.cAtomQFZValueNot0))
if ((queryFeatures & Molecule.cAtomQFENeighbours) != 0) {
long eNegNeighbours = (queryFeatures & Molecule.cAtomQFENeighbours);
if (eNegNeighbours == (Molecule.cAtomQFENeighbours & ~Molecule.cAtomQFNot0ENeighbours))
isoStr = append(isoStr, "e0");
else if (eNegNeighbours == (Molecule.cAtomQFZValue & ~Molecule.cAtomQFZValueNot1))
else if (eNegNeighbours == (Molecule.cAtomQFENeighbours & ~Molecule.cAtomQFNot1ENeighbour))
isoStr = append(isoStr, "e1");
else if (eNegNeighbours == (Molecule.cAtomQFZValue & ~Molecule.cAtomQFZValueNot2))
else if (eNegNeighbours == (Molecule.cAtomQFENeighbours & ~Molecule.cAtomQFNot2ENeighbours))
isoStr = append(isoStr, "e2");
else if (eNegNeighbours == (Molecule.cAtomQFZValue & ~Molecule.cAtomQFZValueNot3))
else if (eNegNeighbours == (Molecule.cAtomQFENeighbours & ~Molecule.cAtomQFNot3ENeighbours))
isoStr = append(isoStr, "e3");
else if (eNegNeighbours == (Molecule.cAtomQFZValueNot2 | Molecule.cAtomQFZValueNot3 | Molecule.cAtomQFZValueNot4))
else if (eNegNeighbours == (Molecule.cAtomQFNot2ENeighbours | Molecule.cAtomQFNot3ENeighbours | Molecule.cAtomQFNot4ENeighbours))
isoStr = append(isoStr, "e<2");
else if (eNegNeighbours == (Molecule.cAtomQFZValueNot3 | Molecule.cAtomQFZValueNot4))
else if (eNegNeighbours == (Molecule.cAtomQFNot3ENeighbours | Molecule.cAtomQFNot4ENeighbours))
isoStr = append(isoStr, "e<3");
else if (eNegNeighbours == Molecule.cAtomQFZValueNot4)
else if (eNegNeighbours == Molecule.cAtomQFNot4ENeighbours)
isoStr = append(isoStr, "e<4");
else if (eNegNeighbours == Molecule.cAtomQFZValueNot0)
else if (eNegNeighbours == Molecule.cAtomQFNot0ENeighbours)
isoStr = append(isoStr, "e>0");
else if (eNegNeighbours == (Molecule.cAtomQFZValueNot0 | Molecule.cAtomQFZValueNot1))
else if (eNegNeighbours == (Molecule.cAtomQFNot0ENeighbours | Molecule.cAtomQFNot1ENeighbour))
isoStr = append(isoStr, "e>1");
else if (eNegNeighbours == (Molecule.cAtomQFZValueNot0 | Molecule.cAtomQFZValueNot1 | Molecule.cAtomQFZValueNot2))
else if (eNegNeighbours == (Molecule.cAtomQFNot0ENeighbours | Molecule.cAtomQFNot1ENeighbour | Molecule.cAtomQFNot2ENeighbours))
isoStr = append(isoStr, "e>2");
else if (eNegNeighbours == (Molecule.cAtomQFZValue & ~Molecule.cAtomQFZValueNot4))
else if (eNegNeighbours == (Molecule.cAtomQFENeighbours & ~Molecule.cAtomQFNot4ENeighbours))
isoStr = append(isoStr, "e>3");
else if (eNegNeighbours == (Molecule.cAtomQFNot0ENeighbours | Molecule.cAtomQFNot3ENeighbours | Molecule.cAtomQFNot3ENeighbours))
isoStr = append(isoStr, "e1-2");
else if (eNegNeighbours == (Molecule.cAtomQFNot0ENeighbours | Molecule.cAtomQFNot4ENeighbours))
isoStr = append(isoStr, "e1-3");
else if (eNegNeighbours == (Molecule.cAtomQFNot0ENeighbours | Molecule.cAtomQFNot1ENeighbour | Molecule.cAtomQFNot4ENeighbours))
isoStr = append(isoStr, "e2-3");
}
if ((queryFeatures & Molecule.cAtomQFRingState) != 0) {
long ringBonds = (queryFeatures & Molecule.cAtomQFRingState);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3262,6 +3262,9 @@ private void idCodeCreate() {
addAtomQueryFeatures(29, nbits, Molecule.cAtomQFRxnParityHint, Molecule.cAtomQFRxnParityBits, Molecule.cAtomQFRxnParityShift);
addAtomQueryFeatures(30, nbits, Molecule.cAtomQFNewRingSize, Molecule.cAtomQFNewRingSizeBits, Molecule.cAtomQFNewRingSizeShift);
addAtomQueryFeatures(32, nbits, Molecule.cAtomQFStereoState, Molecule.cAtomQFStereoStateBits, Molecule.cAtomQFStereoStateShift);
addAtomQueryFeatures(33, nbits, Molecule.cAtomQFENeighbours, Molecule.cAtomQFENeighbourBits, Molecule.cAtomQFENeighbourShift);
addAtomQueryFeatures(34, nbits, Molecule.cAtomQFHeteroAromatic, 1, -1);
addBondQueryFeatures(35, nbits, Molecule.cBondQFMatchFormalOrder, 1, -1);
}

encodeBits(0, 1);
Expand Down
Loading

0 comments on commit 64b7d9a

Please sign in to comment.