Skip to content

Commit

Permalink
Merge branch 'develop' into release3.2_k3.7
Browse files Browse the repository at this point in the history
  • Loading branch information
niederle committed Feb 13, 2019
2 parents db153fd + 17da2d3 commit 87e6935
Show file tree
Hide file tree
Showing 77 changed files with 6,351 additions and 620 deletions.
35 changes: 34 additions & 1 deletion CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
======================================================================================================
2018-11-27
2019-02-13
VERSION v3.3.0

ISSUES

* Nodes using R (e.g. Dose Response Node) will use Rserve library 1.8-6 to avoid communication problems with R 3.5+

NEW NODE

* CV (new improved version)
* Binning Calculate
* Binning Apply
* Create Interval
* Split Interval

NEW FEATURES / IMPROVEMENTS

* two additional cell renderers for IntervalCells (human readable + scientific)

======================================================================================================
2019-01-10 (develop only)
VERSION v3.2.1

NEW NODE

* CV (new improved version)

======================================================================================================
2018-11-27 (develop only)
VERSION v3.2.0

ISSUES

* Nodes using R (e.g. Dose Response Node) will use Rserve library 1.8-6 to avoid communication problems with R 3.5+

NEW NODE

* Binning Calculate
* Binning Apply

======================================================================================================
2018-07-18
VERSION v3.1.2
Expand Down
11 changes: 5 additions & 6 deletions LICENSE.txt → LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
Copyright (c) 2014, Max Planck Institute of Molecular Cell Biology and Genetics
All rights reserved.

********************
BSD 3-Clause License
********************
***

# 3-clause BSD License


Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Expand All @@ -28,6 +29,4 @@ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

********************
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Knime provides powerful and flexible means to mine data. However, screening data
requires some particular methods, that should be usable with little effort for
daily analysis tasks. Therefore the High Content Screening Tools (HCS-Tools)
come with a set of nodes to make the life of "screeners" easier.



