Commit 8cdf263c authored by Andrey Filippov's avatar Andrey Filippov

Debugging

parent fb528d3a
......@@ -404,7 +404,6 @@ public class CuasMotion {
double lma_a2a = clt_parameters.imp.cuas_lma_a2a; // = 0.7; // Minimal ratio of the maximal pixel to the amplitude
boolean remove_isolated= clt_parameters.imp.cuas_isolated; // true;
double max_mismatch = clt_parameters.imp.cuas_max_mismatch; // 2;
double mask_width = clt_parameters.imp.cuas_mask_width; // 9;
double mask_blur = clt_parameters.imp.cuas_mask_blur; // 3;
......@@ -1250,6 +1249,7 @@ public class CuasMotion {
threads[ithread] = new Thread() {
public void run() {
double [] pix_tile = new double [tile2 * tile2];
double [] pix_tile_filtered0 = use_filters ? new double [tile2 * tile2]:null;
double [] pix_tile_filtered = use_filters ? new double [tile2 * tile2]:null;
boolean [] disabled = new boolean[pix_tile.length];
TileNeibs tn = new TileNeibs(tile2,tile2);
......@@ -1377,6 +1377,7 @@ public class CuasMotion {
pix_tile_filtered[i] = Math.max(lmax_flt_neglim, pix_tile_filtered[i]);
}
}
System.arraycopy(pix_tile_filtered, 0, pix_tile_filtered0, 0, pix_tile_filtered.length);
gb.blurDouble(
pix_tile_filtered, //
......@@ -1386,7 +1387,7 @@ public class CuasMotion {
lmax_flt_hsigma, // double sigmaY,
0.01); // double accuracy)
for (int i = 0; i < pix_tile_filtered.length; i++) {
pix_tile_filtered[i] = pix_tile[i] - pix_tile_filtered[i];
pix_tile_filtered[i] = pix_tile_filtered0[i] - pix_tile_filtered[i];
}
gb.blurDouble(
pix_tile_filtered, //
......@@ -4136,6 +4137,7 @@ public class CuasMotion {
double lma_maxk = clt_parameters.imp.cuas_lma_maxk; // = 5.0; // Minimal K (overshoot) > 3.8
double lma_a2a = clt_parameters.imp.cuas_lma_a2a; // = 0.7; // Minimal ratio of the maximal pixel to the amplitude
double max_mismatch = clt_parameters.imp.cuas_max_mismatch; // 2;
double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 2;
boolean fail_mismatch = clt_parameters. imp.cuas_fail_mismatch; // Fail on high mismatch early (when calculating scores);
double target_horizon= clt_parameters.imp.cuas_horizon;
......@@ -4776,7 +4778,7 @@ public class CuasMotion {
lma_mink, // final double lma_mink, // = 0.0; // Minimal K (overshoot) = 1.0
lma_maxk, // final double lma_maxk, // = 5.0; // Minimal K (overshoot) = 3.0// final double lma_a2a,
lma_a2a, // final double lma_a2a,
max_mismatch, // final double max_mismatch,
0, // max_mismatch, // final double max_mismatch, apply only during final, when mismatch scores are calculated
fail_mismatch, // final boolean fail_mismatch,
target_horizon, // final double lma_horizon, // horizon as maximal pixel Y
cuasMotion.tilesX); // final int tilesX,
......@@ -4935,6 +4937,7 @@ public class CuasMotion {
double lma_maxk = clt_parameters.imp.cuas_lma_maxk; // = 5.0; // Minimal K (overshoot) > 3.8
double lma_a2a = clt_parameters.imp.cuas_lma_a2a; // = 0.7; // Minimal ratio of the maximal pixel to the amplitude
double max_mismatch = clt_parameters.imp.cuas_max_mismatch; // 2;
double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 0.4;
boolean fail_mismatch = clt_parameters.imp.cuas_fail_mismatch; // Fail on high mismatch early (when calculating scores);
double target_horizon= clt_parameters.imp.cuas_horizon;
// Handling overall target scores
......@@ -5185,8 +5188,15 @@ public class CuasMotion {
final boolean mask_round = clt_parameters.imp.cuas_mask_round; // false;
boolean remove_isolated= clt_parameters.imp.cuas_isolated;
boolean remove_2seq= clt_parameters.imp.cuas_remove_2seq;
// boolean remove_2seq= clt_parameters.imp.cuas_remove_2seq;
// boolean remove_2seq_all= clt_parameters.imp.cuas_remove_2seq_all;
int min_seq= clt_parameters.imp.cuas_min_seq; // 3; // minimal number of consecutive key frames for the same target
int min_seq_fl= clt_parameters.imp.cuas_min_seq_fl; // 2; // minimal number of consecutive key frames for the same target that includes first or last key frame
double max_mismatch = clt_parameters.imp.cuas_max_mismatch; // 2;
double good_mismatch = clt_parameters.imp.cuas_good_mismatch; // 2;
// boolean target_by_horizon = clt_parameters.imp.cuas_by_horizon; // true;
// double target_horizon= clt_parameters.imp.cuas_horizon; // a90
......@@ -5258,7 +5268,8 @@ public class CuasMotion {
if (remove_isolated) {
filterIsolatedTargets( // overwrites "good", does not change "when"
target_sequence, // final double [][][] targets,
remove_2seq, // boolean remove_2seq,
min_seq, // final int min_seq_length, // minimal sequence length not including first/last keyframes (may include)
min_seq_fl, // final int min_seq_length_fl,// < min_seq_length minimal sequence length that includes first/last keyframes
max_mismatch, // final double max_mismatch, // if <=0, do not calculate mismatch_ba and filter
cuasMotion.tilesX); // int tilesX) {
......@@ -5278,11 +5289,11 @@ public class CuasMotion {
cuasMotion.tilesX); // final int tilesX)
filterIsolatedTargets( // overwrites "good", does not change "when"
target_sequence, // final double [][][] targets,
remove_2seq, // boolean remove_2seq,
min_seq, // final int min_seq_length, // minimal sequence length not including first/last keyframes (may include)
min_seq_fl, // final int min_seq_length_fl,// < min_seq_length minimal sequence length that includes first/last keyframes
max_mismatch, // final double max_mismatch, // if <=0, do not calculate mismatch_ba and filter
cuasMotion.tilesX); // int tilesX) {
if (intermed_low) {
ImagePlus imp_no_singles_lma= showTargetSequence(
target_sequence, // double [][][] target_scene_sequence,
......@@ -5461,6 +5472,183 @@ public class CuasMotion {
}
}
public static void filterIsolatedTargets( // overwrites "good", does not change "when"
final double [][][] targets,
final int min_seq_length, // minimal sequence length not including first/last keyframes (may include)
final int min_seq_length_fl,// < min_seq_length minimal sequence length that includes first/last keyframes
final double max_mismatch_in, // if <=0, do not calculate mismatch_ba and filter
final int tilesX) {
final int num_seq = targets.length;
if (num_seq <0) {
filterIsolatedTargets( // overwrites "good", does not change "when"
targets, // final double [][][] targets,
true, // boolean remove_2seq,
max_mismatch_in, // final double max_mismatch, // if <=0, do not calculate mismatch_ba and filter
tilesX); // final int tilesX)
return;
}
final int num_tiles = targets[0].length;
final double max_mismatch = (max_mismatch_in > 0) ? max_mismatch_in : Double.POSITIVE_INFINITY;
final boolean [][] good_tiles = new boolean [num_seq][num_tiles];
final Thread[] threads = ImageDtt.newThreadArray();
final AtomicInteger ai = new AtomicInteger(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
TileNeibs tn = new TileNeibs(tilesX, num_tiles/tilesX);
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) if ((targets[nSeq][ntile] != null)
&& (targets[nSeq][ntile][CuasMotionLMA.RSLT_FAIL]==CuasMotionLMA.FAIL_NONE) &&
(targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]>0)) {
double [] ba = {targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_BEFORE],targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_AFTER]};
int [] dirs = decodeDirs(targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]);
for (int i = 0; i < ba.length; i++) {
if ((dirs[i] ==0) || (ba[i] > max_mismatch)) {
ba[i] = Double.NaN;
}
}
boolean has_fl = (nSeq==0) || (nSeq == (num_seq-1));
int seq_len = 1;
if (Double.isNaN(ba[0]) && Double.isNaN(ba[1])) { // no connections either way
continue;
}
int nseq1 = nSeq;
int ntile1 = ntile;
check_long_enough: {
if ((seq_len >= min_seq_length) || (has_fl && (seq_len >= min_seq_length_fl))) {
break check_long_enough;
}
// check after
int ba_index = 1;// 0 - before, 1 - after
// if required length is 0 or 1
while ((nseq1 < num_seq)) {// && (targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER] < max_mismatch) ) { // NaN will exit the loop
if ( (targets[nseq1][ntile1] == null) ||
(targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL] != CuasMotionLMA.FAIL_NONE) ||
!(targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER] <= max_mismatch)) {
/*
if (targets[nseq1][ntile1] == null) {
System.out.println("check after: targets["+nseq1+"]["+ntile1+"] == null, nSeq="+nSeq+", ntile="+ntile+", seq_len="+seq_len);
} else if (!(targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER] <= max_mismatch)){
System.out.println("check after: targets["+nseq1+"]["+ntile1+"]["+
CuasMotionLMA.RSLT_MISMATCH_BEFORE+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE]+
", ...["+CuasMotionLMA.RSLT_MISMATCH_AFTER+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER]+
", ...["+CuasMotionLMA.RSLT_MISMATCH_DIRS+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_DIRS]+
", seq_len="+seq_len);
} else {
System.out.println("check after: targets["+nseq1+"]["+ntile1+"] == null, nSeq="+nSeq+", ntile="+ntile+
"targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL]="+targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL]+", seq_len="+seq_len);
}
*/
break;
}
int dir = decodeDirs(targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS])[ba_index]; // direction to the tile in the next/previous keyframe
if (dir < 0) {
System.out.println("check after: nseq1="+nseq1+", ntile1="+ntile1+", dir="+dir+
", targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]="+
targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]+", seq_len="+seq_len);
break;
}
ntile1 = tn.getNeibIndex(ntile1, dir);
if (ntile1 < 0) {
System.out.println("check after: nseq1="+nseq1+", ntile1="+ntile1+", seq_len="+seq_len);
break;
}
nseq1++;
seq_len++;
has_fl |= (nseq1==0) || (nseq1 == (num_seq-1));
if ((seq_len >= min_seq_length) || (has_fl && (seq_len >= min_seq_length_fl))) {
System.out.println("+++1 nSeq="+nSeq+", ntile="+ntile+
", nseq1="+nseq1+", ntile1="+ntile1+
", seq_len="+seq_len+
" has_fl="+has_fl+", min_seq_length="+min_seq_length+", min_seq_length_fl="+min_seq_length_fl);
break check_long_enough;
}
}
// check before
nseq1 = nSeq;
ntile1 = ntile;
ba_index = 0;// 0 - before, 1 - after
while ((nseq1 >= 0)) {// && (targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE] < max_mismatch) ) { // NaN will exit the loop
if ( (targets[nseq1][ntile1] == null) ||
(targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL]!=CuasMotionLMA.FAIL_NONE) ||
!(targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE] <= max_mismatch)) {
/*
if (targets[nseq1][ntile1] == null) {
System.out.println("check after: targets["+nseq1+"]["+ntile1+"] == null, nSeq="+nSeq+", ntile="+ntile+", seq_len="+seq_len);
} else if (!(targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE] <= max_mismatch)){
System.out.println("check before: targets["+nseq1+"]["+ntile1+"]["+
CuasMotionLMA.RSLT_MISMATCH_BEFORE+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE]+
", ...["+CuasMotionLMA.RSLT_MISMATCH_AFTER+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER]+
", ...["+CuasMotionLMA.RSLT_MISMATCH_DIRS+"] = "+targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_DIRS]+
", seq_len="+seq_len);
} else {
System.out.println("check after: targets["+nseq1+"]["+ntile1+"] == null, nSeq="+nSeq+", ntile="+ntile+
"targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL]="+targets[nseq1][ntile1][CuasMotionLMA.RSLT_FAIL]+", seq_len="+seq_len);
}
*/
break;
}
int dir = decodeDirs(targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS])[ba_index]; // direction to the tile in the next/previous keyframe
if (dir < 0) {
System.out.println("check before: nseq1="+nseq1+", ntile1="+ntile1+", dir="+dir+
", targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]="+
targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS]+", seq_len="+seq_len);
break;
}
ntile1 = tn.getNeibIndex(ntile1, dir);
if (ntile1 < 0) {
System.out.println("check before: nseq1="+nseq1+", ntile1="+ntile1+", seq_len="+seq_len);
break;
}
nseq1--;
seq_len++;
has_fl |= (nseq1==0) || (nseq1 == (num_seq-1));
if ((seq_len >= min_seq_length) || (has_fl && (seq_len >= min_seq_length_fl))) {
System.out.println("+++2 nSeq="+nSeq+", ntile="+ntile+
", nseq1="+nseq1+", ntile1="+ntile1+
", seq_len="+seq_len+
" has_fl="+has_fl+", min_seq_length="+min_seq_length+", min_seq_length_fl="+min_seq_length_fl);
break check_long_enough;
}
}
continue; // not long enough to match requirements - not a good target
}
/*
System.out.println("*** nSeq="+nSeq+", ntile="+ntile+
", nseq1="+nseq1+", ntile1="+ntile1+
", seq_len="+seq_len+
" has_fl="+has_fl+", min_seq_length="+min_seq_length+", min_seq_length_fl="+min_seq_length_fl);
*/
good_tiles [nSeq][ntile] = true;
}
}
}
};
}
ImageDtt.startAndJoin(threads);
ai.set(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) if ((targets[nSeq][ntile] != null) && !good_tiles[nSeq][ntile]) {
targets[nSeq][ntile][CuasMotionLMA.RSLT_FAIL] = CuasMotionLMA.FAIL_MISMATCH;
}
}
}
};
}
ImageDtt.startAndJoin(threads);
return;
}
public static void filterIsolatedTargets( // overwrites "good", does not change "when"
final double [][][] targets,
......@@ -5540,6 +5728,91 @@ public class CuasMotion {
@Deprecated
public static void filterIsolatedTargets0( // overwrites "good", does not change "when"
final double [][][] targets,
final boolean remove_2seq_in,
final boolean remove_2seq_all,
final double max_mismatch, // if <=0, do not calculate mismatch_ba and filter
final int tilesX) {
final boolean remove_2seq = remove_2seq_in || remove_2seq_all;
final int num_seq = targets.length;
final int num_tiles = targets[0].length;
final boolean [][] good_tiles = new boolean [num_seq][num_tiles];
final Thread[] threads = ImageDtt.newThreadArray();
final AtomicInteger ai = new AtomicInteger(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
TileNeibs tn = new TileNeibs(tilesX, num_tiles/tilesX);
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) if (targets[nSeq][ntile] != null) {
double [] ba = {targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_BEFORE],targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_AFTER]};
for (int i = 0; i < ba.length; i++) {
if (ba[i] > max_mismatch) {
ba[i] = Double.NaN;
}
}
if (!Double.isNaN(ba[0]) || !Double.isNaN(ba[1])) { // at least one connection
boolean need_check = Double.isNaN(ba[0]) || Double.isNaN(ba[1]);
if (!remove_2seq_all) {
if (nSeq==0) {}
}
if (!remove_2seq_all && ((!Double.isNaN(ba[0]) && !Double.isNaN(ba[1])))) { // if not remove_2seq_all
if (remove_2seq && (Double.isNaN(ba[0]) || Double.isNaN(ba[1]))) {
int indx = Double.isNaN(ba[0]) ? 1 : 0; // 0 - has pair before, 1 - has pair after
int nseq1 = nSeq + ((indx > 0)? 1 : -1); // no need to check ends
if ((nseq1 > 0) && (nseq1 < (num_seq-1))){
int dir = decodeDirs(targets[nSeq][ntile][CuasMotionLMA.RSLT_MISMATCH_DIRS])[indx]; // direction to the tile in the next/previous keyframe
if (dir >= 0) { // should be always
int ntile1 = tn.getNeibIndex(ntile, dir);
if (ntile1 >= 0) {
// should be always
double [] ba1 = {targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_BEFORE],targets[nseq1][ntile1][CuasMotionLMA.RSLT_MISMATCH_AFTER]};
for (int i = 0; i < ba1.length; i++) {
if (ba1[i] > max_mismatch) {
ba1[i] = Double.NaN;
}
}
if (Double.isNaN(ba1[0]) || Double.isNaN(ba1[1])) {
continue; // a single connection to [nSeq][ntile] has <= one connection [nseq1][ntile1]
}
// a single connection to [nSeq][ntile] has 2 connections [nseq1][ntile1]
}
}
}
}
}
good_tiles [nSeq][ntile] = true;
// filtered_tiles[nSeq][ntile] = targets[nSeq][ntile].clone();
// or should keep ?
}
}
}
}
};
}
ImageDtt.startAndJoin(threads);
ai.set(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
for (int nSeq = ai.getAndIncrement(); nSeq < num_seq; nSeq = ai.getAndIncrement()) {
for (int ntile = 0; ntile < num_tiles; ntile++) if ((targets[nSeq][ntile] != null) && !good_tiles[nSeq][ntile]) {
targets[nSeq][ntile][CuasMotionLMA.RSLT_FAIL] = CuasMotionLMA.FAIL_MISMATCH;
}
}
}
};
}
ImageDtt.startAndJoin(threads);
return;
}
/**
* Fill traget fields for the best match error for the previous and next keyframe. Relies on the fields provided by
* getHalfBeforeAfterPixXY()
......@@ -5618,12 +5891,15 @@ public class CuasMotion {
}
// Leveling chances (scores) of the first and last keyframes with the other ones:
// mm_dirs will still be -1
// Not needed, as targets only compete for the same keyframe, and removal is controlled by a separate parameter
// (cuas_remove_2seq_all).
/*
if (nSeq == 0) {
mm[0] = mm[1];
} else if (nSeq == (num_seq-1)) {
mm[1] = mm[0];
}
*/
target[CuasMotionLMA.RSLT_MISMATCH_BEFORE] = mm[0];
target[CuasMotionLMA.RSLT_MISMATCH_AFTER] = mm[1];
target[CuasMotionLMA.RSLT_MISMATCH_DIRS] = encodeDirs(mm_dirs);
......
......@@ -783,8 +783,12 @@ min_str_neib_fpn 0.35
public boolean cuas_center_targ = true; // re-run target extraction with targets centered to their tiles
public boolean cuas_isolated = true; // remove targets that do not have neighbors before/after
public boolean cuas_remove_2seq = true; // Remove short target sequences consisting of 2 consecutive key frames
public int cuas_min_seq = 3; // minimal number of consecutive key frames for the same target
public int cuas_min_seq_fl = 2; // minimal number of consecutive key frames for the same target that includes first or last key frame
// public boolean cuas_remove_2seq = true; // Remove 2-long target sequences consisting of 2 consecutive key frames
// public boolean cuas_remove_2seq_all=true; // Remove 2-long first/last target sequences
public double cuas_max_mismatch = 2.0; // maximal position error between consecutive scene sequences
public double cuas_good_mismatch = 0.4; // maximal position error between consecutive scene sequences that adds to the score
public boolean cuas_fail_mismatch = false; // fail high mismatch early
public boolean cuas_ignore_mismatch = false; // calculate mismatch but do not remove
......@@ -2395,10 +2399,20 @@ min_str_neib_fpn 0.35
gd.addCheckbox ("Remove single-frame targets", this.cuas_isolated,
"Remove targets that do not have neighbors before/after.");
gd.addCheckbox ("Remove pairs too", this.cuas_remove_2seq,
"Remove short target sequences consisting of 2 consecutive key frames.");
gd.addNumericField("Remove by mismatch", this.cuas_max_mismatch, 5,8,"pix",
// gd.addCheckbox ("Remove pairs (but ends)", this.cuas_remove_2seq,
// "Remove short target sequences consisting of 2 consecutive key frames, except those including first/last sequence.");
// gd.addCheckbox ("Remove pairs everywhere", this.cuas_remove_2seq_all,
// "Remove short target sequences consisting of 2 consecutive key frames everywhere, including first/last keyframes.");
gd.addNumericField("Minimal sequence length", this.cuas_min_seq, 0,3,"key frames",
"Minimal number of consecutive key frames for the target to be detected.");
gd.addNumericField("Minimal end sequence length", this.cuas_min_seq_fl, 0,3,"key frames",
"Minimal number of consecutive key frames for the target to be detected if the sequence includes first or last key frame.");
gd.addNumericField("Maximal allowed mismatch", this.cuas_max_mismatch, 5,8,"pix",
"Maximal position error between consecutive scene sequences.");
gd.addNumericField("Good mismatch", this.cuas_good_mismatch, 5,8,"pix",
"Maximal position error between consecutive scene sequences to add to the score.");
gd.addCheckbox ("Fail mismatch early", this.cuas_fail_mismatch,
"Fail after score calculation if there is not match both before and after.");
gd.addCheckbox ("Ignore mismatch", this.cuas_ignore_mismatch,
......@@ -3512,8 +3526,14 @@ min_str_neib_fpn 0.35
this.cuas_center_targ = gd.getNextBoolean();
this.cuas_isolated = gd.getNextBoolean();
this.cuas_remove_2seq = gd.getNextBoolean();
// this.cuas_remove_2seq = gd.getNextBoolean();
// this.cuas_remove_2seq_all = gd.getNextBoolean();
this.cuas_min_seq= (int) gd.getNextNumber();
this.cuas_min_seq_fl= (int) gd.getNextNumber();
this.cuas_max_mismatch= gd.getNextNumber();
this.cuas_good_mismatch = gd.getNextNumber();
this.cuas_fail_mismatch = gd.getNextBoolean();
this.cuas_ignore_mismatch = gd.getNextBoolean();
......@@ -4513,8 +4533,16 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"cuas_isolated", this.cuas_isolated+""); // boolean
properties.setProperty(prefix+"cuas_remove_2seq", this.cuas_remove_2seq+""); // boolean
// properties.setProperty(prefix+"cuas_remove_2seq", this.cuas_remove_2seq+""); // boolean
// properties.setProperty(prefix+"cuas_remove_2seq_all", this.cuas_remove_2seq_all+"");// boolean
properties.setProperty(prefix+"cuas_min_seq", this.cuas_min_seq+""); // int
properties.setProperty(prefix+"cuas_min_seq_fl", this.cuas_min_seq_fl+""); // int
properties.setProperty(prefix+"cuas_max_mismatch", this.cuas_max_mismatch+""); // double
properties.setProperty(prefix+"cuas_good_mismatch", this.cuas_good_mismatch+""); // double
properties.setProperty(prefix+"cuas_fail_mismatch", this.cuas_fail_mismatch+""); // boolean
properties.setProperty(prefix+"cuas_ignore_mismatch", this.cuas_ignore_mismatch+"");// boolean
properties.setProperty(prefix+"cuas_by_horizon", this.cuas_by_horizon+""); // boolean
......@@ -5483,8 +5511,12 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"cuas_center_targ")!=null) this.cuas_center_targ=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_center_targ"));
if (properties.getProperty(prefix+"cuas_isolated")!=null) this.cuas_isolated=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_isolated"));
if (properties.getProperty(prefix+"cuas_remove_2seq")!=null) this.cuas_remove_2seq=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_remove_2seq"));
// if (properties.getProperty(prefix+"cuas_remove_2seq")!=null) this.cuas_remove_2seq=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_remove_2seq"));
// if (properties.getProperty(prefix+"cuas_remove_2seq_all")!=null) this.cuas_remove_2seq_all=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_remove_2seq_all"));
if (properties.getProperty(prefix+"cuas_min_seq")!=null) this.cuas_min_seq=Integer.parseInt(properties.getProperty(prefix+"cuas_min_seq"));
if (properties.getProperty(prefix+"cuas_min_seq_fl")!=null) this.cuas_min_seq_fl=Integer.parseInt(properties.getProperty(prefix+"cuas_min_seq_fl"));
if (properties.getProperty(prefix+"cuas_max_mismatch")!=null) this.cuas_max_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_max_mismatch"));
if (properties.getProperty(prefix+"cuas_good_mismatch")!=null) this.cuas_good_mismatch=Double.parseDouble(properties.getProperty(prefix+"cuas_good_mismatch"));
if (properties.getProperty(prefix+"cuas_fail_mismatch")!=null) this.cuas_fail_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_fail_mismatch"));
if (properties.getProperty(prefix+"cuas_ignore_mismatch")!=null) this.cuas_ignore_mismatch=Boolean.parseBoolean(properties.getProperty(prefix+"cuas_ignore_mismatch"));
......@@ -6452,8 +6484,14 @@ min_str_neib_fpn 0.35
imp.cuas_center_targ = this.cuas_center_targ;
imp.cuas_isolated = this.cuas_isolated;
imp.cuas_remove_2seq = this.cuas_remove_2seq;
// imp.cuas_remove_2seq = this.cuas_remove_2seq;
// imp.cuas_remove_2seq_all = this.cuas_remove_2seq_all;
imp.cuas_min_seq = this.cuas_min_seq;
imp.cuas_min_seq_fl = this.cuas_min_seq_fl;
imp.cuas_max_mismatch = this.cuas_max_mismatch;
imp.cuas_good_mismatch = this.cuas_good_mismatch;
imp.cuas_fail_mismatch = this.cuas_fail_mismatch;
imp.cuas_ignore_mismatch = this.cuas_ignore_mismatch;
imp.cuas_by_horizon = this.cuas_by_horizon;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment