Can anyone recommend some software or and R package that will allow me to do GWAS analysis on bacteria? Specifically, M. tuberculosis. My main objective is to identify any mutations associated with drug resistance in my strain collection.
Thanks. From what I've read about Plink its not really geared for haploid or very clonal populations. There were some great papers in the references I'll check out though.
Hi I saw your tool its looks nice to me. Could you please let me know what do you mean the target and background its little confused for me and what are those number.
ADD REPLY
• link
updated 24 months ago by
Ram
44k
•
written 9.6 years ago by
HG
★
1.2k
0
Entering edit mode
The numbers correspond to the genotype columns in the VCF file. Target (cases) and controls (background) are the groups of individuals you want to compare.
Not sure what I did but I'm getting a different error message now (I updated my xtools yesterday). I installed it on a linux computer so ill give it a try on that. Thanks.
GOD:vcflib jdlim$ make
cd tabixpp && /Applications/Xcode.app/Contents/Developer/usr/bin/make
ar -cru libtabix.a
ar: no archive members specified
usage: ar -d [-TLsv] archive file ...
ar -m [-TLsv] archive file ...
ar -m [-abiTLsv] position archive file ...
ar -p [-TLsv] archive [file ...]
ar -q [-cTLsv] archive file ...
ar -r [-cuTLsv] archive file ...
ar -r [-abciuTLsv] position archive file ...
ar -t [-TLsv] archive [file ...]
ar -x [-ouTLsv] archive [file ...]
make[2]: *** [libtabix.a] Error 1
make[1]: *** [all-recur] Error 1
make: *** [tabixpp/tabix.o] Error 2
I am getting an error when trying to install on a linux computer as well.
cd tabixpp && make
make[1]: Entering directory `/home/lmbjas002/bin/vcflib/tabixpp'
make[2]: Entering directory `/home/lmbjas002/bin/vcflib/tabixpp'
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE bgzf.c -o bgzf.o
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE kstring.c -o kstring.o
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE knetfile.c -o knetfile.o
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE index.c -o index.o
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE bedidx.c -o bedidx.o
ar -cru libtabix.a bgzf.o kstring.o knetfile.o index.o bedidx.o
ranlib libtabix.a
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE main.c -o main.o
gcc -g -Wall -O2 -fPIC -o tabix main.o -lm -L. -ltabix -lz
gcc -c -g -Wall -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE bgzip.c -o bgzip.o
gcc -g -Wall -O2 -fPIC -o bgzip bgzip.o bgzf.o knetfile.o -lz
g++ -g -Wall -O2 -fPIC -c tabix.cpp
g++ -g -Wall -O2 -fPIC -o tabix++ main.cpp tabix.o bgzf.o -lm -L. -ltabix -lz
make[2]: Leaving directory `/home/lmbjas002/bin/vcflib/tabixpp'
make[1]: Leaving directory `/home/lmbjas002/bin/vcflib/tabixpp'
g++ -c -o src/Variant.o src/Variant.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
g++ -c -o src/rnglib.o src/rnglib.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
g++ -c -o src/var.o src/var.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
g++ -c -o src/pdflib.o src/pdflib.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
g++ -c -o src/cdflib.o src/cdflib.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
g++ -c -o src/split.o src/split.cpp -I. -L. -Ltabixpp/ -ltabix -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x
cd smithwaterman && make
make[1]: Entering directory `/home/lmbjas002/bin/vcflib/smithwaterman'
g++ -c -o smithwaterman.o smithwaterman.cpp
g++ -c -o BandedSmithWaterman.o BandedSmithWaterman.cpp
g++ -c -o SmithWatermanGotoh.o SmithWatermanGotoh.cpp
g++ -c -o Repeats.o Repeats.cpp
g++ -c -o LeftAlign.o LeftAlign.cpp
g++ -c -o IndelAllele.o IndelAllele.cpp
cc -Wall -O3 -c -o disorder.o disorder.c
* linking smithwaterman
make[1]: Leaving directory `/home/lmbjas002/bin/vcflib/smithwaterman'
cd fastahack && make
make[1]: Entering directory `/home/lmbjas002/bin/vcflib/fastahack'
g++ -O3 -D_FILE_OFFSET_BITS=64 -c Fasta.cpp
g++ -O3 -D_FILE_OFFSET_BITS=64 -c split.cpp
g++ -O3 -D_FILE_OFFSET_BITS=64 -c disorder.c
g++ -O3 -D_FILE_OFFSET_BITS=64 Fasta.o FastaHack.cpp split.o disorder.o -o fastahack
make[1]: Leaving directory `/home/lmbjas002/bin/vcflib/fastahack'
cc -c -o src/ssw.o src/ssw.c
g++ -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -c -o src/ssw_cpp.o src/ssw_cpp.cpp
cd fsom && g++ -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -c fsom.c -lm
In file included from fsom.c:21:
fsom.h:77: error: non-local function 'void som_network_destroy(som_network_t*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:78: error: non-local function 'void som_set_inputs(som_network_t*, double*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:79: error: non-local function 'void som_train(som_network_t*, double**, size_t, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:80: error: non-local function 'void som_serialize(som_network_t*, const char*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:81: error: non-local function 'void som_init_weights(som_network_t*, double**, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:82: error: non-local function 'double som_get_best_neuron_coordinates(som_network_t*, size_t*, size_t*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:83: error: non-local function 'som_network_t* som_deserialize(const char*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.h:84: error: non-local function 'som_network_t* som_network_new(size_t, size_t, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:249: error: non-local function 'som_network_t* som_network_new(size_t, size_t, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:397: error: non-local function 'void som_network_destroy(som_network_t*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:417: error: non-local function 'void som_set_inputs(som_network_t*, double*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:436: error: non-local function 'double som_get_best_neuron_coordinates(som_network_t*, size_t*, size_t*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:560: error: non-local function 'double som_learning_rate_fast(som_network_t*, size_t, double, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:616: error: non-local function 'void som_init_weights(som_network_t*, double**, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:859: error: non-local function 'void som_train(som_network_t*, double**, size_t, size_t)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:887: error: non-local function 'void som_serialize(som_network_t*, const char*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
fsom.c:927: error: non-local function 'som_network_t* som_deserialize(const char*)' uses anonymous type
fsom.h:75: error: 'typedef struct<anonymous> som_network_t' does not refer to the unqualified type, so it is not used for linkage
make: *** [fsom/fsom.o] Error 1
1 warning generated.
c++ -c -o IndelAllele.o IndelAllele.cpp
cc -Wall -O3 -c -o disorder.o disorder.c
* linking smithwaterman
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
ld: warning: option -s is obsolete and being ignored
ld: internal error: atom not found in symbolIndex(__ZNKSt3__16vectorINS_4pairIicEENS_9allocatorIS2_EEE8max_sizeEv) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [smithwaterman] Error 1
make: *** [smithwaterman/SmithWatermanGotoh.o] Error 2
ScienceBuff & ragavishn Can you please open a bug report on the repository so I can track this issue? Also did you pull recursively: git clone --recursive https://github.com/jewmanchue/vcflib.git
Here's a nice review that mentions many important papers in bacterial GWAS, and does a pretty good job explaining the difference between human GWAS and various attempts to do this in bacteria.
http://adegenet.r-forge.r-project.org/files/simGWAS/MSc-GWAS-1.1.pdf
Have a look at this recent review for some suggestions
Thanks. From what I've read about Plink its not really geared for haploid or very clonal populations. There were some great papers in the references I'll check out though.
Do you have multiple bacterial pools per phenotype?
Hi Zev, yes, I have numerous pools of about 50 isolates per phernotype
Please let me know if you have gotten any answer for this question. My email: ragavishn@gmail.com