## Useful Links
* [The KNIME framework](www.knime.org)
* [KNIME community contributions](https://www.knime.com/community)
* [HCS Tools Wiki](https://github.com/knime-mpicbg/HCS-Tools/wiki)

## Development
Since KNIME is an Eclipse application it is easiest to use that IDE. Follow the instruction on [KNIME SDK](https://github.com/knime/knime-sdk-setup) repository to install and confige Eclipse for KNIME development.


To work on this project use `File → Import → Git → Projects from Git File → Clone URI` and enter this repositorie's URL.


### Debug Configuration:

In the main menu of Eclipse go to `Run → Debug Configurations... → Eclipas Application → KNIME Analytics Platform` and hit `Debug`.

You might want to change the memory settings in the `Arguments` tab of the debug configuration by adding:

-XX:MaxPermSize=256m


## Installation
Once [KNIME Analytics Platform](https://www.knime.com/knime-software/knime-analytics-platform) is installed you have the following possibilities:

1. The easiest is to use the p2 update mechanism of KNIME (Help > Install new Software). Find the detailed instructions on the [HCS Tools](https://www.knime.com/community/hcs-tools) page of the KNIME Community Contributions website.
2. Use eclipse to build the plugins yourself and add them to the plugin directory of the KNIME installation.
36 changes: 0 additions & 36 deletions README.txt

This file was deleted.

1 change: 1 addition & 0 deletions de.mpicbg.knime.hcs.base/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bin/
15 changes: 8 additions & 7 deletions de.mpicbg.knime.hcs.base/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,27 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HCS-Tools for KNIME
Bundle-SymbolicName: de.mpicbg.knime.hcs.base;singleton:=true
Bundle-Version: 3.2.000.qualifier
Bundle-Version: 3.3.000.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: hcstools.jar
Bundle-Activator: de.mpicbg.knime.hcs.base.HCSToolsBundleActivator
Bundle-ActivationPolicy: lazy
Bundle-Vendor: Max Planck Institute of Molecular Cell Biology and Genetics (MPI-CBG)
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
org.apache.commons.math;bundle-version="2.1.0",
org.apache.commons.math3;bundle-version="3.4.1",
org.apache.commons.logging;bundle-version="1.1.1",
org.apache.commons.lang3;bundle-version="3.2.1",
org.knime.base;bundle-version="[3.5.0,4.0.0)",
de.mpicbg.knime.knutils;bundle-version="[3.1.0,4.0.0)",
de.mpicbg.knime.knutils;bundle-version="[3.1.2,4.0.0)",
de.mpicbg.knime.scripting.libs;bundle-version="3.2.0",
de.mpicbg.knime.scripting.core;bundle-version="3.2.0",
de.mpicbg.knime.scripting.r;bundle-version="[3.2.0,4.0.0)",
de.mpicbg.knime.scripting.core;bundle-version="3.3.0",
de.mpicbg.knime.scripting.r;bundle-version="[3.3.0,4.0.0)",
de.mpicbg.knime.hcs.libs;bundle-version="3.1.0",
de.mpicbg.knime.hcs.core;bundle-version="[3.1.1,4.0.0)",
de.mpicbg.knime.hcs.core;bundle-version="[3.1.2,4.0.0)",
org.apache.poi;bundle-version="3.9.0",
org.apache.poi.ooxml;bundle-version="3.9.0",
nu.xom;bundle-version="1.2.10"
nu.xom;bundle-version="1.2.10",
org.knime.core.pmml;bundle-version="3.6.0"


76 changes: 55 additions & 21 deletions de.mpicbg.knime.hcs.base/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,24 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse version="3.0"?><!--
~ Module Name: hcstools
~ This module is a plugin for the KNIME platform <http://www.knime.org/>
~
~ Copyright (c) 2011.
~ Max Planck Institute of Molecular Cell Biology and Genetics, Dresden
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as
~ published by the Free Software Foundation, either version 3 of the
~ License, or (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ Detailed terms and conditions are described in the license.txt.
~ also see <http://www.gnu.org/licenses/>.
--><plugin>
<?eclipse version="3.0"?>
<plugin>

<extension point="org.knime.workbench.repository.nodes">

Expand All @@ -43,7 +25,11 @@
<!--quality control-->
<node category-path="/community/hcstools/qc" factory-class="de.mpicbg.knime.hcs.base.nodes.qc.ZPrimesNxMFactory" id="de.mpicbg.tds.knime.hcstools.qualitycontrol.ZPrimesNxMFactory"/>

<node category-path="/community/hcstools/qc" factory-class="de.mpicbg.knime.hcs.base.nodes.qc.CVCalculatorFactory" id="de.mpicbg.tds.knime.hcstools.qualitycontrol.CVCalculatorFactory"/>
<node
category-path="/community/hcstools/qc"
deprecated="true"
factory-class="de.mpicbg.knime.hcs.base.nodes.qc.CVCalculatorFactory"
id="de.mpicbg.tds.knime.hcstools.qualitycontrol.CVCalculatorFactory"/>

<node category-path="/community/hcstools/qc" factory-class="de.mpicbg.knime.hcs.base.nodes.qc.SSMD_NxMFactory" id="de.mpicbg.tds.knime.hcstools.qualitycontrol.SSMD_NxMFactory"/>

Expand Down Expand Up @@ -106,11 +92,33 @@
<node category-path="/community/hcstools/prepro" factory-class="de.mpicbg.knime.hcs.base.nodes.preproc.GroupMutualInformationFactory" id="de.mpicbg.tds.knime.hcstools.preprocessing.GroupMutualInformationFactory"/>

<node category-path="/community/hcstools/populationanalysis" factory-class="de.mpicbg.knime.hcs.base.nodes.mine.BinningAnalysisNodeFactory" id="de.mpicbg.tds.knime.hcstools.populationanalysis.BinningAnalysisNodeFactory"/>

<node category-path="/community/hcstools/populationanalysis" factory-class="de.mpicbg.knime.hcs.base.nodes.mine.binningcalculate.BinningCalculateNodeFactory" id="de.mpicbg.knime.hcs.base.nodes.mine.binningcalculate.BinningCalculateNodeFactory"/>

<node category-path="/community/hcstools/manipulation/column" factory-class="de.mpicbg.knime.hcs.base.nodes.manip.col.numformat.NumberFormatterNodeFactory" id="de.mpicbg.knime.hcs.base.nodes.manip.col.numformat.NumberFormatterNodeFactory"/>

<node category-path="/community/hcstools/util" factory-class="de.mpicbg.knime.hcs.base.nodes.layout.createwellposition.CreateWellPositionNodeFactory" id="de.mpicbg.knime.hcs.base.nodes.layout.createwellposition.CreateWellPositionNodeFactory"/>

<node
category-path="/community/hcstools/populationanalysis"
deprecated="false"
factory-class="de.mpicbg.knime.hcs.base.nodes.mine.binningapply.BinningApplyNodeFactory">
</node>
<node
category-path="/community/hcstools/qc"
deprecated="false"
factory-class="de.mpicbg.knime.hcs.base.nodes.qc.cv.CVCalculatorNodeFactory">
</node>
<node
category-path="/community/hcstools/manipulation/column/"
deprecated="false"
factory-class="de.mpicbg.knime.hcs.base.nodes.manip.col.splitinterval.SplitIntervalNodeFactory">
</node>
<node
category-path="/community/hcstools/manipulation/column/"
deprecated="false"
factory-class="de.mpicbg.knime.hcs.base.nodes.manip.col.createinterval.CreateIntervalNodeFactory">
</node>
</extension>

<extension point="org.knime.workbench.repository.categories">
Expand Down Expand Up @@ -156,5 +164,31 @@
<AggregationOperator AggregationOperator="de.mpicbg.knime.hcs.base.aggregation.HCSMadOperator" deprecated="false">
</AggregationOperator>
</extension>
<extension
point="org.knime.core.DataValueRenderer">
<dataValue
valueClass="org.knime.core.data.IntervalValue">
<renderer
rendererFactoryClass="de.mpicbg.knime.hcs.base.IntervalValueRenderer$IntervalValueRendererFactory"
suggestAsDefault="true">
</renderer>
<renderer
rendererFactoryClass="de.mpicbg.knime.hcs.base.IntervalValueScientificRenderer$IntervalValueScientificRendererFactory"
suggestAsDefault="false">
</renderer>
</dataValue>
</extension>
<extension
point="org.knime.core.PortType">
<portType
color="#99ff33"
hidden="false"
name="Binning Port Object"
objectClass="de.mpicbg.knime.hcs.base.node.port.binning.BinningPortObject"
objectSerializer="de.mpicbg.knime.hcs.base.node.port.binning.BinningPortObjectSerializer"
specClass="de.mpicbg.knime.hcs.base.node.port.binning.BinningPortObjectSpec"
specSerializer="de.mpicbg.knime.hcs.base.node.port.binning.BinningPortObjectSpec$Serializer">
</portType>
</extension>

</plugin>
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package de.mpicbg.knime.hcs.base;

import java.text.NumberFormat;
import java.util.Locale;

import org.knime.core.data.DataColumnSpec;
import org.knime.core.data.IntervalValue;
import org.knime.core.data.renderer.DataValueRenderer;
import org.knime.core.data.renderer.DataValueRendererFactory;
import org.knime.core.data.renderer.DefaultDataValueRenderer;

/**
* DataValueRenderer extension for {@link IntervalValue}
* IntervalValues will be rendered with human readable format (rounded double values)
*
* @author Antje Janosch
*
*/
@SuppressWarnings("serial")
public class IntervalValueRenderer extends DefaultDataValueRenderer {

private NumberFormat m_format = NumberFormat.getNumberInstance(Locale.US);

public IntervalValueRenderer(String description) {
super(description);
if (description == null) {
throw new IllegalArgumentException("Description must not be null.");
}
}

/**
/** Sets the interval values to a human readable format
* @param value The value to be rendered.
* @see javax.swing.table.DefaultTableCellRenderer#setValue(Object)
*/
@Override
protected void setValue(final Object value) {
Object newValue;
if (value instanceof IntervalValue) {

IntervalValue cell = (IntervalValue)value;
double leftBound = cell.getLeftBound();
double rightBound = cell.getRightBound();
boolean inclLeft = cell.leftBoundIncluded();
boolean inclRight = cell.rightBoundIncluded();

String left = m_format != null ? m_format.format(leftBound) : Double.toString(leftBound);
String right = m_format != null ? m_format.format(rightBound) : Double.toString(rightBound);

String leftIncl = inclLeft ? "[ " : "( ";
String rightIncl = inclRight ? " ]" : " )";

newValue = (leftIncl + left + " ; " + right + rightIncl);

} else {
// missing data cells will also end up here
newValue = value;
}
super.setValue(newValue);
}

/**
* Factory for a {@link IntervalValueRenderer} that shows a human readable format
*/
public static final class IntervalValueRendererFactory implements DataValueRendererFactory {

private static final String DESCRIPTION = "Human Readable";

@Override
public String getDescription() {
return DESCRIPTION;
}

@Override
public DataValueRenderer createRenderer(DataColumnSpec colSpec) {
return new IntervalValueRenderer(DESCRIPTION);
}

@Override
public String getId() {
return this.getClass().getName();
}
}

}
Loading

0 comments on commit 87e6935

Please sign in to comment.