Skip to content

Commit 8aa76a7

Browse files
Fixing Exportation for sequence segment data (#532)
* Load data for all sequence segments * When exporting data from sequenceSegmentHandler, export from all segments * Use empty path for folder selection dialog as it does not work on MacOS (and having a default folder name is useless) * Fixed: FeatureFilter and QC have only one copy per sequence. * * Fixed: StoreFeatureRSDFilters, StoreFeatureRSDQCs, StoreFeatureBackgroundFilters and StoreFeatureBackgroundQCs have only one copy per sequence.
1 parent 3619997 commit 8aa76a7

File tree

15 files changed

+59
-73
lines changed

15 files changed

+59
-73
lines changed

src/examples/source/SmartPeakGUI.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -523,22 +523,22 @@ int main(int argc, char** argv)
523523
{std::make_shared<StoreValidationData>(), true},
524524
// {std::make_shared<StoreStandardsConcentrations>(), true}, // not implemented
525525
{std::make_shared<StoreQuantitationMethods>(true), false},
526-
{std::make_shared<StoreFeatureFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
527-
{std::make_shared<StoreFeatureFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
528-
{std::make_shared<StoreFeatureQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
529-
{std::make_shared<StoreFeatureQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
530-
{std::make_shared<StoreFeatureRSDFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
531-
{std::make_shared<StoreFeatureRSDFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
532-
{std::make_shared<StoreFeatureRSDQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
533-
{std::make_shared<StoreFeatureRSDQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
534-
{std::make_shared<StoreFeatureBackgroundFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
535-
{std::make_shared<StoreFeatureBackgroundFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
536-
{std::make_shared<StoreFeatureBackgroundQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
537-
{std::make_shared<StoreFeatureBackgroundQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
538-
{std::make_shared<StoreFeatureRSDEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
539-
{std::make_shared<StoreFeatureRSDEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true},
540-
{std::make_shared<StoreFeatureBackgroundEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true},
541-
{std::make_shared<StoreFeatureBackgroundEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}
526+
{std::make_shared<StoreFeatureFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true}, // have only one copy per sequence.
527+
{std::make_shared<StoreFeatureFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
528+
{std::make_shared<StoreFeatureQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true}, // have only one copy per sequence.
529+
{std::make_shared<StoreFeatureQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
530+
{std::make_shared<StoreFeatureRSDFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, false), true}, // have only one copy per sequence.
531+
{std::make_shared<StoreFeatureRSDFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
532+
{std::make_shared<StoreFeatureRSDQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true}, // have only one copy per sequence.
533+
{std::make_shared<StoreFeatureRSDQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
534+
{std::make_shared<StoreFeatureBackgroundFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true}, // have only one copy per sequence.
535+
{std::make_shared<StoreFeatureBackgroundFilters>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
536+
{std::make_shared<StoreFeatureBackgroundQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), true}, // have only one copy per sequence.
537+
{std::make_shared<StoreFeatureBackgroundQCs>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), true}, // have only one copy per sequence.
538+
{std::make_shared<StoreFeatureRSDEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), false},
539+
{std::make_shared<StoreFeatureRSDEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), false},
540+
{std::make_shared<StoreFeatureBackgroundEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeComponent, true), false},
541+
{std::make_shared<StoreFeatureBackgroundEstimations>(FeatureFiltersUtilsMode::EFeatureFiltersModeGroup, true), false}
542542
};
543543
for (const auto& [export_processor, export_as_file] : export_processors)
544544
{

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreFeatureBackgroundFilters.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace SmartPeak
5656
/* IFilePickerHandler */
5757
virtual void getFilenames(Filenames& filenames) const override;
5858

59-
/* IProcessorDescription */
59+
/* IFilePickerHandler */
6060
bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6161
};
6262

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreFeatureFilters.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace SmartPeak
5656
/* IFilenamesHandler */
5757
virtual void getFilenames(Filenames& filenames) const override;
5858

59-
/* IProcessorDescription */
59+
/* IFilePickerHandler */
6060
bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6161
};
6262

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreFeatureQCs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace SmartPeak
5656
/* IFilenamesHandler */
5757
virtual void getFilenames(Filenames& filenames) const override;
5858

59-
/* IProcessorDescription */
59+
/* IFilePickerHandler */
6060
bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6161
};
6262

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreFeatureRSDFilters.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ namespace SmartPeak
5555
/* IFilenamesHandler */
5656
virtual void getFilenames(Filenames& filenames) const override;
5757

58-
/* IProcessorDescription */
58+
/* IFilePickerHandler */
5959
bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6060
};
6161

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreFeatureRSDQCs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace SmartPeak
5656
/* IFilenamesHandler */
5757
virtual void getFilenames(Filenames& filenames) const override;
5858

59-
/* IProcessorDescription */
59+
/* IFilePickerHandler */
6060
virtual bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6161
};
6262

src/smartpeak/include/SmartPeak/core/SequenceSegmentProcessors/StoreQuantitationMethods.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ namespace SmartPeak
5656
/* IFilenamesHandler */
5757
virtual void getFilenames(Filenames& filenames) const override;
5858

59-
/**
60-
IFilePickerHandler
61-
*/
59+
/* IFilePickerHandler */
6260
bool onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler) override;
6361
};
6462

src/smartpeak/source/core/ApplicationProcessors/LoadSession.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,19 @@ namespace SmartPeak
121121
{
122122
if (!application_handler_.sequenceHandler_.getSequenceSegments().empty())
123123
{
124-
SequenceSegmentHandler& sequenceSegmentHandler = application_handler_.sequenceHandler_.getSequenceSegments().at(0);
125-
sequence_segment_processor->sequence_segment_observable_ = &application_handler_.sequenceHandler_;
126-
try
127-
{
128-
sequence_segment_processor->process(sequenceSegmentHandler, SequenceHandler(), {}, *filenames_);
129-
}
130-
catch (const std::exception& e)
124+
for (auto& sequenceSegmentHandler : application_handler_.sequenceHandler_.getSequenceSegments())
131125
{
132-
LOGE << e.what();
133-
notifyApplicationProcessorError(e.what());
134-
return false;
126+
sequence_segment_processor->sequence_segment_observable_ = &application_handler_.sequenceHandler_;
127+
try
128+
{
129+
sequence_segment_processor->process(sequenceSegmentHandler, SequenceHandler(), {}, *filenames_);
130+
}
131+
catch (const std::exception& e)
132+
{
133+
LOGE << e.what();
134+
notifyApplicationProcessorError(e.what());
135+
return false;
136+
}
135137
}
136138
}
137139
else

src/smartpeak/source/core/SequenceSegmentProcessors/StoreFeatureBackgroundEstimations.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,16 @@ namespace SmartPeak
4747
return { };
4848
}
4949

50-
bool StoreFeatureBackgroundEstimations::onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler)
50+
bool StoreFeatureBackgroundEstimations::onFilePicked(const std::filesystem::path& directory, ApplicationHandler* application_handler)
5151
{
5252
Filenames filenames;
53-
if (!FeatureFiltersUtils::onFilePicked(
54-
filename,
55-
application_handler,
56-
filenames,
57-
"featureBackgroundEstimationComponents",
58-
"featureBackgroundEstimationComponentGroups",
59-
feature_filter_mode_))
53+
filenames.setTagValue(Filenames::Tag::FEATURES_OUTPUT_PATH, directory.generic_string());
54+
static_filenames_ = false;
55+
for (auto& sequence_segment : application_handler->sequenceHandler_.getSequenceSegments())
6056
{
61-
return false;
57+
filenames.setTagValue(Filenames::Tag::OUTPUT_SEQUENCE_SEGMENT_NAME, sequence_segment.getSequenceSegmentName());
58+
process(sequence_segment, application_handler->sequenceHandler_, {}, filenames);
6259
}
63-
sequence_segment_observable_ = &application_handler->sequenceHandler_;
64-
process(application_handler->sequenceHandler_.getSequenceSegments()[0], SequenceHandler(), {}, filenames);
6560
return true;
6661
}
6762

src/smartpeak/source/core/SequenceSegmentProcessors/StoreFeatureFilters.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ namespace SmartPeak
7171
return false;
7272
}
7373
sequence_segment_observable_ = &application_handler->sequenceHandler_;
74+
// have only one copy per sequence, so just take the 1st one
7475
process(application_handler->sequenceHandler_.getSequenceSegments()[0], SequenceHandler(), {}, filenames);
7576
return true;
7677
}

src/smartpeak/source/core/SequenceSegmentProcessors/StoreFeatureQCs.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ namespace SmartPeak
7171
return false;
7272
}
7373
sequence_segment_observable_ = &application_handler->sequenceHandler_;
74+
// have only one copy per sequence, so just take the 1st one
7475
process(application_handler->sequenceHandler_.getSequenceSegments()[0], SequenceHandler(), {}, filenames);
7576
return true;
7677
}

src/smartpeak/source/core/SequenceSegmentProcessors/StoreFeatureRSDEstimations.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,16 @@ namespace SmartPeak
4747
return { };
4848
}
4949

