void OutputRepertoire(string output_fname) const { ofstream out(output_fname.c_str()); size_t id = 1; for(auto it = begin(); it != end(); it++) { for(size_t i = 0; i < it->Multiplicity(); i++) { out << ">antibody_" << id << "_multiplicity_" << it->Multiplicity() << "_copy_" << i + 1 << endl; out << it->Sequence() << endl; } id++; } out.close(); }
HC_Repertoire_Ptr CreateMutatedHCRepertoire(HC_InputParams params, HC_Repertoire_Ptr base_repertoire) { HC_Repertoire_Ptr mutated_repertoire(new HC_Repertoire()); // mutated multiplicity creator // HC_ExponentialMultiplicityCreator mutated_multiplicity_creator(base_repertoire->NumberAntibodies(), // params.basic_repertoire_params.final_repertoire_size); HC_PowerLawMultiplicityCreator mutated_multiplicity_creator(base_repertoire->NumberAntibodies(), params.basic_repertoire_params.final_repertoire_size); // shm creator HC_RgywWrcySHMStrategy shm_creation_strategy1(params.pattern_shm_params.min_number_pattern_shm, params.pattern_shm_params.max_number_pattern_shm, params.pattern_shm_params.substitution_propability); HC_CDRBasedRandomSHMStrategy shm_creation_strategy2(params.cdr_shm_params.min_number_mutations, params.cdr_shm_params.max_number_mutations, params.cdr_shm_params.mutation_in_fr_prop); HC_CompositeSHMCreationStrategy composite_shm_strategy(shm_creation_strategy1, shm_creation_strategy2); HC_SHMCreator shm_creator(composite_shm_strategy); for(auto it = base_repertoire->begin(); it != base_repertoire->end(); it++) { for(size_t i = 0; i < it->Multiplicity(); i++) { auto variable_region_ptr = it->IgVariableRegion()->Clone(); variable_region_ptr = shm_creator.CreateSHM(variable_region_ptr); size_t multiplicity = mutated_multiplicity_creator.AssignMultiplicity(variable_region_ptr); mutated_repertoire->Add(HC_Cluster(variable_region_ptr, multiplicity)); } } return mutated_repertoire; }
void PrintBaseHCRepertoire(HC_Repertoire_Ptr base_repertoire) { for(auto it = base_repertoire->begin(); it != base_repertoire->end(); it++) { cout << it->IgVariableRegion()->VDJ_Recombination()->Sequence() << " " << it->Multiplicity() << endl; cout << it->IgVariableRegion()->GetCDRSettings(); } }
void PrintMutatedHCRepertoire(HC_Repertoire_Ptr mutated_repertoire) { for(auto it = mutated_repertoire->begin(); it != mutated_repertoire->end(); it++) { cout << it->IgVariableRegion()->VDJ_Recombination()->Sequence() << " " << it->Multiplicity() << endl; } }
void OutputMultiplicities(string output_fname) const { ofstream out(output_fname.c_str()); for(auto it = begin(); it != end(); it++) out << it->Multiplicity() << endl; out.close(); }
size_t NumberAntibodies() { size_t size = 0; for(auto it = begin(); it != end(); it++) size += it->Multiplicity(); return size; }