Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • attilav
    Junior Member
    • Mar 2011
    • 7

    installing Burrows-Wheeler Aligner (BWA) on windows

    Hi all!

    Can someone tell me, if it is possible to use BWA in windows, and if it is, then how can I install it?
    I was told, that I should install a program called Cygwin, and use it to build BWA from the source. I've never done anything like this, so its quite possible that I'm doing it wrong, here is how I tried to do it:

    I managed to get to the directory in cygwin, where the source files are, then typed ./configure . However, I got an error that there is no such file or directory. I checked the directory, and there really aren't configure files in the source (I don't know, if this is normal). So I thought okay, im gonna skip the configure part, and jump to the make part. I typed make, and got a whole lot of errors:

    $ make
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD QSufSort.c -o QSufSort.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwt_gen.c -o bwt_gen.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD utils.c -o utils.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwt.c -o bwt.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwtio.c -o bwtio.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwtaln.c -o bwtaln.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwtgap.c -o bwtgap.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD is.c -o is.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bntseq.c -o bntseq.o
    bntseq.c: In function ‘ks_getuntil’:
    bntseq.c:38:1: warning: array subscript has type ‘char’
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwtmisc.c -o bwtmisc.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD bwtindex.c -o bwtindex.o
    gcc -c -g -Wall -O2 -DHAVE_PTHREAD ksw.c -o ksw.o
    In file included from ksw.c:29:0:
    /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
    ksw.c:43:2: error: expected specifier-qualifier-list before ‘__m128i’
    ksw.c: In function ‘ksw_qinit’:
    ksw.c:55:3: error: ‘ksw_query_t’ has no member named ‘qp’
    ksw.c:55:11: error: ‘__m128i’ undeclared (first use in this function)
    ksw.c:55:11: note: each undeclared identifier is reported only once for each fun ction it appears in
    ksw.c:55:19: error: expected expression before ‘)’ token
    ksw.c:56:3: error: ‘ksw_query_t’ has no member named ‘H0’
    ksw.c:56:11: error: ‘ksw_query_t’ has no member named ‘qp’
    ksw.c:57:3: error: ‘ksw_query_t’ has no member named ‘H1’
    ksw.c:57:11: error: ‘ksw_query_t’ has no member named ‘H0’
    ksw.c:58:3: error: ‘ksw_query_t’ has no member named ‘E’
    ksw.c:58:11: error: ‘ksw_query_t’ has no member named ‘H1’
    ksw.c:59:3: error: ‘ksw_query_t’ has no member named ‘Hmax’
    ksw.c:59:13: error: ‘ksw_query_t’ has no member named ‘E’
    ksw.c:73:25: error: ‘ksw_query_t’ has no member named ‘qp’
    ksw.c:82:27: error: ‘ksw_query_t’ has no member named ‘qp’
    ksw.c: In function ‘ksw_sse2_16’:
    ksw.c:98:2: error: ‘__m128i’ undeclared (first use in this function)
    ksw.c:98:10: error: expected ‘;’ before ‘zero’
    ksw.c:110:2: error: ‘zero’ undeclared (first use in this function)
    ksw.c:110:2: warning: implicit declaration of function ‘_mm_set1_epi32’
    ksw.c:111:2: error: ‘gapoe’ undeclared (first use in this function)
    ksw.c:111:2: warning: implicit declaration of function ‘_mm_set1_epi8’
    ksw.c:112:2: error: ‘gape’ undeclared (first use in this function)
    ksw.c:113:2: error: ‘shift’ undeclared (first use in this function)
    ksw.c:114:2: error: ‘H0’ undeclared (first use in this function)
    ksw.c:114:8: error: ‘ksw_query_t’ has no member named ‘H0’
    ksw.c:114:14: error: ‘H1’ undeclared (first use in this function)
    ksw.c:114:20: error: ‘ksw_query_t’ has no member named ‘H1’
    ksw.c:114:26: error: ‘E’ undeclared (first use in this function)
    ksw.c:114:31: error: ‘ksw_query_t’ has no member named ‘E’
    ksw.c:114:36: error: ‘Hmax’ undeclared (first use in this function)
    ksw.c:114:44: error: ‘ksw_query_t’ has no member named ‘Hmax’
    ksw.c:117:3: warning: implicit declaration of function ‘_mm_store_si128’
    ksw.c:124:11: error: expected ‘;’ before ‘e’
    ksw.c:125:3: error: ‘h’ undeclared (first use in this function)
    ksw.c:125:3: warning: implicit declaration of function ‘_mm_load_si128’
    ksw.c:126:3: warning: implicit declaration of function ‘_mm_slli_si128’
    ksw.c:134:4: warning: implicit declaration of function ‘_mm_adds_epu8’
    ksw.c:134:40: error: ‘S’ undeclared (first use in this function)
    ksw.c:135:4: warning: implicit declaration of function ‘_mm_subs_epu8’
    ksw.c:136:4: error: ‘e’ undeclared (first use in this function)
    ksw.c:137:4: warning: implicit declaration of function ‘_mm_max_epu8’
    ksw.c:138:24: error: ‘f’ undeclared (first use in this function)
    ksw.c:139:4: error: ‘max’ undeclared (first use in this function)
    ksw.c:161:5: warning: implicit declaration of function ‘_mm_movemask_epi8’
    ksw.c:161:5: warning: implicit declaration of function ‘_mm_cmpeq_epi8’
    ksw.c:167:3: warning: implicit declaration of function ‘_mm_srli_si128’
    ksw.c:167:3: warning: implicit declaration of function ‘_mm_extract_epi16’
    ksw.c: In function ‘ksw_sse2_8’:
    ksw.c:208:2: error: ‘__m128i’ undeclared (first use in this function)
    ksw.c:208:10: error: expected ‘;’ before ‘zero’
    ksw.c:219:2: error: ‘zero’ undeclared (first use in this function)
    ksw.c:220:2: error: ‘gapoe’ undeclared (first use in this function)
    ksw.c:220:2: warning: implicit declaration of function ‘_mm_set1_epi16’
    ksw.c:221:2: error: ‘gape’ undeclared (first use in this function)
    ksw.c:222:2: error: ‘H0’ undeclared (first use in this function)
    ksw.c:222:8: error: ‘ksw_query_t’ has no member named ‘H0’
    ksw.c:222:14: error: ‘H1’ undeclared (first use in this function)
    ksw.c:222:20: error: ‘ksw_query_t’ has no member named ‘H1’
    ksw.c:222:26: error: ‘E’ undeclared (first use in this function)
    ksw.c:222:31: error: ‘ksw_query_t’ has no member named ‘E’
    ksw.c:222:36: error: ‘Hmax’ undeclared (first use in this function)
    ksw.c:222:44: error: ‘ksw_query_t’ has no member named ‘Hmax’
    ksw.c:232:11: error: expected ‘;’ before ‘e’
    ksw.c:233:3: error: ‘h’ undeclared (first use in this function)
    ksw.c:236:4: warning: implicit declaration of function ‘_mm_adds_epi16’
    ksw.c:236:27: error: ‘S’ undeclared (first use in this function)
    ksw.c:237:4: error: ‘e’ undeclared (first use in this function)
    ksw.c:238:4: warning: implicit declaration of function ‘_mm_max_epi16’
    ksw.c:239:25: error: ‘f’ undeclared (first use in this function)
    ksw.c:240:4: error: ‘max’ undeclared (first use in this function)
    ksw.c:242:4: warning: implicit declaration of function ‘_mm_subs_epu16’
    ksw.c:258:5: warning: implicit declaration of function ‘_mm_cmpgt_epi16’
    make: *** [ksw.o] Error 1

    I would really appreciate, if someone could help me out with this.

    Thanks, Attila Vikor
  • nilshomer
    Nils Homer
    • Nov 2008
    • 1283

    #2
    Try opening the "Makefile" and changing this line:
    Code:
    DFLAGS=     -DHAVE_PTHREAD #-D_NO_SSE2 #-D_FILE_OFFSET_BITS=64
    to this
    Code:
    DFLAGS=     -DHAVE_PTHREAD -D_NO_SSE2 #-D_FILE_OFFSET_BITS=64

    Comment

    • skycreative
      Member
      • Jan 2010
      • 33

      #3
      maybe virtual machine more easy

      Comment

      • attilav
        Junior Member
        • Mar 2011
        • 7

        #4
        Changed the line in the makefile, and the make went through without an error!
        Thank you!

        Comment

        • RDW
          Member
          • Oct 2008
          • 63

          #5
          Note that anything you build with Cygwin will be a 32-bit executable, even on 64-bit Windows. This greatly limits the size of the files bwa can handle. If this is an issue and you have a 64-bit system, consider dual booting to 64-bit Linux, or perhaps running it in a VM.

          Edit: I don't know if anyone has built a native 64-bit Windows bwa - I had a go a while ago with mingw, but ran into problems with missing posix functions.
          Last edited by RDW; 12-02-2011, 03:10 PM.

          Comment

          • mfursov
            Junior Member
            • Dec 2009
            • 6

            #6
            A free tool: Unipro UGENE contains BWA for windows in its full package:

            ---
            http://ugene.unipro.ru

            Comment

            • RDW
              Member
              • Oct 2008
              • 63

              #7
              UGENE looks like a useful collection of tools, though the BWA build is still 32-bit.

              Comment

              • mfursov
                Junior Member
                • Dec 2009
                • 6

                #8
                Hope we get 64 bit version soon

                Please track:
                ---
                http://ugene.unipro.ru

                Comment

                • xied75
                  Senior Member
                  • Feb 2012
                  • 129

                  #9
                  Dear all,

                  Please check http://bow.codeplex.com/
                  Just released BWA on x64 Windows, natively compiled on Windows without using any 3dr party library.

                  Best,

                  dong

                  Comment

                  • JMU
                    Junior Member
                    • Oct 2016
                    • 3

                    #10
                    How can I install BWA on Windows

                    Hi all!

                    I try to install BWA on windows and the compilation of a program is the very first time for me, so I think that I did a lot of mistakes.
                    I installed bwa and cygwin. Following the 'make' command within the cygwin shell something happend but if I try to start bwa with the commoand 'bwa' within the cmd console I got the respond that cygwin1.dll is not installed.

                    The following happend after the make command:

                    $ make
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 utils.c -o utils.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 kthread.c -o kthread.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 kstring.c -o kstring.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 ksw.c -o ksw.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwt.c -o bwt.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bntseq.c -o bntseq.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwa.c -o bwa.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwamem.c -o bwamem.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwamem_pair.c -o bwamem_pair.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwamem_extra.c -o bwamem_extra.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 malloc_wrap.c -o malloc_wrap.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 QSufSort.c -o QSufSort.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwt_gen.c -o bwt_gen.o
                    bwt_gen.c: In Funktion »BWTIncBuildRelativeRank«:
                    bwt_gen.c:878:10: Warnung: Variable »oldInverseSa0RelativeRank« gesetzt, aber nicht verwendet [-Wunused-but-set-variable]
                    bgint_t oldInverseSa0RelativeRank = 0;
                    ^
                    bwt_gen.c: In Funktion »BWTIncMergeBwt«:
                    bwt_gen.c:952:15: Warnung: Variable »bitsInWordMinusBitPerChar« gesetzt, aber nicht verwendet [-Wunused-but-set-variable]
                    unsigned int bitsInWordMinusBitPerChar;
                    ^
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 rope.c -o rope.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 rle.c -o rle.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 is.c -o is.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtindex.c -o bwtindex.o
                    ar -csru libbwa.a utils.o kthread.o kstring.o ksw.o bwt.o bntseq.o bwa.o bwamem.o bwamem_pair.o bwamem_extra.o malloc_wrap.o QSufSort.o bwt_gen.o rope.o rle.o is.o bwtindex.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwashm.c -o bwashm.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwase.c -o bwase.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwaseqio.c -o bwaseqio.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtgap.c -o bwtgap.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtaln.c -o bwtaln.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bamlite.c -o bamlite.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwape.c -o bwape.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 kopen.c -o kopen.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 pemerge.c -o pemerge.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 maxk.c -o maxk.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtsw2_core.c -o bwtsw2_core.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtsw2_main.c -o bwtsw2_main.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtsw2_aux.c -o bwtsw2_aux.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwt_lite.c -o bwt_lite.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtsw2_chain.c -o bwtsw2_chain.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 fastmap.c -o fastmap.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwtsw2_pair.c -o bwtsw2_pair.o
                    gcc -c -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 main.c -o main.o
                    gcc -g -Wall -O2 -DHAVE_PTHREAD -D_NO_SSE2 bwashm.o bwase.o bwaseqio.o bwtgap.o bwtaln.o bamlite.o bwape.o kopen.o pemerge.o maxk.o bwtsw2_core.o bwtsw2_main.o bwtsw2_aux.o bwt_lite.o bwtsw2_chain.o fastmap.o bwtsw2_pair.o main.o -o bwa -L. -lbwa -lm -lz -lpthread

                    Is there any executable files available for bwa-0.7.15?

                    I would be really happy if somebody can help me!

                    Cheers, Lizzy

                    Comment

                    • RDW
                      Member
                      • Oct 2008
                      • 63

                      #11
                      Where are you trying to run it from? The missing dll suggests you might be trying to use it from (e.g.) the Windows command prompt rather than the Cygwin bash shell, which complicates things a lot. After running make from Cygwin bash is there a 'bwa.exe' in your bwa source directory? If so, in bash navigate to the source directory and try:

                      ./bwa

                      If this works, then you successfully built bwa, but it just isn't in your PATH (the current directory is not in your PATH by default). To see a list of directories that are in your Cygwin PATH, from bash try:

                      echo $PATH

                      You can copy bwa.exe to one of these directories and the 'bwa' command should work from the Cygwin bash in any directory.

                      Edit: Incidentally, things have moved on since this very old thread began! 64-bit Cygwin is now available and can build 64-bit bwa, and UGENE also has a pre-compiled 64-bit (Cygwin) build, though it's not the latest version.
                      Last edited by RDW; 10-20-2016, 05:39 PM.

                      Comment

                      • JMU
                        Junior Member
                        • Oct 2016
                        • 3

                        #12
                        Thanks a lot, it works!

                        Yes, there was a bwa.exe after running the make command and I could initiate bwa by using ./bwa. I used the cygwin bash.

                        Thank you and best wishes from Berlin,
                        Lizzy

                        Comment

                        • JMU
                          Junior Member
                          • Oct 2016
                          • 3

                          #13
                          One more question: Why I have to use ./ in advance of the bwa command. Could you tell me what is the reason for that?

                          Thanks, Lizzy

                          Comment

                          Latest Articles

                          Collapse

                          • SEQadmin2
                            From Collection to Sequencing: Why Sample Preparation and Preservation Define Sequencing Data
                            by SEQadmin2


                            Data variability is still an issue in sequencing technologies despite the advances in reproducibility and accuracy of these platforms. But the problem does not originate in the sequencing itself, but in the previous steps, before the sample reaches the sequencer.


                            The first step is collection, followed by preservation and sample preparation for analysis. Most scientists overlook those steps, but not being careful might just be skewing the experiment’s results.
                            ...
                            Yesterday, 10:05 AM
                          • SEQadmin2
                            Single-Cell Sequencing at an Inflection Point: Early Impacts of New Platforms and Emerging Trends
                            by SEQadmin2


                            With the launch of new single-cell sequencing platforms in 2026, the field stands at an exciting inflection point. This article surveys the most impactful advances in the field and discusses how they’re reshaping research in cancer, immunology, and beyond.


                            Introduction

                            Single-cell sequencing technologies have undergone remarkable advances over the past decade, transitioning from low-throughput experimental approaches to highly scalable platforms capable of...
                            05-22-2026, 06:42 AM
                          • SEQadmin2
                            Environmental Genomics in the Age of NGS: From Microbes to Conservation Strategies
                            by SEQadmin2

                            Studying ecosystems means dealing with complex, multi-species communities that are hard to observe at scale. This complexity, however, hides many important questions to be answered, from how biogeochemical cycles work and how climate change can affect species distribution to how conservation strategies can work best.


                            Genomics, particularly since the expansion of NGS, has transformed ecosystem ecology. By sequencing environmental DNA, we can now assess biodiversity without direct...
                            05-06-2026, 09:04 AM

                          ad_right_rmr

                          Collapse

                          News

                          Collapse

                          Topics Statistics Last Post
                          Started by SEQadmin2, Yesterday, 12:03 PM
                          0 responses
                          19 views
                          0 reactions
                          Last Post SEQadmin2  
                          Started by SEQadmin2, Yesterday, 11:40 AM
                          0 responses
                          14 views
                          0 reactions
                          Last Post SEQadmin2  
                          Started by SEQadmin2, 05-28-2026, 11:40 AM
                          0 responses
                          29 views
                          0 reactions
                          Last Post SEQadmin2  
                          Started by SEQadmin2, 05-26-2026, 10:12 AM
                          0 responses
                          31 views
                          0 reactions
                          Last Post SEQadmin2  
                          Working...