/** * <p>Constructor for AlignStructMol.</p> * * @param row1 a {@link io.github.msdk.datamodel.FeatureTableRow} object. * @param row2 a {@link io.github.msdk.datamodel.FeatureTableRow} object. */ public AlignStructMol(FeatureTableRow row1, FeatureTableRow row2) { this.row1 = row1; this.row2 = row2; RT = row1.getRT(); RT2 = row2.getRT(); }
/** * <p>Constructor for AlignStructMol.</p> * * @param row1 a {@link io.github.msdk.datamodel.FeatureTableRow} object. * @param row2 a {@link io.github.msdk.datamodel.FeatureTableRow} object. */ public AlignStructMol(FeatureTableRow row1, FeatureTableRow row2) { this.row1 = row1; this.row2 = row2; RT = row1.getRT(); RT2 = row2.getRT(); }
/** * <p>getRowsInsideRange.</p> * * @param table a {@link io.github.msdk.datamodel.FeatureTable} object. * @param rtRange a {@link com.google.common.collect.Range} object. * @param mzRange a {@link com.google.common.collect.Range} object. * @return a {@link java.util.List} object. */ public static @Nonnull List<FeatureTableRow> getRowsInsideRange(@Nonnull FeatureTable table, @Nonnull Range<Float> rtRange, @Nonnull Range<Double> mzRange) { List<FeatureTableRow> featureTableRows = table.getRows(); List<FeatureTableRow> result = new ArrayList<>(); for (FeatureTableRow row : featureTableRows) { Float rowRT = row.getRT(); if ((rowRT != null) && rtRange.contains(rowRT) && mzRange.contains(row.getMz())) result.add(row); } return result; }
/** * <p>getRowsInsideRange.</p> * * @param table a {@link io.github.msdk.datamodel.FeatureTable} object. * @param rtRange a {@link com.google.common.collect.Range} object. * @param mzRange a {@link com.google.common.collect.Range} object. * @return a {@link java.util.List} object. */ public static @Nonnull List<FeatureTableRow> getRowsInsideRange(@Nonnull FeatureTable table, @Nonnull Range<Float> rtRange, @Nonnull Range<Double> mzRange) { List<FeatureTableRow> featureTableRows = table.getRows(); List<FeatureTableRow> result = new ArrayList<>(); for (FeatureTableRow row : featureTableRows) { Float rowRT = row.getRT(); if ((rowRT != null) && rtRange.contains(rowRT) && mzRange.contains(row.getMz())) result.add(row); } return result; }
RowVsRowScore(FeatureTableRow featureTableRow, FeatureTableRow alignedRow, double mzMaxDiff, double rtMaxDiff, Float correctedRT) { this.featureTableRow = featureTableRow; this.alignedRow = alignedRow; // Get m/z and RT values Double mz1 = featureTableRow.getMz(); Double mz2 = alignedRow.getMz(); Float rt2 = alignedRow.getRT(); // Calculate difference between m/z double mzDiff = 999; if (mz1 != null && mz2 != null) mzDiff = Math.abs(mz1 - mz2); // Calculate difference between RT values double rtDiff = 999; if (correctedRT != null && rt2 != null) rtDiff = Math.abs(correctedRT - rt2); score = ((1 - mzDiff / mzMaxDiff)) + ((1 - rtDiff / rtMaxDiff)); }
RowVsRowScore(FeatureTableRow featureTableRow, FeatureTableRow alignedRow, double mzMaxDiff, double rtMaxDiff, Float correctedRT) { this.featureTableRow = featureTableRow; this.alignedRow = alignedRow; // Get m/z and RT values Double mz1 = featureTableRow.getMz(); Double mz2 = alignedRow.getMz(); Float rt2 = alignedRow.getRT(); // Calculate difference between m/z double mzDiff = 999; if (mz1 != null && mz2 != null) mzDiff = Math.abs(mz1 - mz2); // Calculate difference between RT values double rtDiff = 999; if (correctedRT != null && rt2 != null) rtDiff = Math.abs(correctedRT - rt2); score = ((1 - mzDiff / mzMaxDiff)) + ((1 - rtDiff / rtMaxDiff)); }
RowVsRowScore(FeatureTableRow featureTableRow, SimpleFeatureTableRow alignedRow, double mzMaxDiff, double mzWeight, double rtMaxDiff, double rtWeight) { this.featureTableRow = featureTableRow; this.alignedRow = alignedRow; // Get m/z and RT values Double mz1 = featureTableRow.getMz(); Double mz2 = alignedRow.getMz(); Float rt1 = featureTableRow.getRT(); Float rt2 = alignedRow.getRT(); // Calculate difference between m/z double mzDiff = 999; if (mz1 != null && mz2 != null) mzDiff = Math.abs(mz1 - mz2); // Calculate difference between RT values double rtDiff = 999; if (rt1 != null && rt2 != null) rtDiff = Math.abs(rt1 - rt2); score = ((1 - mzDiff / mzMaxDiff) * mzWeight) + ((1 - rtDiff / rtMaxDiff) * rtWeight); }
RowVsRowScore(FeatureTableRow featureTableRow, SimpleFeatureTableRow alignedRow, double mzMaxDiff, double mzWeight, double rtMaxDiff, double rtWeight) { this.featureTableRow = featureTableRow; this.alignedRow = alignedRow; // Get m/z and RT values Double mz1 = featureTableRow.getMz(); Double mz2 = alignedRow.getMz(); Float rt1 = featureTableRow.getRT(); Float rt2 = alignedRow.getRT(); // Calculate difference between m/z double mzDiff = 999; if (mz1 != null && mz2 != null) mzDiff = Math.abs(mz1 - mz2); // Calculate difference between RT values double rtDiff = 999; if (rt1 != null && rt2 != null) rtDiff = Math.abs(rt1 - rt2); score = ((1 - mzDiff / mzMaxDiff) * mzWeight) + ((1 - rtDiff / rtMaxDiff) * rtWeight); }
final Float rt = row.getRT(); if ((mz == null) || (rt == null)) continue;
final Float rt = row.getRT(); if ((mz == null) || (rt == null)) continue;
/** * Create the vector which contains all the possible aligned peaks. * * @param peakListX * @param peakListY * @return vector which contains all the possible aligned peaks. */ private List<AlignStructMol> getVectorAlignment(FeatureTable peakListX, FeatureTable peakListY) { List<AlignStructMol> alignMol = new ArrayList<AlignStructMol>(); for (FeatureTableRow row : peakListX.getRows()) { // Calculate limits for a row with which the row can be aligned Range<Double> mzRange = mzTolerance.getToleranceRange(row.getMz()); Range<Float> rtRange = rtTolerance.getToleranceRange(row.getRT()); // Get all rows of the aligned peaklist within parameter limits List<FeatureTableRow> candidateRows = FeatureTableUtil.getRowsInsideRange(peakListY, rtRange, mzRange); for (FeatureTableRow candidateRow : candidateRows) { alignMol.add(new AlignStructMol(row, candidateRow)); } } return alignMol; }
/** * Create the vector which contains all the possible aligned peaks. * * @param peakListX * @param peakListY * @return vector which contains all the possible aligned peaks. */ private List<AlignStructMol> getVectorAlignment(FeatureTable peakListX, FeatureTable peakListY) { List<AlignStructMol> alignMol = new ArrayList<AlignStructMol>(); for (FeatureTableRow row : peakListX.getRows()) { // Calculate limits for a row with which the row can be aligned Range<Double> mzRange = mzTolerance.getToleranceRange(row.getMz()); Range<Float> rtRange = rtTolerance.getToleranceRange(row.getRT()); // Get all rows of the aligned peaklist within parameter limits List<FeatureTableRow> candidateRows = FeatureTableUtil.getRowsInsideRange(peakListY, rtRange, mzRange); for (FeatureTableRow candidateRow : candidateRows) { alignMol.add(new AlignStructMol(row, candidateRow)); } } return alignMol; }
Range<Float> rtRange = rtTolerance.getToleranceRange(row.getRT());
Float rt = row.getRT(); if (rt == null) continue;
Float rt = row.getRT(); if (rt == null) continue;
Range<Float> rtRange = rtTolerance.getToleranceRange(row.getRT());
sm.setOptionColumnValue(new Assay(sampleCounter), "rt", row.getRT().toString());