Skip to content

Commit

Permalink
merged nick's changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Galinsky committed Sep 7, 2016
1 parent e32d622 commit f3559c3
Show file tree
Hide file tree
Showing 7 changed files with 2,144 additions and 1,946 deletions.
9 changes: 6 additions & 3 deletions README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
EIGENSOFT version 6.1.4, 9/2/16 (for Linux only)
EIGENSOFT version 6.1.4, 9/7/16 (for Linux only)

The EIGENSOFT package implements methods from the following 3 papers:
Patterson et al. 2006 PLoS Genet (population structure)
Expand All @@ -7,8 +7,11 @@ Galinsky et al. 2016 Am J Hum Genet (FastPCA and PC-based selection statistic)

NEW features of EIGENSOFT version 6.1.4 include:
-- pcaselection was omitted from 6.1.3 by accident
-- statically linked GSL/openblas
-- fixed memory allocation bug in pcaselection
-- Statically linked GSL/openblas
-- Fixed memory allocation bug in pcaselection
-- Some routines moved into nicklib
-- Error message on allocate failure now prints length as "%ld"
supporting long values.

NEW features of EIGENSOFT version 6.1.3 include:
-- Restored script file extensions to .perl instead of .pl
Expand Down
22 changes: 9 additions & 13 deletions include/egsubs.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
#include "admutils.h"
#include "admutils.h"

int
makeeglist (char **eglist, int maxnumeg, Indiv **indivmarkers, int numindivs);
int
mkeglist (Indiv **indm, int numindivs, char **eglist);
void
seteglist (Indiv **indm, int nindiv, char *eglistname);
void
seteglistv (Indiv **indm, int nindiv, char *eglistname, int val);
int
loadlist (char **list, char *listname);
int
loadlist_type (char **list, char *listname, int *ztypes, int off);

int makeeglist (char **eglist, int maxnumeg, Indiv ** indivmarkers,
int numindivs);
int mkeglist (Indiv ** indm, int numindivs, char **eglist);
void seteglist (Indiv ** indm, int nindiv, char *eglistname);
void seteglistv (Indiv ** indm, int nindiv, char *eglistname, int val);
int loadlist (char **list, char *listname);
int loadlist_type (char **list, char *listname, int *ztypes, int off);
213 changes: 79 additions & 134 deletions include/strsubs.h
Original file line number Diff line number Diff line change
@@ -1,142 +1,87 @@
#include <stdlib.h>