50-
bool StoreFeatureRSDEstimations::onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler)
50+
bool StoreFeatureRSDEstimations::onFilePicked(const std::filesystem::path& directory, ApplicationHandler* application_handler)
5151
{
5252
Filenames filenames;
53-
if (!FeatureFiltersUtils::onFilePicked(
54-
filename,
55-
application_handler,
56-
filenames,
57-
"featureRSDEstimationComponents",
58-
"featureRSDEstimationComponentGroups",
59-
feature_filter_mode_))
53+
filenames.setTagValue(Filenames::Tag::FEATURES_OUTPUT_PATH, directory.generic_string());
54+
static_filenames_ = false;
55+
for (auto& sequence_segment : application_handler->sequenceHandler_.getSequenceSegments())
6056
{
61-
return false;
57+
filenames.setTagValue(Filenames::Tag::OUTPUT_SEQUENCE_SEGMENT_NAME, sequence_segment.getSequenceSegmentName());
58+
process(sequence_segment, application_handler->sequenceHandler_, {}, filenames);
6259
}
63-
sequence_segment_observable_ = &application_handler->sequenceHandler_;
64-
process(application_handler->sequenceHandler_.getSequenceSegments()[0], SequenceHandler(), {}, filenames);
6560
return true;
6661
}
6762

