Skip to content

Commit

Permalink
fixed ignore formulas setting
Browse files Browse the repository at this point in the history
fixed adduct filter, improved filter code
  • Loading branch information
mfleisch committed Nov 7, 2023
1 parent ac488a8 commit 4a8d778
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 18 deletions.
1 change: 1 addition & 0 deletions sirius_cli/src/main/resources/sirius.properties
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ de.unijena.bioinf.sirius.ui.cite = false
de.unijena.bioinf.sirius.ui.cite.classyfire = false

de.unijena.bioinf.sirius.ui.allowMs1Only=true
de.unijena.bioinf.sirius.ui.ignoreFormulas=false

# S3 CustomDB config
#de.unijena.bioinf.stores.customdb.s3.host=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ public boolean restartRequired() {
public void saveProperties() {
props.setProperty("de.unijena.bioinf.sirius.treebuilder.solvers", (String) solver.getSelectedItem());
props.setProperty("de.unijena.bioinf.sirius.ui.allowMs1Only", String.valueOf(allowMS1Only.isSelected()));
props.setProperty("de.unijena.bioinf.sirius.ui.ignoreFormulas", String.valueOf(ignoreFormulas.isSelected()));
// props.setProperty("de.unijena.bioinf.sirius.treebuilder.timeout", treeTimeout.getNumber().toString());
final Path dir = Paths.get(db.getFilePath());
if (Files.isDirectory(dir)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,32 @@ public boolean matches(InstanceBean item) {
double mz = item.getIonMass();
double rt = item.getID().getRt().map(RetentionTime::getRetentionTimeInSeconds).orElse(Double.NaN);
//todo hotfix, since the confidence score is a FormulaScore which sets all NaN to -Infinity (after computation, and thus also in project space)
double confidence = item.getID().getConfidenceScore().map(conf -> Double.isInfinite(conf) ? Double.NaN : conf).orElse(Double.NaN);
if ((mz < filterModel.getCurrentMinMz()) ||
(filterModel.isMaxMzFilterActive() && mz > filterModel.getCurrentMaxMz())) {
return false;
double confidence = item.getID().getConfidenceScore().filter(conf -> !Double.isInfinite(conf)).orElse(Double.NaN);

{
if (mz < filterModel.getCurrentMinMz())
return false;
if (filterModel.isMaxMzFilterActive() && mz > filterModel.getCurrentMaxMz())
return false;
}
if (!Double.isNaN(rt)) {
if ((rt < filterModel.getCurrentMinRt()) ||
(filterModel.isMaxRtFilterActive() && rt > filterModel.getCurrentMaxRt())) {

if (!Double.isNaN(rt)) { //never filter NaN because RT is just not available
if (rt < filterModel.getCurrentMinRt())
return false;
if (filterModel.isMaxRtFilterActive() && rt > filterModel.getCurrentMaxRt())
return false;
}
}

if (!Double.isNaN(confidence)) {
if ((confidence < filterModel.getCurrentMinConfidence()) ||
(filterModel.isMaxConfidenceFilterActive() && confidence > filterModel.getCurrentMaxConfidence())) {
if (filterModel.isMinConfidenceFilterActive() && confidence < filterModel.getCurrentMinConfidence())
return false;
if (filterModel.isMaxConfidenceFilterActive() && confidence > filterModel.getCurrentMaxConfidence())
return false;
} else if (filterModel.isMinConfidenceFilterActive()) { // filter NaN if min filter is set
return false;
}
} else {
return Double.compare(filterModel.getMinConfidence(), filterModel.getCurrentMinConfidence()) == 0;
}

final Set<PrecursorIonType> adducts = filterModel.getAdducts();
if (!adducts.isEmpty() && !adducts.contains(item.getIonization()))
if (filterModel.isAdductFilterActive() && !filterModel.getAdducts().contains(item.getIonization()))
return false;

return anyIOIntenseFilterMatches(item, filterModel);
Expand Down Expand Up @@ -166,8 +170,8 @@ private boolean matchesElementFilter(InstanceBean item, CompoundFilterModel filt
boolean r1 = item.loadTopFormulaResult(List.of(TopCSIScore.class)).map(FormulaResult::getId)
.map(id ->
(filter.matchFormula && constraints.isSatisfied(id.getMolecularFormula(), id.getIonType().getIonization()))
||
(filter.matchPrecursorFormula && constraints.isSatisfied(id.getPrecursorFormula(), id.getIonType().getIonization()))
||
(filter.matchPrecursorFormula && constraints.isSatisfied(id.getPrecursorFormula(), id.getIonType().getIonization()))
).orElse(false);

boolean r2 = item.loadTopFormulaResult(List.of(ZodiacScore.class, SiriusScore.class)).map(FormulaResult::getId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,10 @@ public boolean isMaxConfidenceFilterActive() {
return currentMaxConfidence != maxConfidence;
}

public boolean isMinConfidenceFilterActive() {
return currentMinConfidence != minConfidence;
}


public void setAdducts(Set<PrecursorIonType> adducts) {
this.adducts = adducts;
Expand All @@ -310,6 +314,11 @@ public void setAdducts(Set<PrecursorIonType> adducts) {
public Set<PrecursorIonType> getAdducts() {
return Collections.unmodifiableSet(adducts);
}
public boolean isAdductFilterActive() {
return adducts != null && !adducts.isEmpty();
}



@Override
public HiddenChangeSupport pcs() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public synchronized void importOneExperimentPerLocation(@NotNull final List<File
//ATTENTION Synchronizing around background tasks that block gui thread is dangerous
public synchronized void importOneExperimentPerLocation(@NotNull final InputFilesOptions input) {
input.msInput.setAllowMS1Only(PropertyManager.getBoolean("de.unijena.bioinf.sirius.ui.allowMs1Only", true));
input.msInput.setIgnoreFormula(PropertyManager.getBoolean("de.unijena.bioinf.sirius.ui.ignoreFormulas", true));
input.msInput.setIgnoreFormula(PropertyManager.getBoolean("de.unijena.bioinf.sirius.ui.ignoreFormulas", false));
boolean align = Jobs.runInBackgroundAndLoad(MF, "Checking for alignable input...", () ->
(input.msInput.msParserfiles.size() > 1 && input.msInput.projects.size() == 0 && input.msInput.msParserfiles.keySet().stream().map(p -> p.getFileName().toString().toLowerCase()).allMatch(n -> n.endsWith(".mzml") || n.endsWith(".mzxml"))))
.getResult();
Expand Down

0 comments on commit 4a8d778

Please sign in to comment.