Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@
import io.github.mzmine.taskcontrol.TaskStatus;
import io.github.mzmine.util.MemoryMapStorage;
import java.io.InputStream;
import java.net.URL;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
Expand Down Expand Up @@ -350,22 +349,21 @@ protected boolean extractStandardsList() {
.getParameter(MassCalibrationParameters.ionizationMode).getValue();
String universalCalibrantsFilename =
MassCalibrationParameters.ionizationModeChoices.get(universalCalibrantsIonizationMode);
URL universalCalibrantsPath =
getClass().getClassLoader().getResource(universalCalibrantsFilename);
standardsListFilename = universalCalibrantsPath.getPath();
InputStream inputStream =
getClass().getClassLoader().getResourceAsStream(universalCalibrantsFilename);
UniversalCalibrantsListCsvExtractor extractor =
new UniversalCalibrantsListCsvExtractor(standardsListFilename, inputStream);
standardsListExtractor = extractor;
try (InputStream is = getClass().getClassLoader()
.getResourceAsStream(universalCalibrantsFilename)) {
UniversalCalibrantsListCsvExtractor extractor = new UniversalCalibrantsListCsvExtractor(
universalCalibrantsFilename, is);
standardsListExtractor = extractor;
standardsList = standardsListExtractor.extractStandardsList();
}
} else {
standardsListFilename = massPeakMatchingMethod.getChoices()
.get(MassPeakMatchingChoice.STANDARDS_LIST.toString())
.getParameter(MassCalibrationParameters.standardsList).getValue().getAbsolutePath();
standardsListExtractor =
StandardsListExtractorFactory.createFromFilename(standardsListFilename, false);
standardsList = standardsListExtractor.extractStandardsList();
}
standardsList = standardsListExtractor.extractStandardsList();

if (standardsList.getStandardMolecules().size() == 0) {
throw new RuntimeException(
Expand All @@ -374,12 +372,7 @@ protected boolean extractStandardsList() {
}

} catch (Exception e) {
e.printStackTrace();
logger.warning("Exception when extracting standards list from " + standardsListFilename);
logger.warning(e.toString());
setStatus(TaskStatus.ERROR);
setErrorMessage("Exception when extracting standards list from " + standardsListFilename
+ "\n" + e.toString());
error("Exception when extracting standards list from " + standardsListFilename, e);
return false;
}
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@

import com.opencsv.exceptions.CsvException;
import io.github.mzmine.util.CSVParsingUtils;
import java.io.File;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;


/**
Expand All @@ -48,29 +50,22 @@ public class UniversalCalibrantsListCsvExtractor implements StandardsListExtract
protected Logger logger = Logger.getLogger(this.getClass().getName());

protected String filename;
private final InputStream inputStream;

protected ArrayList<StandardsListItem> extractedData;

/**
* Creates the extractor
*
* @param filename csv filename
* @throws IOException exception thrown when issues opening given file occur
*/
public UniversalCalibrantsListCsvExtractor(String filename) throws IOException {
this.filename = filename;
}

/**
* Creates the extractor
*
* @param filename csv filename
* @param inputStream input stream to use.
* @throws IOException exception thrown when issues opening given file occur
*/
public UniversalCalibrantsListCsvExtractor(String filename, InputStream inputStream)
public UniversalCalibrantsListCsvExtractor(String filename, @NotNull InputStream inputStream)
throws IOException {
this.filename = filename;

this.inputStream = inputStream;
}

/**
Expand All @@ -88,30 +83,34 @@ public StandardsList extractStandardsList() throws IOException, CsvException {
}
this.extractedData = new ArrayList<>();

List<String[]> lines = CSVParsingUtils.readData(new File(filename), ",");
for (String[] lineValues : lines) {
try {
String mzRatioString = lineValues[mzRatioColumn];
String name = nameColumn < lineValues.length ? lineValues[nameColumn] : null;
double mzRatio = Double.valueOf(mzRatioString);
StandardsListItem calibrant = new StandardsListItem(mzRatio);
if (name != null && name.trim().isEmpty() == false) {
calibrant.setName(name);
try (final BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(inputStream))) {
List<String[]> lines = CSVParsingUtils.readData(bufferedReader, ",");
for (String[] lineValues : lines) {
try {
String mzRatioString = lineValues[mzRatioColumn];
String name = nameColumn < lineValues.length ? lineValues[nameColumn] : null;
double mzRatio = Double.valueOf(mzRatioString);
StandardsListItem calibrant = new StandardsListItem(mzRatio);
if (name != null && name.trim().isEmpty() == false) {
calibrant.setName(name);
}
extractedData.add(calibrant);
} catch (Exception e) {
logger.fine(
"Exception occurred when reading row index %d. Will skip this row and continue parsing.".formatted(
lines.indexOf(lineValues)));
logger.fine(e.toString());
}
extractedData.add(calibrant);
} catch (Exception e) {
logger.fine(STR."Exception occurred when reading row index \{lines.indexOf(lineValues)}");
logger.fine(e.toString());
}
}

logger.info(
STR."Extracted \{extractedData.size()} standard molecules from \{lines.size()} rows");
if (extractedData.size() < lines.size()) {
logger.warning(STR."Skipped \{lines.size()
- extractedData.size()} rows when reading standards list in csv file \{filename}");
logger.info(
STR."Extracted \{extractedData.size()} standard molecules from \{lines.size()} rows");
if (extractedData.size() < lines.size()) {
logger.warning(STR."Skipped \{lines.size()
- extractedData.size()} rows when reading standards list in csv file \{filename}");
}
return new StandardsList(extractedData);
}

return new StandardsList(extractedData);
}
}
Loading