src/smartpeak/source/core/SequenceSegmentProcessors/StoreQuantitationMethods.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,12 @@ namespace SmartPeak
7171

7272
bool StoreQuantitationMethods::onFilePicked(const std::filesystem::path& directory, ApplicationHandler* application_handler)
7373
{
74-
if (application_handler->sequenceHandler_.getSequenceSegments().size() == 0)
75-
{
76-
LOGE << "File cannot be written without first loading the sequence.";
77-
return false;
78-
}
74+
Filenames filenames;
75+
filenames.setTagValue(Filenames::Tag::FEATURES_OUTPUT_PATH, directory.generic_string());
76+
static_filenames_ = false;
7977
for (auto& sequence_segment : application_handler->sequenceHandler_.getSequenceSegments())
8078
{
81-
Filenames filenames;
82-
filenames.setTagValue(Filenames::Tag::FEATURES_OUTPUT_PATH, directory.generic_string());
8379
filenames.setTagValue(Filenames::Tag::OUTPUT_SEQUENCE_SEGMENT_NAME, sequence_segment.getSequenceSegmentName());
84-
static_filenames_ = false;
8580
process(sequence_segment, application_handler->sequenceHandler_, {}, filenames);
8681
}
8782
return true;

src/smartpeak/source/core/SequenceSegmentProcessors/StoreStandardsConcentrations.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,16 @@ namespace SmartPeak
5656
return ParameterSet();
5757
}
5858

59-
bool StoreStandardsConcentrations::onFilePicked(const std::filesystem::path& filename, ApplicationHandler* application_handler)
59+
bool StoreStandardsConcentrations::onFilePicked(const std::filesystem::path& directory, ApplicationHandler* application_handler)
6060
{
61-
if (application_handler->sequenceHandler_.getSequence().size() == 0)
61+
Filenames filenames;
62+
filenames.setTagValue(Filenames::Tag::FEATURES_OUTPUT_PATH, directory.generic_string());
63+
static_filenames_ = false;
64+
for (auto& sequence_segment : application_handler->sequenceHandler_.getSequenceSegments())
6265
{
63-
LOGE << "File cannot be loaded without first loading the sequence.";
64-
return false;
66+
filenames.setTagValue(Filenames::Tag::OUTPUT_SEQUENCE_SEGMENT_NAME, sequence_segment.getSequenceSegmentName());
67+
process(sequence_segment, application_handler->sequenceHandler_, {}, filenames);
6568
}
66-
Filenames filenames;
67-
filenames.setFullPath("standardsConcentrations", filename);
68-
sequence_segment_observable_ = &application_handler->sequenceHandler_;
69-
process(application_handler->sequenceHandler_.getSequenceSegments()[0], SequenceHandler(), {}, filenames);
7069
return true;
7170
}
7271

src/widgets/source/ui/FilePicker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ namespace SmartPeak
349349
{
350350
auto dir = pfd::select_folder(
351351
title,
352-
default_file_name
352+
""
353353
).result();
354354
LOGD << "Selected dir: " << dir;
355355
picked_pathname_ = dir;

0 commit comments

Comments
 (0)