Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_ANALYSIS_OPENSWATH_TRANSITIONTSVREADER_H
00036 #define OPENMS_ANALYSIS_OPENSWATH_TRANSITIONTSVREADER_H
00037
00038 #include <OpenMS/ANALYSIS/TARGETED/TargetedExperiment.h>
00039 #include <OpenMS/CHEMISTRY/AASequence.h>
00040 #include <OpenMS/CHEMISTRY/ResidueModification.h>
00041 #include <OpenMS/CHEMISTRY/ModificationsDB.h>
00042 #include <OpenMS/CONCEPT/ProgressLogger.h>
00043 #include <fstream>
00044
00045 namespace OpenMS
00046 {
00047
00072 class OPENMS_DLLAPI TransitionTSVReader :
00073 public ProgressLogger
00074 {
00075
00076 private:
00077
00078 typedef std::vector<OpenMS::TargetedExperiment::Protein> ProteinVectorType;
00079 typedef std::vector<OpenMS::TargetedExperiment::Peptide> PeptideVectorType;
00080 typedef std::vector<OpenMS::ReactionMonitoringTransition> TransitionVectorType;
00081
00082 struct TSVTransition
00083 {
00084 double precursor;
00085 double product;
00086 double rt_calibrated;
00087 String transition_name;
00088 double CE;
00089 double library_intensity;
00090 String group_id;
00091 int decoy;
00092 String PeptideSequence;
00093 String ProteinName;
00094 String Annotation;
00095 String FullPeptideName;
00096 int precursor_charge;
00097 String group_label;
00098 int fragment_charge;
00099 int fragment_nr;
00100 String fragment_type;
00101 String uniprot_id;
00102 };
00103
00104 static const char* strarray[];
00105
00106 static const std::vector<std::string> header_names;
00107
00109 void readTSVInput_(const char* filename, std::vector<TSVTransition>& transition_list);
00110
00112 void getTSVHeader(std::string & line, char & delimiter, std::vector<std::string> header, std::map<std::string, int> & header_dict);
00113
00115 void readUnstructuredTSVInput_(const char* filename, std::vector<TSVTransition>& transition_list);
00116
00118 void cleanUpTransition(TSVTransition & mytransition);
00119
00121 void TSVToTargetedExperiment_(std::vector<TSVTransition>& transition_list, OpenMS::TargetedExperiment& exp);
00122
00123 void createTransition_(std::vector<TSVTransition>::iterator& tr_it, OpenMS::ReactionMonitoringTransition& rm_trans);
00124
00125 void createProtein_(std::vector<TSVTransition>::iterator& tr_it, OpenMS::TargetedExperiment::Protein& protein);
00126
00127 void createPeptide_(std::vector<TSVTransition>::iterator& tr_it, OpenMS::TargetedExperiment::Peptide& peptide);
00128
00129 void add_modification_(std::vector<TargetedExperiment::Peptide::Modification> & mods,
00130 int location, ResidueModification & rmod, const String & name);
00131
00132
00134 void writeTSVOutput_(const char* filename, OpenMS::TargetedExperiment& targeted_exp);
00135
00136 public:
00138 void convertTargetedExperimentToTSV(const char* filename, OpenMS::TargetedExperiment& targeted_exp);
00139
00141 void convertTSVToTargetedExperiment(const char* filename, OpenMS::TargetedExperiment& targeted_exp);
00142
00144 void validateTargetedExperiment(OpenMS::TargetedExperiment& targeted_exp);
00145
00146 };
00147 }
00148
00149 #endif
00150