Skip to content
Commits on Source (9)
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
See ../README for high-level documentation of the entire EIGENSOFT package.
This file contains documentation of EIGENSTRAT programs:
smartpca.pl: run PCA on input genotype data (calls smartpca)
smarteigenstrat.pl: run EIGENSTRAT stratification correction. This program
smartpca.perl: run PCA on input genotype data (calls smartpca)
smarteigenstrat.perl: run EIGENSTRAT stratification correction. This program
supports all 5 file formats, and supports quantitative phenotypes.
gc.pl: apply Genomic Control (Devlin and Roeder, 1999) to the
gc.perl: apply Genomic Control (Devlin and Roeder, 1999) to the
association statistics computed by EIGENSTRAT.
We note that the programs eigenstrat and eigenstratQTL of EIGENSOFT version 2.0
have been replaced by smarteigenstrat.pl. However, we have retained the old
have been replaced by smarteigenstrat.perl. However, we have retained the old
programs for backwards compatibility (see below).
See ./example.perl and ./exampleQTL.perl for toy examples using our programs.
......@@ -23,13 +23,13 @@ http://www.hsph.harvard.edu/faculty/alkes-price/files/eigensoftfaq.htm
------------------------------------------------------------------------
DOCUMENTATION of smartpca.pl program:
DOCUMENTATION of smartpca.perl program:
This program calls the smartpca program (see ../POPGEN/README).
For this to work, the bin directory containing smartpca MUST be in your path.
See ./example.perl for a toy example.
../bin/smartpca.pl
../bin/smartpca.perl
-i example.geno : genotype file in any format (see ../CONVERTF/README)
-a example.snp : snp file in any format (see ../CONVERTF/README)
-b example.ind : indiv file in any format (see ../CONVERTF/README)
......@@ -77,15 +77,15 @@ large correlations with phenotype indicate highly mismatched cases vs. controls
------------------------------------------------------------------------
DOCUMENTATION of smarteigenstrat.pl program: [run smartpca.pl program first]
DOCUMENTATION of smarteigenstrat.perl program: [run smartpca.perl program first]
This program is a PERL wrapper which calls the C program smarteigenstrat.
Note: the bin directory containing smarteigenstrat MUST be in your path.
See ./example.perl for a toy example.
We recommend smarteigenstrat.pl for users who prefer command-line flags.
We recommend smarteigenstrat.perl for users who prefer command-line flags.
However, users who prefer parameter files can run smarteigenstrat instead.
../bin/smarteigenstrat.pl
../bin/smarteigenstrat.perl
-i example.geno : genotype file in any format (see ../CONVERTF/README)
-a example.snp : snp file in any format (see ../CONVERTF/README)
-b example.ind : individual file in any format (see ../CONVERTF/README).
......@@ -97,7 +97,7 @@ However, users who prefer parameter files can run smarteigenstrat instead.
should be real numbers. The value -100.0 signifies "missing data".
If -q is set to NO, these values should be "Case" or "Control".
The default value for the -q parameter is NO.
-p example.pca : input file of principal components (output of smartpca.pl)
-p example.pca : input file of principal components (output of smartpca.perl)
-k 1 : (Default is 10) number of principal components along which to
correct for stratification. Note that l must be less than or equal to
the number of principal components reported in the file example.pca.
......@@ -116,15 +116,15 @@ However, users who prefer parameter files can run smarteigenstrat instead.
consider to be appropriate.
-l example.log : standard output file
The running time of smarteigenstrat.pl is very fast compared to
the running time of smartpca.pl.
The running time of smarteigenstrat.perl is very fast compared to
the running time of smartpca.perl.
------------------------------------------------------------------------
DOCUMENTATION of smarteigenstrat program:
Users who prefer parameter files to command-line flags can run the
C program smarteigenstrat instead of the PERL wrapper smarteigenstrat.pl.
C program smarteigenstrat instead of the PERL wrapper smarteigenstrat.perl.
The syntax of smarteigenstrat is "../bin/smarteigenstrat -p parfile"
DESCRIPTION OF EACH PARAMETER in parameter file for smarteigenstrat:
......@@ -137,7 +137,7 @@ outputname: name of output file of chisq association statistics
numeigs: number of principal components to correct for
qtmode: YES for quantitative phenotype, NO (default) otherwise
For details, see documentation of smarteigenstrat.pl above.
For details, see documentation of smarteigenstrat.perl above.
OPTIONAL PARAMETERS:
......@@ -148,9 +148,9 @@ hashcheck: If set to YES and the input genotype file is in PACKEDANCESTRYMAP
------------------------------------------------------------------------
DOCUMENTATION of gc.pl: [run smartpca.pl & smarteigenstrat.pl first]
DOCUMENTATION of gc.perl: [run smartpca.perl & smarteigenstrat.perl first]
../bin/gc.pl infile outfile
../bin/gc.perl infile outfile
infile is input file of chisq statistics produced by eigenstrat program.
It contains both uncorrected and EIGENSTRAT statistics for each SNP.
outfile is output file. It lists
......@@ -160,7 +160,7 @@ Computation of lambda is as described in Devlin and Roeder 1999.
A lambda above 1 indicates inflation in chisq statistics.
By definition, lambda is not allowed to be less than 1.
Running time of the gc.pl program is very fast.
Running time of the gc.perl program is very fast.
------------------------------------------------------------------------
......@@ -179,7 +179,7 @@ our old program eigenstratQTL (for quantitative phenotypes) from that release,
which have now been replaced by our new program smarteigenstratQTL.perl.
See ./example.oldstyle.perl for an example involving the eigenstrat program.
Most users will want to use our new program smarteigenstrat.pl, which has
Most users will want to use our new program smarteigenstrat.perl, which has
added functionality. However, users wishing to understand or modify our
source code may find it advantageous to instead work with the simpler
eigenstrat programs.
......@@ -190,10 +190,10 @@ BACKWARDS COMPATIBILITY with 07/23/06 EIGENSTRAT release: pca program
For backwards compatibility with the 07/23/06 EIGENSTRAT release, we have also
included our old program pca used in that release, which has now been replaced
by our new program smartpca.pl. See ./example.oldstyle.perl for an example
by our new program smartpca.perl. See ./example.oldstyle.perl for an example
involving the pca program.
Most users will want to use our new program smartpca.pl, which calls
Most users will want to use our new program smartpca.perl, which calls
the smartpca program and has added functionality. However, users wishing
to understand or modify our source code may find it advantageous to instead
work with the simpler pca program.
......@@ -232,7 +232,7 @@ Thus, if running on much smaller data sets, it is necessary to exclude a
candidate marker from the set of markers used to infer principal components
used to correct for stratification at the candidate marker. In the case of
a data set which uses ancestry-informative markers to infer ancestry, a
good way to do this is to run smartpca.pl to infer principal components
good way to do this is to run smartpca.perl to infer principal components
*only* using ancestry-informative markers, excluding the candidate markers
(and excluding any ancestry-informative marker in LD with a candidate marker),
and then run eigenstrat on candidate markers.
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
Chisq PCASELECTION
rs0000 0.65619 0.935652
rs1111 1.05351 4.2363
rs2222 0.698978 1.73221
rs3333 2.39363 0.295432
rs4444 1.6562 0.52183
rs5555 0.770901 0.140059
rs6666 1.57489 0.942783
genotypename: example.geno
snpname: example.snp
indivname: example.ind
pcaname: example.pca.evec
outputname: example.pcaselection.chisq
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -9,7 +9,7 @@ This file contains documentation of population structure programs:
smartpca: run Principal Components Analysis on input genotype data.
ploteig: construct plot of top 2 principal components
twstats: compute number of statistically significant principal components.
evec2pca.pl: convert eigenvector file to format needed for EIGENSTRAT
evec2pca.perl: convert eigenvector file to format needed for EIGENSTRAT
smartrel: identify related samples, accounting for population structure
------------------------------------------------------------------------
......@@ -149,6 +149,19 @@ qtmode: If set to YES, assume that there is a single population and that the
The default value for this parameter is NO.
fstonly: If set to YES, then skip PCA and just calculate FST values.
The default value for this parameter is NO.
fstdetailsname: mybig.out
Outputs details for fst including estimates for each SNP
*** fst options:
inbreed: YES (default NO)
Set if pseudo-diploids present (most aDNA data, or there is inbreeding such as first cousin marriages,
in the data. Requires at leasr 2 samples/population.
The mathematics are described in Reich et al: Reconstructing Indian population history (Nature, 2009). Section 1.1 of Appendix
fsthiprecision: YES (default NO)
Prints 6 decimal places of fst estimates
fstz: YES (default NO) *** NEW ***
Lower triangle of fst output are Z-scores (against NULL fst=0)
killr2: If set to YES, then eliminate SNPs in LD with nearby SNPs.
The default value for this parameter is NO.
r2thresh: If killr2 is set to YES, then pairs of SNPs that have r-squared
......@@ -209,7 +222,6 @@ projection step. This is approriate if PCs are calculated using samples with li
but it is desired to project samples with much missing data onto the top PCs.
See ./lsqproject.pdf for a more detailed description.
(NEW)
fastmode: YES
Fast pca approximation is used. See Galinsky 2014 ASHG talk. In fastmode,
there is no outlier removal, no Tracy-Widom significance testing,
......@@ -223,12 +235,33 @@ In fastmode most options are not supported.
No fst calculations. Consider rerunning with fstonly: YES if this is wanted.
No lsqproject: YES
(NEW) Multithreading (Code added by Chris Chang)
Multithreading (Code added by Chris Chang)
smartpca now supports multithreading but NOT with fastmode: YES
By default a (hopefully) system dependent number of threads is chosen.
This can be overwritten by (for example)
numthreads: 10
(NEW)
shrinkmode: YES (default NO)
A problem with smartpca is that samples used to calculate the PC axes
"stretch" the axes. So that 2 populations in fact genetically identical
(2 independent samples from the same underlying population) will appear different
if one is used to compute axes, and one not. shrinkmode: YES is an attempt
to solve this problem. Details to appear later, but this has been used successfully
in the Reich lab.
*** warning *** shrinkmode is slow and will greatly increase the runtime.
Alternate shrink option.
We implemented a new method (Liu, Dobriban, Singer: https://arxiv.org/pdf/1611.05550.pdf) ) of eigenvalue shrinkage
autoshrink: YES (default NO)
This costs little in CPU, but the results seem slightly worse than shrinkmode: YES.
*** Caveat. This is my implementation of Liu et al. Errors are mine not theirs NJP ***
Sample runs and output of shrinkage can be found on
[https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/shrinkdemo.tar.gz]
------------------------------------------------------------------------
DOCUMENTATION OF ploteig program:
......@@ -290,17 +323,17 @@ Example: see ./twexample.perl
-----------------------------------------------------------------------
DOCUMENTATION OF evec2pca.pl program:
DOCUMENTATION OF evec2pca.perl program:
The evec2pca.pl program is for users who want to run the EIGENSTRAT
The evec2pca.perl program is for users who want to run the EIGENSTRAT
stratification correction method on on output produced by the smartpca program.
It converts the .evec file produced by smartpca to the .pca file needed by
EIGENSTRAT. However, if using the smartpca.pl wrapper, evec2pca.pl is
called automatically so there is no need to separately run evec2pca.pl.
See ../EIGENSTRAT/README for details on the smartpca.pl wrapper.
EIGENSTRAT. However, if using the smartpca.perl wrapper, evec2pca.perl is
called automatically so there is no need to separately run evec2pca.perl.
See ../EIGENSTRAT/README for details on the smartpca.perl wrapper.
The syntax of evec2pca.pl is
../bin/evec2pca.pl k example.evec example.ind example.pca, where
The syntax of evec2pca.perl is
../bin/evec2pca.perl k example.evec example.ind example.pca, where
k is the number of principal components in example.evec file (e.g. 10)
example.evec is file of principal components produced by smartpca
example.ind is individual file
......@@ -341,7 +374,7 @@ relthresh: threshhold for correlation coefficients. Only coefficients
------------------------------------------------------------------------------
Questions?
See https://www.hsph.harvard.edu/alkes-price/eigensoft-frequently-asked-questions/
See http://www.hsph.harvard.edu/faculty/alkes-price/files/eigensoftfaq.htm
or email Samuela Pollack, spollack@hsph.harvard.edu
SOFTWARE COPYRIGHT NOTICE AGREEMENT
......
File mode changed from 100644 to 100755
......@@ -58,4 +58,4 @@ Statistical significance of differences between populations:
-----------------------------------------------------------------------
Questions? nickp@broad.mit.edu
Questions? nickp@broadinstitute.org
File mode changed from 100644 to 100755
EIGENSOFT version 6.1.4, 9/7/16 (for Linux only)
## shrinkmode added. 3/15
EIGENSOFT version 7.2.1, 06/30/17 (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)
The EIGENSOFT package implements methods from the following 2 papers:
Patterson et al. 2006 PLoS Genet 2:e190 (population structure)
Price et al. 2006 Nat Genet 38:904-9 (EIGENSTRAT stratification correction)
NEW features of EIGENSOFT version 7.2.0
-- shrinkmode
NEW features of EIGENSOFT version 6.1.4 include:
-- pcaselection was omitted from 6.1.3 by accident
......@@ -37,7 +40,7 @@ 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 features of EIGENSOFT version 6.0.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
......@@ -53,7 +56,16 @@ 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, spollack@hsph.harvard.edu
https://github.com/DReichLab/EIG
For questions about building this software:
Matthew Mah <matthew_mah@hms.harvard.edu>
For questions about smartpca:
Nick Patterson <nickp@broadinstitute.org>
For questions about eigenstrat:
Alkes Price <aprice@hsph.harvard.edu>
Executables and source code:
----------------------------
......@@ -63,12 +75,28 @@ 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"
"make eigenstrat"
"mv eigenstrat ../bin"
Note that some of our software will only compile if your system has the
GSL + lapack + OpenBLAS packages installed.
On Mac OSX, you can install gsl and OpenBLAS with lapack using homebrew:
"brew install gsl"
"brew install homebrew/science/openblas"
If these packages are not in standard directories, you can specify the
appropriate include and library directories with the CFLAGS and LDFLAGS
make variables.
For example, on the Harvard Medical School O2 cluster, the command is:
'make CFLAGS="-I/n/app/openblas/0.2.19/include -I/n/app/gsl/2.3/include" LDFLAGS="-L/n/app/openblas/0.2.19/lib -L/n/app/gsl/2.3/lib/"'
On Mac OSX:
'make CFLAGS="-I/usr/local/opt/openblas/include -I/usr/local/opt/gsl/include" LDFLAGS="-L/usr/local/opt/openblas/lib -L/usr/local/opt/gsl/lib"'
If you have issues with missing lapacke symbols, for example "undefined reference to `LAPACKE_dlange'", run make with the corresponding additional libraries linked:
'make LDLIBS="-llapacke"'
This has been encountered on Linux Mint 18.
If you have trouble compiling and running our code, try compiling and
running the pcatoy program in the src directory:
"cd src"
......@@ -85,15 +113,13 @@ To remake the entire package:
"make clobber"
"make install"
To remake EIG6.x it is necessary to link to the OpenBLAS library. On orchestra,
To remake EIG7.2 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,
......@@ -101,3 +127,13 @@ 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.
----------------------------
SOFTWARE COPYRIGHT NOTICE AGREEMENT
This software and its documentation are copyright (2010) by Harvard University
and The Broad Institute. All rights are reserved. This software is supplied
without any warranty or guaranteed support whatsoever. Neither Harvard
University nor The Broad Institute can be responsible for its use, misuse, or
functionality. The software may be freely copied for non-commercial purposes,
provided this copyright notice is retained.
baseprog
convertf
eigenstrat
eigenstratQTL
mergeit
pca
pcatoy
smarteigenstrat
smartpca
smartrel
smshrink
twstats
#!/usr/local/bin/perl -w
### ploteig -i eigfile -p pops -c a:b [-t title] [-s stem] [-o outfile] [-x] [-k] [-y] [-z sep] -r colorstring -m xmul -n ymul
use Getopt::Std ;
use File::Basename ;
## pops : separated -x = make postscript and pdf -z use another separator
## -k keep intermediate files
## NEW if pops is a file names are read one per line
## scaling on x, y axes
getopts('i:o:p:c:s:d:z:t:r:m:n:xkyq',\%opts) ;
$postscmode = $opts{"x"} ;
$oldkeystyle = $opts{"y"} ;
$nopoptitle = $opts{"q"} ;
$kflag = $opts{"k"} ;
$keepflag = 1 if ($kflag) ;
$keepflag = 1 unless ($postscmode) ;
$zsep = ":" ;
if (defined $opts{"z"}) {
$zsep = $opts{"z"} ;
$zsep = "\+" if ($zsep eq "+") ;
}
if (defined $opts{"r"}) {
$colorstr = $opts{"r"} ;
setcolor($colorstr) ;
}
$xmul = $opts{"m"} ;
$xmul = 1 unless (defined $xmul) ;
$ymul = $opts{"n"} ;
$ymul = 1 unless (defined $ymul) ;
$title = "" ;
if (defined $opts{"t"}) {
$title = $opts{"t"} ;
}
if (defined $opts{"i"}) {
$infile = $opts{"i"} ;
}
else {
usage() ;
exit 0 ;
}
open (FF, $infile) || die "can't open $infile\n" ;
@L = (<FF>) ;
chomp @L ;
$nf = 0 ;
foreach $line (@L) {
next if ($line =~ /\#/) ;
@Z = split " ", $line ;
$x = @Z ;
$nf = $x if ($nf < $x) ;
}
printf "## number of fields: %d\n", $nf ;
$popcol = $nf-1 ;
if (defined $opts{"p"}) {
$pops = $opts{"p"} ;
}
else {
die "p parameter compulsory\n" ;
}
$popsname = setpops ($pops) ;
print "$popsname\n" ;
$c1 = 1; $c2 =2 ;
if (defined $opts{"c"}) {
$cols = $opts{"c"} ;
($c1, $c2) = split ":", $cols ;
die "bad c param: $cols\n" unless (defined $cols) ;
}
$stem = "$infile.$c1:$c2" ;
if (defined $opts{"s"}) {
$stem = $opts{"s"} ;
}
$gnfile = "$stem.$popsname.xtxt" ;
if (defined $opts{"o"}) {
$gnfile = $opts{"o"} ;
}
@T = () ; ## trash
open (GG, ">$gnfile") || die "can't open $gnfile\n" ;
print GG "## " unless ($postscmode) ;
print GG "set terminal postscript color noenhanced\n" ;
print GG "set title \"$title\" \n" ;
print GG "set key outside\n" unless ($oldkeystyle) ;
print GG "set xlabel \"eigenvector $c1\" \n" if ($xmul == 1) ;
print GG "set xlabel \"eigenvector $c1 (* $xmul) \" \n" if ($xmul != 1) ;
print GG "set ylabel \"eigenvector $c2\" \n" if ($ymul == 1) ;
print GG "set ylabel \"eigenvector $c1 (* $ymul) \" \n" if ($ymul != 1) ;
print GG "plot " ;
$np = @P ;
$lastpop = $P[$np-1] ;
$d1 = $c1+1 ;
$d2 = $c2+1 ;
foreach $pop (@P) {
$dfile = "$stem:$pop" ;
push @T, $dfile ;
print GG " \"$dfile\" using (\$$d1)*$xmul:(\$$d2)*$ymul " ;
print GG "notitle " if (defined $nopoptitle) ;
print GG "title \"$pop\" " unless (defined $nopoptitle) ;
if (defined $COL{$pop}) {
$color = $COL{$pop} ;
print GG "lt rgb \"$color\" " ;
}
print GG ", \\\n" unless ($pop eq $lastpop) ;
open (YY, ">$dfile") || die "can't open $dfile\n" ;
foreach $line (@L) {
next if ($line =~ /\#/) ;
@Z = split " ", $line ;
next unless (defined $Z[$popcol]) ;
next unless ($Z[$popcol] eq $pop) ;
print YY "$line\n" ;
}
close YY ;
}
print GG "\n" ;
print GG "## " if ($postscmode) ;
print GG "pause 9999\n" ;
close GG ;
if ($postscmode) {
$psfile = "$stem.ps" ;
if ($gnfile =~ /xtxt/) {
$psfile = $gnfile ;
$psfile =~ s/xtxt/ps/ ;
}
system "gnuplot < $gnfile > $psfile" ;
system "/home/np29/bin/fixgreen $psfile" ;
system "ps2pdf $psfile " ;
}
unlink (@T) unless $keepflag ;
sub setcolor {
my ($colorst) = @_ ;
local ($cp, $pop, $color, @CP, $line) ;
if (-r $colorst) {
open (C1, $colorst) || die "can't open $colorst\n" ;
foreach $line (<C1>) {
chomp $line ;
($pop, $color) = split " ", $line ;
next if ($pop =~ /\#/) ;
next unless (defined $color) ;
print STDERR "setting color for $pop to $color\n" ;
$COL{$pop} = $color ;
}
close C1 ;
return ;
}
@CP = split " ", $colorst ;
foreach $cp (@CP) {
($pop, $color) = split ":", $cp ;
$COL{$pop} = $color ;
}
}
sub usage {
print "ploteig -i eigfile -p pops -c a:b [-t title] [-s stem] [-o outfile] [-x] [-k] -c colorstringh [-m xmul] [-n ymul]\n" ;
print "-i eigfile input file first col indiv-id last col population\n" ;
print "## as output by smartpca in outputvecs \n" ;
print "-c a:b a, b columns to plot. 1:2 would be common and leading 2 eigenvectors\n" ;
print "-p pops Populations to plot. : delimited. eg -p Bantu:San:French\n" ;
print "## pops can also be a filename. List populations 1 per line\n" ;
print "[-s stem] stem will start various output files\n" ;
print "[-o ofile] ofile will be gnuplot control file. Should have xtxt suffix\n";
print "[-x] make ps and pdf files\n" ;
print "[-k] keep various intermediate files although -x set\n" ;
print "## necessary if .xtxt file is to be hand edited\n" ;
print "[-r colorstringpairs or colorstringfile]\n" ;
print "[-y] put key at top right inside box (old mode)\n" ;
print "[-t] title (legend)\n" ;
print "The xtxt file is a gnuplot file and can be easily hand edited. Intermediate files
needed if you want to make your own plot\n" ;
}
sub setpops {
my ($pops) = @_ ;
local (@a, $d, $b, $e) ;
if (-e $pops) {
open (FF1, $pops) || die "can't open $pops\n" ;
@P = () ;
foreach $line (<FF1>) {
($a) = split " ", $line ;
next unless (defined $a) ;
next if ($a =~ /\#/) ;
push @P, $a ;
}
$out = join ":", @P ;
print "## pops: $out\n" ;
($b, $d , $e) = fileparse($pops) ;
return $b ;
}
@P = split $zsep, $pops ;
return $pops ;
}
eigensoft (6.1.4+dfsg-2) UNRELEASED; urgency=medium
eigensoft (7.2.1+dfsg-1) unstable; urgency=medium
[ Steffen Moeller ]
* debian/upstream/metadata; Added references to registries and paper
-- Steffen Moeller <moeller@debian.org> Mon, 18 Sep 2017 02:20:09 +0200
[ Andreas Tille ]
* New upstream version
* d/watch: Source is now on Github
* d/rules: Do not parse d/changelog
* debhelper 11
* Point Vcs fields to salsa.debian.org
* Standards-Version: 4.1.5
-- Andreas Tille <tille@debian.org> Mon, 16 Jul 2018 16:10:33 +0200
eigensoft (6.1.4+dfsg-1) unstable; urgency=medium
......
......@@ -4,15 +4,15 @@ Uploaders: Steffen Moeller <moeller@debian.org>,
Andreas Tille <tille@debian.org>
Section: science
Priority: optional
Build-Depends: debhelper (>= 9),
Build-Depends: debhelper (>= 11~),
gfortran,
libblas-dev,
liblapack-dev,
liblapacke-dev,
libgsl-dev
Standards-Version: 3.9.8
Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/eigensoft.git
Vcs-Git: https://anonscm.debian.org/git/debian-med/eigensoft.git
Standards-Version: 4.1.5
Vcs-Browser: https://salsa.debian.org/med-team/eigensoft
Vcs-Git: https://salsa.debian.org/med-team/eigensoft.git
Homepage: http://www.hsph.harvard.edu/faculty/alkes-price/software/
Package: eigensoft
......
......@@ -4,10 +4,11 @@ Last-Update: Fri, 05 Feb 2016 19:50:41 +0100
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,5 +1,5 @@
CFLAGS += -I../include
-LDLIBS += -lgfortran -lrt -Wl,-Bstatic -lgsl -lopenblas -Wl,-Bdynamic -fopenmp
+LDLIBS += -lgfortran -lrt -lgsl -lblas -fopenmp
ifeq ($(OPTIMIZE), 1)
CFLAGS += -O2
@@ -1,6 +1,6 @@
override CFLAGS += -I../include -I/usr/include/openblas
#LDLIBS += -lgsl -lopenblas -lrt -lm
-override LDLIBS += -lgsl -lopenblas -lm -lpthread
+override LDLIBS += -lgsl -lblas -lm -lpthread
# Some Linux distributions require separate lapacke library
# override LDLIBS += -llapacke
# Mac additions using homebrew installations