@@ -0,0 +1,1367 @@
+package de.biomedical_imaging.traJ.features;%0A%0Aimport org.apache.commons.math3.linear.Array2DRowRealMatrix;%0Aimport org.apache.commons.math3.linear.EigenDecomposition;%0A%0Aimport de.biomedical_imaging.traJ.Trajectory;%0Aimport de.biomedical_imaging.traj.math.RadiusGyrationTensor2D;%0A%0A/**%0A * The features characterizes  the asymetry of the trajectory. %0A * %0A * It was implemented according to%0A * %0A * Helmuth, J.A. et al., 2007. %0A * A novel supervised trajectory segmentation algorithm identifies distinct types of human adenovirus motion in host cells. %0A * Journal of structural biology, 159(3), pp.347%E2%80%9358.%0A * @author Thorsten Wagner%0A *%0A */%0Apublic class Asymmetry3Feature extends AbstractTrajectoryFeature %7B%0A%0A%09private Trajectory t;%0A%09%0A%09public Asymmetry3Feature(Trajectory t) %7B%0A%09%09this.t = t;%0A%09%7D%0A%09%0A%09@Override%0A%09public double%5B%5D evaluate() %7B%0A%09%09Array2DRowRealMatrix gyr = RadiusGyrationTensor2D.getRadiusOfGyrationTensor(t);%0A%09%09EigenDecomposition eigdec = new EigenDecomposition(gyr);%0A%09%09double e1 = eigdec.getRealEigenvalue(0);%0A%09%09double e2 = eigdec.getRealEigenvalue(1);%0A%09%09double asym = -1*Math.log(1-Math.pow(e1-e2,2)/(2*Math.pow(e1+e2, 2)));%0A%09%09return new double%5B%5D%7Basym%7D;%0A%09%7D%0A%0A%09@Override%0A%09public String getName() %7B%0A%09%09return %22Assymetry3%22;%0A%09%7D%0A%0A%09@Override%0A%09public String getShortName() %7B%0A%09%09return %22ASYM3%22;%0A%09%7D%0A%0A%09@Override%0A%09public void setTrajectory(Trajectory t) %7B%0A%09%09this.t = t;%0A%09%09%0A%09%7D%0A%0A%7D%0A

Add another Asymmetry Feature