Nemo  2.4.0b
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
121 : EventFileHandler(event, "") , _is_diallelic(0), _trim_loci(0), _trim_maf(0) {}
EventFileHandler(LCE_FileServicesNotifier *event, const char *ext)
Definition: filehandler.h:272
bool _is_diallelic
Definition: servicenotifiers.h:116
double _trim_maf
Definition: servicenotifiers.h:118
bool _trim_loci
Definition: servicenotifiers.h:117

◆ ~GenotyperFH()

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

Member Function Documentation

◆ collate_trait_map_positions()

void GenotyperFH::collate_trait_map_positions ( vector< unsigned int > &  positions,
map< unsigned int, vector< unsigned int > > &  table 
)
482 {
483  TraitPrototype* tproto;
484  unsigned int index;
485 
486  for(auto trait : _traits) {
487 
488  tproto = SIMenv::MainSim->get_pop()->getTraitPrototype(trait);
489 
490  if(!tproto) fatal("Genotyper::could not access trait prototype in (sampled) pop for trait \"%s\"\n", trait.c_str() );
491 
492  index = tproto->get_index();
493  vector<unsigned int> & locus = table[index];
494 
495  vector< unsigned int > trait_positions = tproto->get_locus_map_positions();
496 
497  for(unsigned int i = 0; i < locus.size(); ++i)
498  positions.push_back(trait_positions[ locus[i] ]);
499  }
500 }
vector< trait_t > _traits
Definition: servicenotifiers.h:112
TraitPrototype * getTraitPrototype(trait_t type)
Accessor to a TraitPrototype.
Definition: indfactory.cc:140
static SimRunner * MainSim
Definition: simenv.h:42
Metapop * get_pop()
Accessor to the pop ptr.
Definition: simulation.h:172
TTrait setter.
Definition: ttrait.h:131
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:152
void fatal(const char *str,...)
Definition: output.cc:100

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

Referenced by FHwrite().

◆ FHread()

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

Implements FileHandler.

126 {}

◆ FHwrite()

void GenotyperFH::FHwrite ( )
virtual

Implements EventFileHandler< LCE_FileServicesNotifier >.

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

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

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().

◆ print_genotypes()

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

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().

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

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().

◆ print_snp_id()

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

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().

◆ set_isDiallelic()

void GenotyperFH::set_isDiallelic ( bool  test)
inline

◆ set_trimFixedLoci()

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

References _trim_loci, and _trim_maf.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

◆ setFormat()

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

References _format.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

◆ setLogtime()

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

References _logtime.

◆ setTraitIndex()

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

References _trait_index.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

◆ setTraits()

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

References _traits.

Referenced by LCE_FileServicesNotifier::setGenotyperParameters().

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.0b by  doxygen 1.9.1 -- Nemo is hosted on  Download Nemo

Locations of visitors to this page
Catalogued on GSR