Ymir  .9
Fast\C++toolforcomputationofassemblingprobabilities,statisticalinferenceofassemblingstatisticalmodelandgenerationofartificialsequencesofT-cellreceptorsdata.
clonotype_builder.h
1 /*
2  * Ymir <imminfo.github.io/ymir>
3  *
4  * This file is part of Ymir, a fast C++ tool for computation of assembling
5  * probabilities, statistical inference of assembling statistical model
6  * and generation of artificial sequences of T-cell receptors data.
7  *
8  *
9  * Copyright 2015 Vadim Nazarov <vdn at mailbox dot com>
10  *
11  * Licensed under the Apache License, Version 2.0 (the "License");
12  * you may not use this file except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  * http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  */
23 
24 #ifndef _CLONOTYPE_BUILDER_H
25 #define _CLONOTYPE_BUILDER_H
26 
27 
28 #include "clonotype.h"
29 #include "vdj_alignment_builder.h"
30 
31 
32 namespace ymir {
33 
37  class ClonotypeBuilder : protected Clonotype, public VDJAlignmentBuilder {
38  public:
39 
41  {
42  }
43 
44 
45  virtual ~ClonotypeBuilder()
46  {
47  }
48 
49 
56 // ClonotypePtr cla(new Clonotype(_sequence, _seq_type, _recomb, this->buildAlignment()));
57 // return std::move(cla);
58  return Clonotype(_sequence, _seq_type, _recomb, this->buildAlignment());
59  }
60 
61 
65  ClonotypeBuilder& setSequence(const std::string& seq) { this->_sequence = seq; return *this; }
67 
68  ClonotypeBuilder& setSequenceType(SequenceType seq_type) { _seq_type = seq_type; return *this; }
69 
70  ClonotypeBuilder& setNucleotideSeq() { _seq_type = NUCLEOTIDE; return *this; }
71 
72  ClonotypeBuilder& setAminoAcidSeq() { _seq_type = AMINOACID; return *this; }
73 
74  ClonotypeBuilder& setRecombination(Recombination recomb) { _recomb = recomb; return *this; }
76 
77  protected:
78 
79  };
80 
81 }
82 
83 #endif
Definition: aligner.h:37
Definition: clonotype.h:46
Definition: vdj_alignment_builder.h:35
Definition: clonotype_builder.h:37
VDJAlignmentBuilder()
Move constructor for _segments, _alignments and _n_D_alignments.
Definition: vdj_alignment_builder.h:40
Clonotype buildClonotype()
Build clone alignment structure with stored information.
Definition: clonotype_builder.h:55