Nemo  2.4.0
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
GenotyperFH Class Reference

FileHandler to write joint genotype files for multiple mappable traits. More...

#include <servicenotifiers.h>

+ Inheritance diagram for GenotyperFH:
+ Collaboration diagram for GenotyperFH:

Public Member Functions

 GenotyperFH (LCE_FileServicesNotifier *event)
 
virtual ~GenotyperFH ()
 
virtual void FHwrite ()
 
virtual void FHread (string &filename)
 
void setTraits (vector< trait_t > &traits)
 
void setTraitIndex (vector< unsigned int > &indices)
 
void setFormat (string format)
 
void setLogtime (string logtime)
 
void set_isDiallelic (bool test)
 
void set_trimFixedLoci (bool test, double maf)
 
void prepare_data_table (map< unsigned int, vector< unsigned int > > &trait_locus, vector< string > &col_names)
 
void collate_trait_map_positions (vector< unsigned int > &positions, map< unsigned int, vector< unsigned int > > &table)
 
void print_genotypes (ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
 
void print_snp_genotypes (ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
 
void print_snp_id (ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
 
void print_map_positions (ofstream &FH, vector< unsigned int > &positions, vector< string > &col_names)
 
- Public Member Functions inherited from EventFileHandler< LCE_FileServicesNotifier >
 EventFileHandler (LCE_FileServicesNotifier *event, const char *ext)
 
virtual ~EventFileHandler ()
 
virtual void FHread (string &filename)=0
 
virtual void set (bool rpl_per, bool gen_per, int rpl_occ, int gen_occ, int rank, string path, LCE_FileServicesNotifier *event)
 
- Public Member Functions inherited from FileHandler
 FileHandler (const char *ext)
 
virtual ~FileHandler ()
 
virtual void init ()
 Called by notifier during simulation setup, performs file checking. More...
 
virtual vector< string > ifExist ()
 Checks if any file associated with the current file name already exists on disk. More...
 
virtual void set (bool rpl_per, bool gen_per, int rpl_occ, int gen_occ, int rank, string path)
 Sets the hanlder parameters. More...
 
virtual void set_multi (bool rpl_per, bool gen_per, int rpl_occ, TMatrix *Occ, string path)
 
virtual void update ()
 Updates the inner replicate and generation counters and calls FHwrite if needed by the the periodicity of the file. More...
 
Metapopget_pop_ptr ()
 Returns the pointer to the current metapop through the FileServices interface. More...
 
void set_pop_ptr (Metapop *pop_ptr)
 
FileServicesget_service ()
 Returns pointer to the FileServices. More...
 
void set_service (FileServices *srv)
 
std::string & get_path ()
 
void set_path ()
 
std::string & get_extension ()
 
void set_extension (const char *ext)
 
std::string & get_filename ()
 Builds and returns the current file name depending on the periodicity of the file. More...
 
bool get_isInputHandler ()
 
void set_isInputHandler (bool val)
 
bool get_isReplicatePeriodic ()
 
void set_isReplicatePeriodic (bool val)
 
unsigned int get_ReplicateOccurrence ()
 
void set_ReplicateOccurrence (unsigned int val)
 
bool get_isGenerationPeriodic ()
 
void set_isGenerationPeriodic (bool val)
 
unsigned int get_GenerationOccurrence ()
 
void set_GenerationOccurrence (unsigned int val)
 
unsigned int get_ExecRank ()
 unused yet... More...
 
void set_ExecRank (int val)
 
TMatrixget_OccMatrix ()
 
void set_OccMatrix (TMatrix *occ)
 
bool get_isMasterExec ()
 
void set_isMasterExec (bool is)
 
- Public Member Functions inherited from Handler
virtual ~Handler ()
 

Private Attributes

vector< trait_t_traits
 
vector< unsigned int > _trait_index
 
string _format
 
string _logtime
 
bool _is_diallelic
 
bool _trim_loci
 
double _trim_maf
 

Additional Inherited Members

- Protected Attributes inherited from EventFileHandler< LCE_FileServicesNotifier >
LCE_FileServicesNotifier_FHLinkedEvent
 
- Protected Attributes inherited from FileHandler
Metapop_pop
 Pointer to the current metapop, set during initialization within the init function. More...
 

Detailed Description

FileHandler to write joint genotype files for multiple mappable traits.

Constructor & Destructor Documentation

◆ GenotyperFH()

GenotyperFH::GenotyperFH ( LCE_FileServicesNotifier event)
inline
120 : EventFileHandler(event, "") , _is_diallelic(0), _trim_loci(0), _trim_maf(0) {}
EventFileHandler(LCE_FileServicesNotifier *event, const char *ext)
Definition: filehandler.h:271
bool _is_diallelic
Definition: servicenotifiers.h:115
double _trim_maf
Definition: servicenotifiers.h:117
bool _trim_loci
Definition: servicenotifiers.h:116

◆ ~GenotyperFH()

virtual GenotyperFH::~GenotyperFH ( )
inlinevirtual
122 {}

Member Function Documentation

◆ collate_trait_map_positions()

void GenotyperFH::collate_trait_map_positions ( vector< unsigned int > &  positions,
map< unsigned int, vector< unsigned int > > &  table 
)
481 {
482  TraitPrototype* tproto;
483  unsigned int index;
484 
485  for(auto trait : _traits) {
486 
487  tproto = SIMenv::MainSim->get_pop()->getTraitPrototype(trait);
488 
489  if(!tproto) fatal("Genotyper::could not access trait prototype in (sampled) pop for trait \"%s\"\n", trait.c_str() );
490 
491  index = tproto->get_index();
492  vector<unsigned int> & locus = table[index];
493 
494  vector< unsigned int > trait_positions = tproto->get_locus_map_positions();
495 
496  for(unsigned int i = 0; i < locus.size(); ++i)
497  positions.push_back(trait_positions[ locus[i] ]);
498  }
499 }
vector< trait_t > _traits
Definition: servicenotifiers.h:111
TraitPrototype * getTraitPrototype(trait_t type)
Accessor to a TraitPrototype.
Definition: indfactory.cc:139
static SimRunner * MainSim
Definition: simenv.h:41
Metapop * get_pop()
Accessor to the pop ptr.
Definition: simulation.h:171
TTrait setter.
Definition: ttrait.h:130
virtual vector< unsigned int > get_locus_map_positions()=0
Returns the map positions of the loci in vector.
virtual int get_index()
Index getter.
Definition: ttrait.h:151
void fatal(const char *str,...)
Definition: output.cc:99

References _traits, fatal(), TraitPrototype::get_index(), TraitPrototype::get_locus_map_positions(), SimRunner::get_pop(), IndFactory::getTraitPrototype(), and SIMenv::MainSim.

Referenced by FHwrite().

+ Here is the caller graph for this function:

◆ FHread()

virtual void GenotyperFH::FHread ( string &  filename)
inlinevirtual

Implements FileHandler.

125 {}

◆ FHwrite()

void GenotyperFH::FHwrite ( )
virtual

Implements EventFileHandler< LCE_FileServicesNotifier >.

399 {
400  if(!_pop->isAlive()) return;
401 
402  // reset the pop ptr from the file services, will be the main metapop without sub sampling
403  // or a sub sampled pop otherwise:
404 
405 // vector< vector<double> > data_table;
406  vector< string > file_header;
407  map< unsigned int, vector<unsigned int> > table_trait_locus;
408 
410 
411  // prepare the table receiving the allelic info. Sets the right number of columns and individual info
412  prepare_data_table(table_trait_locus, file_header);
413 
414  // WRITE data to file
415  string filename = this->get_filename();
416 
417  ofstream FILE(filename, ios::out | ios::trunc);
418  std::ios_base::sync_with_stdio(false); // better for writing performances
419 
420  if(!FILE) fatal("Genotyper::could not open genotype output file \"%s\"\n",filename.c_str());
421 
422  // print the header
423  auto concat = [] (string a, string b){return a + " " + b;};
424 
425  FILE << std::accumulate(file_header.begin()+1, file_header.end(), *file_header.begin(), concat) << endl;
426 
427  if(_format == "genotype") {
428 
429  print_genotypes(FILE, table_trait_locus);
430 
431  } else if (_format == "snp_genotype") {
432 
433  print_snp_genotypes(FILE, table_trait_locus);
434 
435  } else {
436 
437  print_snp_id(FILE, table_trait_locus);
438 
439  }
440 
441  FILE.close();
442  std::ios_base::sync_with_stdio(true); // reset
443 
444  // --------------------------------------------------------------------------------------
445  // write the map position of the loci to a separate file:
446 
447  // collect all loci positions in a vector, ordered as the columns of the data table (minus first 5 columns)
448  vector< unsigned int > positions;
449 
450  collate_trait_map_positions(positions, table_trait_locus);
451 
452  filename = get_path() + this->get_service()->getGenerationReplicateFileName() + ".map";
453 
454  FILE.open(filename, ios::out | ios::trunc);
455  std::ios_base::sync_with_stdio(false); // better for writing performances
456 
457  if(!FILE) fatal("Genotyper::could not open map positions output file \"%s\"\n",filename.c_str());
458 
459  assert(positions.size() == file_header.size()-5 || positions.size() == (file_header.size()-5)/2 );
460 
461  bool increment = 0;
462  if(positions.size() == (file_header.size()-5)/2) increment = 1;
463  // record map positions in two column: locus_name, position
464  // because diploid, two locus names per locus are present for genotypes and sno_ids...
465  for(unsigned int i = 0, c = 5; i < positions.size(); ++i, ++c) {
466  FILE << file_header[c] << " " << positions[i] << "\n";
467  c += increment;
468  }
469 
470  FILE.close();
471  std::ios_base::sync_with_stdio(true); // reset
472 
473  // reset the pop ptr to the main pop
475 
476 }
std::string & get_path()
Definition: filehandler.h:142
std::string & get_filename()
Builds and returns the current file name depending on the periodicity of the file.
Definition: filehandler.cc:150
Metapop * _pop
Pointer to the current metapop, set during initialization within the init function.
Definition: filehandler.h:102
FileServices * get_service()
Returns pointer to the FileServices.
Definition: filehandler.h:138
Metapop * getSampledPop()
Sets the down-sampled population and provides accessor to file handlers.
Definition: fileservices.cc:197
string getGenerationReplicateFileName()
Accessor to the current file name with generation and replicate counters added.
Definition: fileservices.cc:466
virtual Metapop * get_pop_ptr()
Accessor to the pointer to the main population.
Definition: fileservices.h:112
void prepare_data_table(map< unsigned int, vector< unsigned int > > &trait_locus, vector< string > &col_names)
Definition: servicenotifiers.cc:503
void collate_trait_map_positions(vector< unsigned int > &positions, map< unsigned int, vector< unsigned int > > &table)
Definition: servicenotifiers.cc:480
string _format
Definition: servicenotifiers.h:113
void print_snp_genotypes(ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
Definition: servicenotifiers.cc:639
void print_genotypes(ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
Definition: servicenotifiers.cc:593
void print_snp_id(ofstream &FH, map< unsigned int, vector< unsigned int > > &table)
Definition: servicenotifiers.cc:685
bool isAlive()
Checks if the population still contains at least one individual in any sex or age class.
Definition: metapop.h:308

References _format, FileHandler::_pop, collate_trait_map_positions(), fatal(), FileHandler::get_filename(), FileHandler::get_path(), FileServices::get_pop_ptr(), FileHandler::get_service(), FileServices::getGenerationReplicateFileName(), FileServices::getSampledPop(), Metapop::isAlive(), prepare_data_table(), print_genotypes(), print_snp_genotypes(), and print_snp_id().

◆ prepare_data_table()

void GenotyperFH::prepare_data_table ( map< unsigned int, vector< unsigned int > > &  trait_locus,
vector< string > &  col_names 
)
504 {
505  // write each trait separately, first fill-in the big table
506  // data table has as many rows as number of individuals in the pop
507  // number of columns is equal to tot number of loci + pathc-ID + sex + age + stage + ID
508  unsigned int num_locus = 0;
509  unsigned int num_ind = _pop->size();
510  unsigned int num_patch = _pop->getPatchNbr();
511  TraitPrototype* Tproto = 0;
512  TTrait* trait = 0;
513  Patch* patch = 0;
514  age_idx age_classes[2] = {OFFSx, ADLTx};
515  unsigned int trait_index;
516  double divider = 1.0/(num_ind * 2.0);
517  double p = 0;
518 
519 
520 // // add first column for the patch ID
521 // ind_data.push_back(vector<double>(num_ind, 0.0));
522 
523  col_names.clear();
524 
525  // add header for first column = patch-id
526  col_names.push_back("pop");
527 
528 // // add 4 columns with individual info:
529 // for(unsigned int i = 0; i < 4; ++i)
530 // ind_data.push_back(vector<double>(num_ind, 0.0));
531 
532  col_names.push_back("sex");
533  col_names.push_back("age");
534  col_names.push_back("stage");
535  col_names.push_back("ID");
536 
537  // create columns for number of loci per trait, prune loci with p < maf
538  for(auto trait_type : _traits) {
539 
540  Tproto = SIMenv::MainSim->get_pop()->getTraitPrototype(trait_type);
541 
542  if(!Tproto) fatal("Genotyper::could not access trait prototype in (sampled) pop for trait \"%s\"\n", trait_type.c_str() );
543 
544  num_locus = Tproto->get_locus_number();
545  trait_index = Tproto->get_index();
546 
547  // check allele frequencies in the population
548  for(unsigned int l = 0; l < num_locus; ++l) {
549 
550  // compute allele frequency in the whole population
551  p = 0;
552  for(unsigned int i = 0; i < num_patch; ++ i) {
553 
554  patch = _pop->getPatch(i);
555 
556  for(unsigned int a = 0; a < 2; ++a) {
557  for(unsigned int s = 0; s < 2; ++s) {
558  for(unsigned int j = 0; j < patch->size(sex_t(s),age_idx(age_classes[a])); ++j){
559 
560  trait = patch->get(sex_t(s), age_idx(age_classes[a]), j)->getTrait(trait_index);
561  // count the 1's
562  p += trait->get_allele(l, 1);
563  p += trait->get_allele(l, 0);
564  }
565  }
566  }
567  }
568 
569  p *= divider;
570 
571  if(p > _trim_maf && p < 1.0 - _trim_maf) {
572 
573  // add this locus to the list of polymorphic loci
574  trait_locus[trait_index].push_back(l);
575 
576  // add that locus to the table
577  if(_format == "snp_genotype") {
578  // write locus data in one column 0/1/2
579  col_names.push_back(trait_type + "." + to_string(l+1));
580  } else {
581  col_names.push_back(trait_type + "." + to_string(l+1) + "x");
582  col_names.push_back(trait_type + "." + to_string(l+1) + "y");
583  }
584  }
585  }
586  }
587 
588 
589 }
TTrait * getTrait(IDX T)
Trait accessor.
Definition: individual.h:276
unsigned int size()
Get the total number of individuals present in the population, all sex and age classes together.
Definition: metapop.h:311
unsigned int getPatchNbr()
Definition: metapop.h:275
Patch * getPatch(unsigned int i)
Patch accessor, return the ith+1 patch in the metapop.
Definition: metapop.h:256
Second class in the metapopulation design structure, between the Metapop and Individual classes.
Definition: metapop.h:431
unsigned int size(age_t AGE)
Returns the size of the container of the appropriate age class(es) for both sexes.
Definition: metapop.h:497
Individual * get(sex_t SEX, age_idx AGE, unsigned int at)
Returns a pointer to the individual sitting at the index passed.
Definition: metapop.h:533
Interface for all trait types, declares all basic trait operations.
Definition: ttrait.h:45
virtual unsigned int get_allele(int loc, int all) const =0
Called to read the allele identity at a locus.
virtual int get_locus_number()=0
Returns the number of locus.
sex_t
Sex types, males are always 0 and females 1!!
Definition: types.h:35
age_idx
Array index of the age classes in the patch sizes and containers arrays.
Definition: types.h:40
@ OFFSx
Definition: types.h:41
@ ADLTx
Definition: types.h:41

References _format, FileHandler::_pop, _traits, _trim_maf, ADLTx, fatal(), Patch::get(), TTrait::get_allele(), TraitPrototype::get_index(), TraitPrototype::get_locus_number(), SimRunner::get_pop(), Metapop::getPatch(), Metapop::getPatchNbr(), Individual::getTrait(), IndFactory::getTraitPrototype(), SIMenv::MainSim, OFFSx, Metapop::size(), and Patch::size().

Referenced by FHwrite().

+ Here is the caller graph for this function:

◆ print_genotypes()

void GenotyperFH::print_genotypes ( ofstream &  FH,
map< unsigned int, vector< unsigned int > > &  table 
)
594 {
595 //cout<< ">>>>>> GenotyperFH::fill_genotypes\n";
596 
597  unsigned int num_patch = _pop->getPatchNbr();
598  TTrait* trait = 0;
599  Patch* patch;
600  Individual* ind;
601  age_idx age_classes[2] = {OFFSx, ADLTx};
602 
603  for(unsigned int i = 0; i < num_patch; ++ i) {
604 
605  patch = _pop->getPatch(i);
606 
607  for(unsigned int a = 0; a < 2; ++a) {
608 
609  for(unsigned int s = 0; s < 2; ++s) {
610 
611  for(unsigned int j = 0; j < patch->size(sex_t(s),age_idx(age_classes[a])); ++j){
612 
613  ind = patch->get(sex_t(s), age_idx(age_classes[a]), j);
614 
615  FH << patch->getID()+1 << " " << ind->getSex() << " " << ind->getAge() << " " << age_classes[a] << " " <<ind->getID();
616 
617  for(auto trait_index : _trait_index) {
618 
619  trait = ind->getTrait(trait_index);
620 
621  vector<unsigned int> & loc_list = table[trait_index];
622 
623  // write locus genotypes
624  for(unsigned int l = 0; l < loc_list.size(); ++l) {
625  FH << " " << trait->get_allele_value(loc_list[l], FEM);
626  FH << " " << trait->get_allele_value(loc_list[l], MAL);
627  } // end of loc loop
628  } // end for traits
629  FH << "\n";
630  } // end ind loop
631  } // end s loop
632  } // end a loop
633  } // end patch loop
634 
635 }
vector< unsigned int > _trait_index
Definition: servicenotifiers.h:112
This class contains traits along with other individual information (sex, pedigree,...
Definition: individual.h:48
unsigned long getID()
Definition: individual.h:121
unsigned short getAge()
Definition: individual.h:122
sex_t getSex()
Definition: individual.h:128
unsigned int getID()
Definition: metapop.h:480
virtual double get_allele_value(int loc, int all) const =0
Called to read the value of the allele at a particular locus.
@ FEM
Definition: types.h:36
@ MAL
Definition: types.h:36

References FileHandler::_pop, _trait_index, ADLTx, FEM, Patch::get(), TTrait::get_allele_value(), Individual::getAge(), Individual::getID(), Patch::getID(), Metapop::getPatch(), Metapop::getPatchNbr(), Individual::getSex(), Individual::getTrait(), MAL, OFFSx, and Patch::size().

Referenced by FHwrite().

+ Here is the caller graph for this function:

◆ print_map_positions()

void GenotyperFH::print_map_positions ( ofstream &  FH,
vector< unsigned int > &  positions,
vector< string > &  col_names 
)

◆ print_snp_genotypes()

void GenotyperFH::print_snp_genotypes ( ofstream &  FH,
map< unsigned int, vector< unsigned int > > &  table 
)
640 {
641 // cout<< ">>>>>> GenotyperFH::fill_snp_genotypes\n";
642  unsigned int num_patch = _pop->getPatchNbr();
643  TTrait* trait = 0;
644  Patch* patch;
645  Individual* ind;
646  age_idx age_classes[2] = {OFFSx, ADLTx};
647 
648  for(unsigned int i = 0; i < num_patch; ++ i) {
649 
650  patch = _pop->getPatch(i);
651 
652  for(unsigned int a = 0; a < 2; ++a) {
653 
654  for(unsigned int s = 0; s < 2; ++s) {
655 
656  for(unsigned int j = 0; j < patch->size(sex_t(s),age_idx(age_classes[a])); ++j){
657 
658  ind = patch->get(sex_t(s), age_idx(age_classes[a]), j);
659 
660  FH << patch->getID()+1 << " " << ind->getSex() << " " << ind->getAge() << " " << age_classes[a] << " " <<ind->getID();
661 
662  for(auto trait_index : _trait_index) {
663 
664  trait = ind->getTrait(trait_index);
665 
666  vector<unsigned int> & loc_list = table[trait_index];
667 
668  // write locus snp genotype 0/1/2
669  for(unsigned int l = 0, a, b; l < loc_list.size(); ++l) {
670  a = trait->get_allele(loc_list[l], FEM);
671  b = trait->get_allele(loc_list[l], MAL);
672  FH << " " << a + b;
673  } // end of loc loop
674  } // end for traits
675  FH << "\n";
676  } // end ind loop
677  } // end s loop
678  } // end a loop
679  } // end patch loop
680 
681 }

References FileHandler::_pop, _trait_index, ADLTx, FEM, Patch::get(), TTrait::get_allele(), Individual::getAge(), Individual::getID(), Patch::getID(), Metapop::getPatch(), Metapop::getPatchNbr(), Individual::getSex(), Individual::getTrait(), MAL, OFFSx, and Patch::size().

Referenced by FHwrite().

+ Here is the caller graph for this function:

◆ print_snp_id()

void GenotyperFH::print_snp_id ( ofstream &  FH,
map< unsigned int, vector< unsigned int > > &  table 
)
686 {
687 // cout<< ">>>>>> GenotyperFH::fill_snp_id\n";
688  unsigned int num_patch = _pop->getPatchNbr();
689  TTrait* trait = 0;
690  Patch* patch;
691  Individual* ind;
692  age_idx age_classes[2] = {OFFSx, ADLTx};
693 
694  for(unsigned int i = 0; i < num_patch; ++ i) {
695 
696  patch = _pop->getPatch(i);
697 
698  for(unsigned int a = 0; a < 2; ++a) {
699 
700  for(unsigned int s = 0; s < 2; ++s) {
701 
702  for(unsigned int j = 0; j < patch->size(sex_t(s),age_idx(age_classes[a])); ++j){
703 
704  ind = patch->get(sex_t(s), age_idx(age_classes[a]), j);
705 
706  FH << patch->getID()+1 << " " << ind->getSex() << " " << ind->getAge() << " " << age_classes[a] << " " <<ind->getID();
707 
708  for(auto trait_index : _trait_index) {
709 
710  trait = ind->getTrait(trait_index);
711 
712  vector<unsigned int> & loc_list = table[trait_index];
713 
714  // write locus genotypes
715  for(unsigned int l = 0; l < loc_list.size(); ++l) {
716  FH << " " << trait->get_allele(loc_list[l], FEM);
717  FH << " " << trait->get_allele(loc_list[l], MAL);
718  } // end of loc loop
719  } // end for traits
720  FH << "\n";
721  } // end ind loop
722  } // end s loop
723  } // end a loop
724  } // end patch loop
725 }

References FileHandler::_pop, _trait_index, ADLTx, FEM, Patch::get(), TTrait::get_allele(), Individual::getAge(), Individual::getID(), Patch::getID(), Metapop::getPatch(), Metapop::getPatchNbr(), Individual::getSex(), Individual::getTrait(), MAL, OFFSx, and Patch::size().

Referenced by FHwrite().

+ Here is the caller graph for this function:

◆ set_isDiallelic()

void GenotyperFH::set_isDiallelic ( bool  test)
inline
135 {_is_diallelic = test;}

References _is_diallelic.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

+ Here is the caller graph for this function:

◆ set_trimFixedLoci()

void GenotyperFH::set_trimFixedLoci ( bool  test,
double  maf 
)
inline
137 {_trim_loci = test; _trim_maf = maf;}

References _trim_loci, and _trim_maf.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

+ Here is the caller graph for this function:

◆ setFormat()

void GenotyperFH::setFormat ( string  format)
inline
131 {_format = format;}

References _format.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

+ Here is the caller graph for this function:

◆ setLogtime()

void GenotyperFH::setLogtime ( string  logtime)
inline
133 {_logtime = logtime;}
string _logtime
Definition: servicenotifiers.h:114

References _logtime.

◆ setTraitIndex()

void GenotyperFH::setTraitIndex ( vector< unsigned int > &  indices)
392 {
393  _trait_index.assign(traits.begin(), traits.end());
394 }

References _trait_index.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

+ Here is the caller graph for this function:

◆ setTraits()

void GenotyperFH::setTraits ( vector< trait_t > &  traits)
385 {
386  _traits.assign(traits.begin(), traits.end());
387 }

References _traits.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

+ Here is the caller graph for this function:

Member Data Documentation

◆ _format

string GenotyperFH::_format
private

◆ _is_diallelic

bool GenotyperFH::_is_diallelic
private

Referenced by set_isDiallelic().

◆ _logtime

string GenotyperFH::_logtime
private

Referenced by setLogtime().

◆ _trait_index

vector< unsigned int > GenotyperFH::_trait_index
private

◆ _traits

vector< trait_t > GenotyperFH::_traits
private

◆ _trim_loci

bool GenotyperFH::_trim_loci
private

Referenced by set_trimFixedLoci().

◆ _trim_maf

double GenotyperFH::_trim_maf
private

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

Generated for Nemo v2.4.0 by  doxygen 1.9.1 -- Nemo is hosted on  Download Nemo

Locations of visitors to this page
Catalogued on GSR