56class TOPPFeatureLinkerBase :
62 TOPPFeatureLinkerBase(std::string name, std::string description,
bool official =
true) :
63 TOPPBase(name, description, official)
70 registerInputFileList_(
"in",
"<files>", ListUtils::create<std::string>(
""),
"input files separated by blanks",
true);
71 setValidFormats_(
"in", ListUtils::create<std::string>(
"featureXML,consensusXML,featureparquet,consensusparquet"));
73 setValidFormats_(
"out", ListUtils::create<std::string>(
"consensusXML,consensusparquet"));
74 registerInputFile_(
"design",
"<file>",
"",
"input file containing the experimental design",
false);
77 registerFlag_(
"keep_subelements",
"For consensusXML/consensusparquet input only: If set, the sub-features of the inputs are transferred to the output.");
102 for (
Size i = 0; i < ins.size(); ++i)
106 writeLogError_(
"Error: All input files must be of the same type!");
115 writeDebug_(
"Used algorithm parameters", algorithm_param, 3);
125 std::string design_file;
135 writeLogError_(
"Error: Using fractionated design with consensusXML/consensusparquet as input is not supported!");
141 OPENMS_LOG_INFO <<
"Linking " << ins.size() <<
" feature maps." << endl;
148 map<unsigned, vector<std::string>> frac2files;
150 if (!design_file.empty())
163 writeLogError_(
"Error: Number of runs must match for every fraction!");
169 for (
Size i = 0; i != ins.size(); ++i)
175 vector<FeatureMap > maps(ins.size());
187 for (
Size i = 0; i < ins.size(); ++i)
196 if (ms_runs.size() > 1 || ms_runs.empty())
198 OPENMS_LOG_WARN <<
"Exactly one MS run should be associated with a FeatureMap. "
200 <<
" provided." << endl;
210 ms_run_locations.insert(ms_run_locations.end(), ms_runs.begin(), ms_runs.end());
226 ft.getSubordinates().clear();
227 ft.getConvexHulls().clear();
235 ft.setMetaValue(
"Group", group);
253 ms_run_locations.push_back(ms_run_locations[0]);
259 if (frac2files.size() == 1)
261 algorithm->
group(maps, out_map);
266 for (
Size i = 1; i <= frac2files.size(); ++i)
268 vector<FeatureMap> fraction_maps;
271 for (
size_t feature_map_index = 0; feature_map_index != frac2files[i].size(); ++feature_map_index)
273 fraction_maps.push_back(maps[feature_map_index]);
275 algorithm->
group(fraction_maps, out_map);
283 bool keep_subelements =
getFlag_(
"keep_subelements");
284 vector<ConsensusMap> maps(ins.size());
286 for (
Size i = 0; i < ins.size(); ++i)
289 maps[i].updateRanges();
292 maps[i].getPrimaryMSRunPath(ms_runs);
293 ms_run_locations.insert(ms_run_locations.end(), ms_runs.begin(), ms_runs.end());
294 if (keep_subelements)
296 auto saveOldMapIndex =
299 if (p.metaValueExists(
"map_index"))
301 p.setMetaValue(
"old_map_index", p.getMetaValue(
"map_index"));
305 OPENMS_LOG_WARN <<
"Warning: map_index not found in PeptideID. The tool will not be able to assign a"
306 "consistent one. Check the settings of previous tools." << std::endl;
309 maps[i].applyFunctionOnPeptideIDs(saveOldMapIndex,
true);
313 algorithm->
group(maps, out_map);
317 if (!keep_subelements)
319 for (
Size i = 0; i < ins.size(); ++i)
349 map<Size, UInt> num_consfeat_of_size;
352 ++num_consfeat_of_size[cf.size()];
356 for (map<Size, UInt>::reverse_iterator i = num_consfeat_of_size.rbegin();
357 i != num_consfeat_of_size.rend(); ++i)
359 OPENMS_LOG_INFO <<
" of size " << setw(2) << i->first <<
": " << setw(6)
360 << i->second << endl;
#define OPENMS_LOG_WARN
Macro for warnings.
Definition LogStream.h:581
#define OPENMS_LOG_INFO
Macro for information/status messages.
Definition LogStream.h:585
A consensus feature spanning multiple LC-MS/MS experiments.
Definition ConsensusFeature.h:45
A container for consensus elements.
Definition ConsensusMap.h:67
Size applyMemberFunction(Size(Type::*member_function)())
Applies a member function of Type to the container itself and all consensus features....
Definition ConsensusMap.h:288
void sortPeptideIdentificationsByMapIndex()
Sorts PeptideIdentifications of consensus features with respect to their map index.
const ColumnHeaders & getColumnHeaders() const
Non-mutable access to the file descriptions.
@ FEATURE_GROUPING
Feature grouping
Definition DataProcessing.h:48
void setParameters(const Param ¶m)
Sets the parameters.
static ExperimentalDesign load(const std::string &tsv_file, bool require_spectra_files)
Loads an experimental design from a tabular separated file.
Representation of an experimental design in OpenMS. Instances can be loaded with the ExperimentalDesi...
Definition ExperimentalDesign.h:109
unsigned getNumberOfFractions() const
bool sameNrOfMSFilesPerFraction() const
std::map< unsigned int, std::vector< std::string > > getFractionToMSFilesMapping() const
return fraction index to file paths (ordered by fraction_group)
size_t size() const noexcept
Definition ExposedVector.h:128
Options for loading files containing features.
Definition FeatureFileOptions.h:35
void setLoadConvexHull(bool convex)
void setLoadSubordinates(bool sub)
Base class for all feature grouping algorithms.
Definition FeatureGroupingAlgorithm.h:25
void transferSubelements(const std::vector< ConsensusMap > &maps, ConsensusMap &out) const
Transfers subelements (grouped features) from input consensus maps to the result consensus map.
virtual void group(const std::vector< FeatureMap > &maps, ConsensusMap &out)=0
Applies the algorithm. The features in the input maps are grouped and the output is written to the co...
A container for features.
Definition FeatureMap.h:78
void getPrimaryMSRunPath(StringList &toFill) const
get the file path to the first MS run
void updateRanges() override
An LC-MS feature.
Definition Feature.h:46
Facilitates file handling by file type recognition.
Definition FileHandler.h:45
void loadConsensusFeatures(const std::string &filename, ConsensusMap &map, const std::vector< FileTypes::Type > allowed_types={}, ProgressLogger::LogType log=ProgressLogger::NONE)
Loads a file into a ConsensusMap.
void storeConsensusFeatures(const std::string &filename, const ConsensusMap &map, const std::vector< FileTypes::Type > allowed_types={}, ProgressLogger::LogType log=ProgressLogger::NONE)
Store a ConsensusFeatureMap.
static FileTypes::Type getType(const std::string &filename)
Tries to determine the file type (by name or content)
FeatureFileOptions & getFeatOptions()
Mutable access to the feature file options for loading/storing.
void setFeatOptions(const FeatureFileOptions &)
set feature file options for loading/storing
void loadFeatures(const std::string &filename, FeatureMap &map, const std::vector< FileTypes::Type > allowed_types={}, ProgressLogger::LogType log=ProgressLogger::NONE)
Loads a file into a FeatureMap.
Management and storage of parameters / INI files.
Definition Param.h:46
Param copy(const std::string &prefix, bool remove_prefix=false) const
Returns a new Param object containing all entries that start with prefix.
Represents the set of candidates (SpectrumMatches) identified for a single precursor spectrum.
Definition PeptideIdentification.h:66
Base class for all classes that want to report their progress.
Definition ProgressLogger.h:27
void setProgress(SignedSize value) const
Sets the current progress.
void setLogType(LogType type) const
Sets the progress log that should be used. The default type is NONE!
void endProgress(UInt64 bytes_processed=0) const
void startProgress(SignedSize begin, SignedSize end, const std::string &label) const
Initializes the progress display.
@ CMD
Command line progress.
Definition ProgressLogger.h:44
Base class for TOPP applications.
Definition TOPPBase.h:120
std::string getStringOption_(const std::string &name) const
Returns the value of a previously registered string option (use getOutputDirOption() for output direc...
void setValidFormats_(const std::string &name, const std::vector< std::string > &formats, const bool force_OpenMS_format=true)
Sets the formats for a input/output file option or for all members of an input/output file lists.
void registerInputFileList_(const std::string &name, const std::string &argument, const StringList &default_value, const std::string &description, bool required=true, bool advanced=false, const StringList &tags=StringList())
Registers a list of input files option.
Param const & getParam_() const
Return all parameters relevant to this TOPP tool.
bool getFlag_(const std::string &name) const
Returns the value of a previously registered flag.
void addEmptyLine_()
Adds an empty line between registered variables in the documentation.
StringList getStringList_(const std::string &name) const
Returns the value of a previously registered StringList.
virtual void registerOptionsAndFlags_()=0
Sets the valid command line options (with argument) and flags (without argument).
DataProcessing getProcessingInfo_(DataProcessing::ProcessingAction action) const
Returns the data processing information.
void writeDebug_(const std::string &text, UInt min_level) const
Writes a string to the log file and to OPENMS_LOG_DEBUG if the debug level is at least min_level.
void registerOutputFile_(const std::string &name, const std::string &argument, const std::string &default_value, const std::string &description, bool required=true, bool advanced=false)
Registers an output file option.
void registerInputFile_(const std::string &name, const std::string &argument, const std::string &default_value, const std::string &description, bool required=true, bool advanced=false, const StringList &tags=StringList())
Registers an input file option.
void registerFlag_(const std::string &name, const std::string &description, bool advanced=false)
Registers a flag.
@ ILLEGAL_PARAMETERS
Definition TOPPBase.h:138
@ EXECUTION_OK
Definition TOPPBase.h:132
void writeLogError_(const std::string &text) const
Writes a string to the log file and to OPENMS_LOG_ERROR.
void addDataProcessing_(ConsensusMap &map, const DataProcessing &dp) const
Data processing setter for consensus maps.
UInt64 getUniqueId() const
Non-mutable access to unique id - returns the unique id.
Definition UniqueIdInterface.h:78
Size setUniqueId()
Assigns a new, valid unique id. Always returns 1.
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
std::vector< std::string > StringList
Vector of String.
Definition ListUtils.h:44
const std::string ADDUCT_GROUP
Definition Constants.h:592
const std::string DC_CHARGE_ADDUCTS
Definition Constants.h:602
std::string toStr(int i)
Definition StringUtils.h:257
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Type
Actual file types enum.
Definition FileTypes.h:31
@ FEATUREPARQUET
OpenMS internal feature map parquet bundle (directory: features.parquet + psms.parquet + proteins....
Definition FileTypes.h:99
@ CONSENSUSPARQUET
OpenMS internal consensus map parquet bundle (directory: consensus_features.parquet + psms....
Definition FileTypes.h:100
@ CONSENSUSXML
OpenMS consensus map format (.consensusXML)
Definition FileTypes.h:39
@ FEATUREXML
OpenMS feature file (.featureXML)
Definition FileTypes.h:37