1 // $Id: gc_types.h,v 1.29 2011/12/30 22:50:10 jmcgill Exp $ 2 3 /* 4 Copyright 2002 Mary Kuhner, Jon Yamato, and Joseph Felsenstein 5 6 This software is distributed free of charge for non-commercial use 7 and is copyrighted. Of course, we do not guarantee that the software 8 works, and are not responsible for any damage you may cause or have. 9 */ 10 11 #ifndef GC_TYPES_H 12 #define GC_TYPES_H 13 14 #include <map> 15 #include <list> 16 #include <set> 17 #include <string> 18 #include "Converter_types.h" 19 20 enum GCFileFormat 21 { 22 // should include each type of file converter can read 23 format_NONE_SET, 24 format_PHYLIP, 25 format_MIGRATE 26 }; 27 28 enum gcSpecificDataType 29 { 30 // data types as used in lamarc 31 sdatatype_NONE_SET, 32 sdatatype_DNA, 33 sdatatype_SNP, 34 sdatatype_KALLELE, 35 sdatatype_MICROSAT 36 }; 37 38 class gcGeneralDataType : public std::set<gcSpecificDataType> 39 { 40 public: 41 gcGeneralDataType(); 42 virtual ~gcGeneralDataType(); 43 bool HasAllelic() const; 44 bool HasNucleic() const; 45 bool CompatibleWith(const gcGeneralDataType&) const; 46 void Disallow(const gcSpecificDataType); 47 void Intersect(const gcGeneralDataType&); 48 void Union(const gcGeneralDataType&); 49 void Union(const gcSpecificDataType); 50 gcGeneralDataType & operator=(const gcSpecificDataType); 51 }; 52 53 enum GCInterleaving 54 { 55 // are data sequences presented all at once or for interleaved comparison 56 interleaving_NONE_SET, 57 interleaving_SEQUENTIAL, 58 interleaving_INTERLEAVED, 59 interleaving_MOOT 60 }; 61 62 enum gcPhaseSource 63 { 64 phaseSource_NONE_SET, 65 phaseSource_PHASE_FILE, 66 phaseSource_MULTI_PHASE_SAMPLE, 67 phaseSource_FILE_ADJACENCY, 68 phaseSource_COUNT 69 }; 70 71 enum loc_match 72 { 73 locmatch_DEFAULT, 74 locmatch_SINGLE, 75 locmatch_LINKED, 76 locmatch_VECTOR 77 }; 78 79 enum pop_match 80 { 81 popmatch_DEFAULT, 82 popmatch_NAME, 83 popmatch_SINGLE, 84 popmatch_VECTOR 85 }; 86 87 enum matrix_type 88 { 89 matrixtype_MIGRATION, 90 matrixtype_DIVERGENCE 91 }; 92 93 enum matrix_cell_type 94 { 95 matrixcelltype_EMPTY, 96 matrixcelltype_INVALID, 97 matrixcelltype_CORNER, 98 matrixcelltype_LABEL, 99 matrixcelltype_VALUE 100 }; 101 102 enum matrix_cell_source 103 { 104 matrixcellsource_NONE, 105 matrixcellsource_POP, 106 matrixcellsource_PARENT 107 }; 108 109 enum migration_method 110 { 111 migmethod_USER, 112 migmethod_FST 113 }; 114 115 enum migration_profile 116 { 117 migprofile_NONE, 118 migprofile_FIXED, 119 migprofile_PERCENTILE 120 }; 121 122 enum migration_constraint 123 { 124 migconstraint_INVALID, 125 migconstraint_CONSTANT, 126 migconstraint_SYMMETRIC, 127 migconstraint_UNCONSTRAINED 128 }; 129 130 #endif // GC_TYPES_H 131 132 //____________________________________________________________________________________ 133