int
splitup (char *strin, char *strpt[], int maxpt);
int
splitupx (char *strin, char **spt, int maxpt, char splitc);
int
splitupwxbuff (char *strin, char **spt, int maxpt, char *bigbuff,
int bigbufflen);
int
splitupxbuff (char *strin, char **spt, int maxpt, char splitc, char *bigbuff,
int bigbufflen);
int
oldsplitup (char *strin, char *strpt[], int maxpt);
void
freeup (char *strpt[], int numpt);
int
split1 (char *strin, char *strpt[], char splitc);
int
first_word (char *string, char *word, char *rest);
char *
fnwhite (char *ss);
char *
fwhite (char *ss);
char *
ftab (char *ss);
int
NPisnumber (char c);
int
isnumword (char *str);
void
fatalx (char *fmt, ...);
long
seednum ();
void
printbl (int n);
void
printnl ();
void
striptrail (char *sss, char c);
void
catx (char *sout, char **spt, int n);
void
catxx (char *sout, char **spt, int n);
void
catxc (char *sout, char **spt, int n, char c);
void
makedfn (char *dirname, char *fname, char *outname, int maxstr);
int
substring (char **ap, char *inx, char *outx);
int
numcols (char *name);
int
numlines (char *name);
void
openit (char *name, FILE **fff, char *type);
int
ftest (char *aname);
int
getxx (double **xx, int maxrow, int numcol, char *fname);
int
getss (char **ss, char *fname);
double
clocktime (); // cpu time in seconds
void
crevcomp (char *sout, char *sin);
int
indxstring (char **namelist, int len, char *strid);
int
indxstringr (char **namelist, int len, char *strid);
char *
strstrx (char *s1, char *s2); // case insensitive strstr
int
getxxnames (char ***pnames, double **xx, int maxrow, int numcol, char *fname);
int
getjjnames (char ***pnames, int **xx, int maxrow, int numcol, char *fname);
int
getxxnamesf (char ***pnames, double **xx, int maxrow, int numcol, FILE *fff);
int
getnameslohi (char ****pnames, int maxrow, int numcol, char *fname, int lo,
int hi);
int
getnames (char ****pnames, int maxrow, int numcol, char *fname);
char
num2iub (int num);
char
revchar (char c);
int
iub2num (char c);
char
num2base (int num);
int
base2num (char c);
char *
int_string (int a, int len, int base);
char *
binary_string (int a, int len);
int
string_binary (char *sx);
void
freestring (char **ss);
void
copystrings (char **sa, char **sb, int n);
void
printstringsw (char **ss, int n, int slen, int width);
void
printstrings (char **ss, int n);
int
ridfile (char *fname);
char
compbase (char x);
void
mkupper (char *sx);
void
mklower (char *sx);
int
iubdekode (char *a, char iub);
int
isiub (char iub);
int
isiub2 (char iub);
int
iubcbases (char *cbases, char iub);
int
ishet (char c);
int
char2int (char cc);
char
int2char (int x);
void
chomp (char *str);
int splitup (char *strin, char *strpt[],int maxpt) ;
int splitupx(char *strin, char **spt, int maxpt, char splitc) ;
int splitupwxbuff(char *strin, char **spt, int maxpt, char *bigbuff, int bigbufflen) ;
int splitupxbuff(char *strin, char **spt, int maxpt, char splitc, char *bigbuff, int bigbufflen) ;
int oldsplitup (char *strin, char *strpt[],int maxpt) ;
void freeup (char *strpt[],int numpt) ;
int split1 (char *strin, char *strpt[], char splitc);
int first_word(char *string, char *word, char *rest) ;
char *fnwhite (char *ss) ;
char *fwhite (char *ss) ;
char *ftab (char *ss) ;
int NPisnumber (char c) ;
int isnumword (char *str) ;
void fatalx( char *fmt, ...) ;
long seednum() ;
void printbl(int n) ;
void printnl() ;
void striptrail(char *sss, char c) ;
void catx(char *sout, char **spt, int n) ;
void catxx(char *sout, char **spt, int n) ;
void catxc(char *sout, char **spt, int n, char c) ;
void makedfn(char *dirname, char *fname, char *outname, int maxstr) ;
int substring (char **ap, char *inx, char *outx) ;
int numcols (char *name) ;
int numlines(char *name) ;
void openit(char *name, FILE **fff, char *type) ;
int ftest(char *aname) ;
int getxx(double **xx, int maxrow, int numcol, char *fname) ;
int getss(char **ss, char *fname) ;
int loadlist(char **list, char *listname) ; // with dup check
void printdups(char **list, int n) ;
int checkdup(char **list, int n) ;
double clocktime() ; // cpu time in seconds
void crevcomp(char *sout, char *sin) ;
int indxstring(char **namelist, int len, char *strid) ;
int indxstringr(char **namelist, int len, char *strid) ;
char *strstrx(char *s1, char *s2) ; // case insensitive strstr
int getxxnames(char ***pnames, double **xx, int maxrow, int numcol, char *fname);
int getjjnames(char ***pnames, int **xx, int maxrow, int numcol, char *fname);
int getxxnamesf(char ***pnames, double **xx, int maxrow, int numcol, FILE *fff) ;
int getnameslohi(char ****pnames, int maxrow, int numcol, char *fname, int lo, int hi) ;
int getnamesstripcolon(char ****pnames, int maxrow, int numcol, char *fname, int lo, int hi) ;
int getnames(char ****pnames, int maxrow, int numcol, char *fname) ;
char num2iub (int num) ;
char revchar(char c) ;
int iub2num(char c) ;
char num2base (int num) ;
int base2num(char c) ;
char *int_string(int a, int len, int base) ;
char *binary_string(int a, int len) ;
int string_binary(char *sx) ;
void freestring (char **ss) ;
void copystrings(char **sa, char **sb, int n) ;
void printstringsw(char **ss, int n, int slen, int width) ;
void printstrings(char **ss, int n) ;
int ridfile(char *fname) ;
char compbase(char x) ;
void mkupper(char *sx) ;
void mklower(char *sx) ;
int iubdekode(char *a, char iub) ;
int isiub(char iub) ;
int isiub2(char iub) ;
int iubcbases(char *cbases, char iub) ;
int ishet(char c) ;
int cttype(char cc) ;
int char2int(char cc) ;
char int2char(int x) ;
void chomp(char *str) ;

int numcmatch(char *cc, int len, char c) ;
int numcnomatch(char *cc, int len, char c) ;
char *strnotchar(char *s, char c) ;
char *findupper(char *s) ;
char *fgetstrap(char *buff, int maxlen, FILE *fff, int *ret) ;
char readtonl(FILE *fff) ;
int filehash(char *name) ;



int
numcmatch (char *cc, int len, char c);
int
numcnomatch (char *cc, int len, char c);

#define ZALLOC(item,n,type) if ((item = (type *)calloc((n),sizeof(type))) == NULL) \
fatalx("Unable to allocate %d unit(s) for item \n",n)
fatalx("Unable to allocate %ld unit(s) for item \n", (long) n)

#undef MAX
#undef MIN
Expand Down
Loading

0 comments on commit f3559c3

Please sign in to comment.