1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
|
#ifndef _MCIO_
#define _MCIO_
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#include <math.h>
#include <vsubs.h>
#include <admutils.h>
#define MAXSTR 512
#define LONGSTR 10000
#define MAXFF 50
#define MAXCH 100
#define MTCHROM 90
#define XYCHROM 91
#define BADCHROM 99
#define GDISMUL 1000000
// multiplier for gdis to make integer for sort
enum outputmodetype
{
ANCESTRYMAP,
EIGENSTRAT,
PED,
PACKEDPED,
PACKEDANCESTRYMAP
};
typedef struct
{
char ID[IDSIZE];
double gpos;
double ppos;
int chrom;
char cchrom[6];
int nn[4];
int ignore;
int isrfake;
char alleles[2];
int inputrow;
int cuptnum;
int chimpfudge;
} SNPDATA;
int numfakes (SNPDATA ** snpraw, int *snpindx, int nreal, double spacing);
double nextmesh (double val, double spacing);
double interp (double l, double r, double x, double al, double ar);
int
loadsnps (SNP ** snpm, SNPDATA ** snpraw,
int *snpindx, int nreal, double spacing, int *numignore);
int readsnpdata (SNPDATA ** snpraw, char *fname);
int readinddata (Indiv ** indivmarkers, char *fname);
int readindpeddata (Indiv ** indivmarkers, char *fname);
void pedname (char *name, char *sx0, char *sx1);
int readtldata (Indiv ** indivmarkers, int numind, char *fname);
int readindval (Indiv ** indivmarkers, int numind, char *fname);
int readfreqdata (SNP ** snpm, int numsnps, char *fname);
void clearsnp (SNP * cupt);
int rmindivs (SNP ** snpm, int numsnps, Indiv ** indivmarkers, int numindivs);
int rmsnps (SNP ** snpm, int numsnps, char *deletesnpoutname);
void clearind (Indiv ** indm, int numind);
void cleartg (Indiv ** indm, int nind);
double mknn (int *nn, int n0, int n1);
void clearsnpord ();
int getsnps (char *snpfname, SNP *** snpmarkpt, double spacing,
char *badsnpname, int *nignore, int numrisks);
int getsizex (char *fname);
int getindivs (char *indivfname, Indiv *** indmarkpt);
int setstatus (Indiv ** indm, int numindivs, char *smatch);
int setstatusv (Indiv ** indm, int numindivs, char *smatch, int val);
long getgenos (char *genoname, SNP ** snpmarkers, Indiv ** indivmarkers,
int numsnps, int numindivs, int nignore);
void getgenos_list (char *genotypelist, SNP ** snpmarkers,
Indiv ** indivmarkers, int numsnps, int numindivs,
int nignore);
void printsnps (char *snpoutfilename, SNP ** snpm, int num, Indiv ** indm,
int printfake, int printvalids);
int checkxval (SNP * cupt, Indiv * indx, int val);
void printdata (char *genooutfilename, char *indoutfilename,
SNP ** snpm, Indiv ** indiv, int numsnps, int numind,
int packmode);
int readgdata (Indiv ** indivmarkers, int numind, char *gname);
int numvalidind (Indiv ** indivmarkers, int numind);
int numvalidgtind (SNP ** snpm, int numsnps, int ind);
int numvalidgt (Indiv ** indivmarkers, SNP * cupt);
int numvalidgtx (Indiv ** indivmarkers, SNP * cupt, int affst);
int getweights (char *fname, SNP ** snpm, int numsnps);
void outpack (char *genooutfilename, SNP ** snpm, Indiv ** indiv, int numsnps,
int numind);
int ispack (char *gname);
int iseigenstrat (char *gname);
void inpack (char *genooutfilename, SNP ** snpm, Indiv ** indiv, int numsnps,
int numind);
int inpack2 (char *genooutfilename, SNP ** snpm, Indiv ** indiv, int numsnps,
int numind);
int ineigenstrat (char *genooutfilename, SNP ** snpm, Indiv ** indiv,
int numsnps, int numind);
void setepath (SNP ** snpm, int n);
void clearepath (char *xpack);
long bigread (int fdes, char *packg, long numbytes);
// pedfile support
int getpedgenos (char *genoname, SNP ** snpmarkers, Indiv ** indivmarkers,
int numsnps, int numindivs, int nignore);
void genopedcnt (char *genoname, int **gcounts, int nsnp);
int pedval (char *sx);
int xpedval (char c);
int ptoachrom (char *ss);
void setgref (int **gcounts, int nsnp, int *gvar, int *gref);
void cleargdata (SNP ** snpmarkers, int numsnps, int numindivs);
void setgenotypename (char **gname, char *iname);
void settersemode (int mode);
void dobadsnps (SNPDATA ** snpraw, int nreal, char *badsnpname);
int snprawindex (SNPDATA ** snpraw, int nreal, char *sname);
int readsnpmapdata (SNPDATA ** snpraw, char *fname);
int checkfake (char *ss);
void setbadpedignore ();
int setsdpos (SNPDATA * sdpt, int pos);
void
outeigenstrat (char *snpname, char *indname, char *gname,
SNP ** snpm, Indiv ** indiv, int numsnps, int numind);
void
outped (char *snpname, char *indname, char *gname,
SNP ** snpm, Indiv ** indiv, int numsnps, int numind, int ogmode);
void
outpackped (char *snpname, char *indname, char *gname, SNP ** snpm,
Indiv ** indiv, int numsnps, int numind, int ogmode);
void setbedbuff (char *buff, int *gtypes, int numind);
int bedval (int g);
int str2chrom (char *ss);
void outindped (char *indname, Indiv ** indiv, int numind, int ogmode);
void printmap (char *snpname, SNP ** snpm, int numsnps, Indiv ** indiv);
int maxlinelength (char *fname);
int checksize (int numindivs, int numsnps, enum outputmodetype outputmode);
void setomode (enum outputmodetype *outmode, char *omode);
void
outfiles (char *snpname, char *indname, char *gname, SNP ** snpm,
Indiv ** indiv, int numsnps, int numind, int packem, int ogmode);
void snpdecimate (SNP ** snpm, int nsnp, int decim, int mindis, int maxdis);
void decimate (SNP ** cbuff, int n, int decim, int mindis, int maxdis);
int vvadjust (double *cc, int n, double *pmean);
int killhir2 (SNP ** snpm, int numsnps, int numind, double physlim,
double genlim, double rhothresh);
void freecupt (SNP ** cupt);
void freeped ();
void cntpops (int *count, Indiv ** indm, int numindivs, char **eglist,
int numeg);
void printalleles (SNP * cupt, FILE * fff);
char *getpackgenos ();
void clearpackgenos ();
void setchr (int mode);
void setchimpmode (int mode);
int genoopenit (genofile ** gfile, char *geno2name, SNP ** snp2m,
Indiv ** indiv2m, int numsnp2, int numindiv2, int nignore);
int genoreadit (genofile * gfile, SNP ** pcupt);
void genocloseit (genofile * gfile);
void putped (int num);
void getped (int num);
void logdeletedsnp (char *snpname, char *cmnt, char *deletesnpoutname);
void sortsnps (SNP ** snpa, SNP ** snpb, int n);
void setpordercheck (int mode);
void putsnpordered (int mode);
int getsnpordered ();
#endif
|