libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::psm::PsmProteinMap Class Reference

#include <psmproteinmap.h>

Public Member Functions

 PsmProteinMap ()
 
virtual ~PsmProteinMap ()
 
std::pair< std::map< QString, pappso::cbor::psm::PsmProtein >::iterator, bool > insert (const PsmProtein &psm_protein)
 
void writeMap (CborStreamWriter &writer) const
 
void readMap (CborStreamReader &reader)
 
std::size_t size () const
 
const pappso::cbor::psm::PsmProteingetByAccession (const QString &accession) const
 

Private Attributes

std::map< QString, PsmProteinm_proteinMap
 

Detailed Description

Todo
write docs

Definition at line 49 of file psmproteinmap.h.

Constructor & Destructor Documentation

◆ PsmProteinMap()

pappso::cbor::psm::PsmProteinMap::PsmProteinMap ( )

Default constructor

Definition at line 33 of file psmproteinmap.cpp.

34{
35}

◆ ~PsmProteinMap()

pappso::cbor::psm::PsmProteinMap::~PsmProteinMap ( )
virtual

Destructor

Definition at line 37 of file psmproteinmap.cpp.

38{
39}

Member Function Documentation

◆ getByAccession()

const pappso::cbor::psm::PsmProtein & pappso::cbor::psm::PsmProteinMap::getByAccession ( const QString & accession) const

Definition at line 156 of file psmproteinmap.cpp.

157{
158 auto it = m_proteinMap.find(accession);
159
160 if(it == m_proteinMap.end())
161 {
162 throw pappso::ExceptionNotFound(QObject::tr("%1 accession not found").arg(accession));
163 }
164 return it->second;
165}
std::map< QString, PsmProtein > m_proteinMap

References m_proteinMap.

◆ insert()

std::pair< std::map< QString, pappso::cbor::psm::PsmProtein >::iterator, bool > pappso::cbor::psm::PsmProteinMap::insert ( const PsmProtein & psm_protein)

Definition at line 42 of file psmproteinmap.cpp.

43{
44 return m_proteinMap.insert(
45 std::pair<QString, PsmProtein>(psm_protein.protein_sp.get()->getAccession(), psm_protein));
46}

References m_proteinMap, and pappso::cbor::psm::PsmProtein::protein_sp.

◆ readMap()

void pappso::cbor::psm::PsmProteinMap::readMap ( CborStreamReader & reader)

Definition at line 80 of file psmproteinmap.cpp.

81{
82 PsmProtein psm_protein;
83 reader.enterContainer();
84 while(!reader.lastError() && reader.hasNext())
85 {
86 bool is_ok;
87
88 QString accession;
89 is_ok = reader.decodeString(accession);
90 qDebug() << accession;
91 if(is_ok)
92 {
93 reader.enterContainer();
94 pappso::Protein protein;
95 protein.setAccession(accession);
96 psm_protein.protein_sp = std::make_shared<pappso::Protein>(protein);
97 psm_protein.isContaminant = false;
98 psm_protein.isTarget = true;
99 auto it = m_proteinMap.insert(std::pair<QString, PsmProtein>(accession, psm_protein));
100
101 QString tag;
102 while(!reader.lastError() && reader.hasNext())
103 {
104 is_ok = reader.decodeString(tag);
105 qDebug() << tag;
106 if(is_ok)
107 {
108 if(tag == "description")
109 {
110 QString description;
111 is_ok = reader.decodeString(description);
112 qDebug() << description;
113 it.first->second.protein_sp.get()->setDescription(description);
114 }
115 else if(tag == "sequence")
116 {
117 QString sequence;
118 reader.decodeString(sequence);
119 it.first->second.protein_sp.get()->setSequence(sequence);
120 }
121 else if(tag == "target")
122 {
123 it.first->second.isTarget = reader.toBool();
124 reader.next();
125 }
126 else if(tag == "contaminant")
127 {
128 it.first->second.isContaminant = reader.toBool();
129 reader.next();
130 }
131 else if(tag == "eval")
132 {
133 reader.readCborMap(it.first->second.cborEval);
134 }
135 }
136 }
137 reader.leaveContainer();
138 }
139 else
140 {
141 // no accession
142 }
143 // reader.next();
144 // }
145 }
146 reader.leaveContainer();
147}
virtual void setAccession(const QString &accession)
Definition protein.cpp:132

References pappso::cbor::CborStreamReader::decodeString(), pappso::cbor::psm::PsmProtein::isContaminant, pappso::cbor::psm::PsmProtein::isTarget, m_proteinMap, pappso::cbor::psm::PsmProtein::protein_sp, pappso::cbor::CborStreamReader::readCborMap(), and pappso::Protein::setAccession().

◆ size()

std::size_t pappso::cbor::psm::PsmProteinMap::size ( ) const

Definition at line 150 of file psmproteinmap.cpp.

151{
152 return m_proteinMap.size();
153}

References m_proteinMap.

◆ writeMap()

void pappso::cbor::psm::PsmProteinMap::writeMap ( CborStreamWriter & writer) const

Definition at line 49 of file psmproteinmap.cpp.

50{
51 // writer.append("protein_map");
52 writer.startMap(m_proteinMap.size()); // protein map
53 for(auto &protein_pair : m_proteinMap)
54 {
55 writer.append(protein_pair.first);
56
57 qDebug() << protein_pair.first;
58 writer.startMap(); // protein
59 writer.append("description");
60 writer.append(protein_pair.second.protein_sp.get()->getDescription());
61 writer.append("sequence");
62 writer.append(protein_pair.second.protein_sp.get()->getSequence());
63 writer.append("target");
64 writer.append(protein_pair.second.isTarget);
65 writer.append("contaminant");
66 writer.append(protein_pair.second.isContaminant);
67
68 if(!protein_pair.second.cborEval.isEmpty())
69 {
70 writer.append("eval");
71 writer.writeCborMap(protein_pair.second.cborEval);
72 }
73 writer.endMap(); // protein
74 }
75
76 writer.endMap(); // protein map
77}

References m_proteinMap, and pappso::cbor::CborStreamWriter::writeCborMap().

Member Data Documentation

◆ m_proteinMap

std::map<QString, PsmProtein> pappso::cbor::psm::PsmProteinMap::m_proteinMap
private

Definition at line 74 of file psmproteinmap.h.

Referenced by getByAccession(), insert(), readMap(), size(), and writeMap().


The documentation for this class was generated from the following files: