Giter Club home page Giter Club logo

eig's Introduction

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)
Price et al. 2006 Nat Genet (EIGENSTRAT stratification correction)
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
-- 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
-- Added updated ploteig script that disappeared from the repository

NEW features of EIGENSOFT version 6.1.2 include:
-- Updated license info to be GPL compliant required by linking the GSL

NEW features of EIGENSOFT version 6.1.1 include:
-- Minor bug fix to correctly merge version 6.0.2 and version 6.1 changes.
-- pcaselection operates on evec files. Added examples. 
-- Backported twtable.c/h from EIGENSOFT 7alpha

NEW features of EIGENSOFT version 6.1 include:
-- The range finding step of PCA fastmode only scales the multiplied matrix,
   as orthogonalization is unnecessary. This appears to improve accuracy. 

NEW features of EIGENSOFT version 6.0.2 include:
-- Fixed Makefile and documentation to build eigenstrat properly
-- Moved Tracy-Widom table into a header file for easier building

NEW features of EIGENSOFT version 6.0.1 include:
-- Minor bug fix which prevents smartpca from trying to print out eigenvalues
  if fastmode is set.

NEW features of EIGENSOFT version 6.0beta included:
-- New option fastmode which implements a very fast pca approximation.
   See POPGEN/README and Galinsky 2014 ASHG talk.
-- Changes to external packages required.  EIGENSOFT version 5.0.2 required
   lapack + blas.  On the other hand, EIGENSOFT version 6.0beta requires 
   GSL + lapack + OpenBLAS (but does not require the native version of blas).
   The Makefile has been changed accordingly.
-- EIGENSOFT version 6.0beta supports multi-threading.  See POPGEN/README.
-- Bug fix for ldregress option.

See CONVERTF/README for documentation of programs for converting file formats.
See POPGEN/README for documentation of population structure programs.
See EIGENSTRAT/README for documentation of EIGENSTRAT programs.

Questions?
See https://www.hsph.harvard.edu/alkes-price/eigensoft-frequently-asked-questions/
or email Samuela Pollack, [email protected]

Executables and source code:
----------------------------
All C executables are in the bin/ directory.

We have placed source code for all C executables in the src/ directory, 
for users who wish to modify and recompile our programs.  For example, to
recompile the eigenstrat program, type
"cd src"
"make eigensrc/eigenstrat"      
"mv eigensrc/eigenstrat ../bin"

Note that some of our software will only compile if your system has the
GSL + lapack + OpenBLAS packages installed.

If you have trouble compiling and running our code, try compiling and
running the pcatoy program in the src directory:
"cd src"
"make pcatoy"
"./pcatoy"
If you are unable to run the pcatoy program successfully, please contact
your system administrator for help, as this is a systems issue which is
beyond our scope.  Your system administrator will be able to troubleshoot
your systems issue using this trivial program.  [You can also try running
the pcatoy program in the bin directory, which we have already compiled.]

To remake the entire package:
"cd src"
"make clobber"
"make install"

To remake EIG6.x it is necessary to link to the OpenBLAS library. On orchestra, 
the path is /opt/openblas and should work automatically. On Broad institute machines,
the user should execute "use .openblas-0.2.8" and "use GCC-4.9" at the command 
prompt before attempting to remake. All other users should install OpenBLAS and 
set the variable OPENBLAS to the path at the make command line, 
e.g. "make install OPENBLAS=/usr/local/openblas"

The ploteig utility requires gnuplot to run.

----------------------------
Acknowledgements:
EIGENSOFT was written by Nick Patterson, Alkes Price, Samuela Pollack,
Kevin Galinsky, Chris Chang, and Sasha Gusev.

We thank John Novembre and Mike Boursnell for code improvements, Matt Hanna 
for the first implementation of multi-threading, and Angela Yu for a bugfix.

eig's People

Contributors

kgalinsky avatar

Watchers

Indraniel avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.