By wuzhenzhen, 31 October, 2025

一、 分析过程中用到的软件安装过程:

  1. 安装GATK:

    # 从https://github.com/broadinstitute/gatk/releases/download/4.1.8.1/gatk-4.1.8.1.zip进行下载,然后解压安装:
                        wget https://github.com/broadinstitute/gatk/releases/download/4.1.8.1/gatk-4.1.8.1.zip
                        unzip gatk-4.1.8.1.zip
                        cd gatk-4.1.8.1
                        ./gatk
  2.  安装bwa-mem2:

     # bwa-mem2比对速度优于bwa。
                        git clone --recursive https://github.com/bwa-mem2/bwa-mem2
                        cd bwa-mem2
                        make # 报错,需要安装g++和zlib  apt install g++  apt install zlib1g-dev -y
                        ./bwa-mem2
  3.  安装fastp:

      # fastp用于过滤原始测序数据。
                        conda install -c bioconda fastp
  4. 安装samtools:

    # samtools用于操作sam/bam文件。
                        conda install -c bioconda samtools
  5. 安装 vcftools/bcftools:

     # 用于操作vcf文件。
                        conda install -c bioconda vcftools bcftools

二、报错

  • bwa-mem2 make的时候报错:

    报错详细信息:

    (base) root@3eb13a5fb4e6:/home/software/bwa-mem2# make
                    	rm -f src/*.o libbwa.a; cd ext/safestringlib/ && make clean;
                    	make[1]: Entering directory '/home/software/bwa-mem2/ext/safestringlib'
                    	rm -f obj/*.o *~ core /*~ objtest/*.o
                    	rm -f libsafestring.a
                    	rm -f safestringtest
                    	make[1]: Leaving directory '/home/software/bwa-mem2/ext/safestringlib'
                    	make arch=sse41    EXE=bwa-mem2.sse41    CXX=g++ all
                    	make[1]: Entering directory '/home/software/bwa-mem2'
                    	g++ -c -g -O3 -fpermissive -msse -msse2 -msse3 -mssse3 -msse4.1  -DENABLE_PREFETCH -DV17=1 -DMATE_SORT=0 -DSAIS=1  -Isrc -Iext/safestringlib/include src/fastmap.cpp -o src/fastmap.o
                    	make[1]: g++: No such file or directory
                    	make[1]: *** [Makefile:99: src/fastmap.o] Error 127
                    	make[1]: Leaving directory '/home/software/bwa-mem2'
                    	make: *** [Makefile:105: multi] Error 2

    解决过程:

    # 报错是因为系统里没有安装g++,所以没办法编译
            	apt-get update
            	apt-get install -y build-essential
            	# 安装后继续报错,日志内容如下:
            	(base) root@3eb13a5fb4e6:/home/software/bwa-mem2# make
            		rm -f src/*.o libbwa.a; cd ext/safestringlib/ && make clean;
            		make[1]: Entering directory '/home/software/bwa-mem2/ext/safestringlib'
            		rm -f obj/*.o *~ core /*~ objtest/*.o
            		rm -f libsafestring.a
            		rm -f safestringtest
            		make[1]: Leaving directory '/home/software/bwa-mem2/ext/safestringlib'
            		make arch=sse41    EXE=bwa-mem2.sse41    CXX=g++ all
            		make[1]: Entering directory '/home/software/bwa-mem2'
            		g++ -c -g -O3 -fpermissive -msse -msse2 -msse3 -mssse3 -msse4.1  -DENABLE_PREFETCH -DV17=1 -DMATE_SORT=0 -DSAIS=1  -Isrc -Iext/safestringlib/include src/fastmap.cpp -o src/fastmap.o
            		In file included from src/fastmap.cpp:39:
            		src/fastmap.h:35:10: fatal error: zlib.h: No such file or directory
            		   35 | #include <zlib.h>
            		      |          ^~~~~~~~
            		compilation terminated.
            		make[1]: *** [Makefile:99: src/fastmap.o] Error 1
            		make[1]: Leaving directory '/home/software/bwa-mem2'
            		make: *** [Makefile:105: multi] Error 2
            	# 说明 缺少 zlib 开发库(压缩相关头文件),bwa-mem2 在编译时需要用到。
            	# 安装库
            	apt-get install -y zlib1g-dev

     

  • gatk的 Java 环境未正确配置

    报错详细信息:

    (base) root@961a4377e759:/home/Rmolle_calllsnp_work/Rmolle_results/bam_sort_bygatk# /home/softwore/gatk-4.1.8.1/gatk CreateSequenceDictionary -R /home/Rmolle_calllsnp_work/Rmolle_genome_GCA025413875/Rmolle_genomic_GCA_025413875.1.fna.gz -O Rmolle_genomic_GCA_025413875.1.dict Using GATK jar /home/softwore/gatk-4.1.8.1/gatk-package-4.1.8.1-local.jar Running: java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /home/softwore/gatk-4.1.8.1/gatk-package-4.1.8.1-local.jar CreateSequenceDictionary -R /home/Rmolle_calllsnp_work/Rmolle_genome_GCA025413875/Rmolle_genomic_GCA_025413875.1.fna.gz -O Rmolle_genomic_GCA_025413875.1.dict Traceback (most recent call last): File “/home/softwore/gatk-4.1.8.1/gatk”, line 479, in <module>main(sys.argv\[1:\]) File “/home/softwore/gatk-4.1.8.1/gatk”, line 152, in main runGATK(sparkRunner, sparkSubmitCommand, dryRun, gatkArgs, sparkArgs, javaOptions) File “/home/softwore/gatk-4.1.8.1/gatk”, line 328, in runGATK runCommand(cmd, dryrun) File “/home/softwore/gatk-4.1.8.1/gatk”, line 384, in runCommand check_call(cmd, env=gatk_env) File “/opt/conda/lib/python3.11/subprocess.py”, line 408, in check_call retcode = call(\*popenargs, \*\*kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/opt/conda/lib/python3.11/subprocess.py”, line 389, in call with Popen(\*popenargs, \*\*kwargs) as p: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/opt/conda/lib/python3.11/subprocess.py”, line 1026, in **init** self.\_execute_child(args, executable, preexec_fn, close_fds, File “/opt/conda/lib/python3.11/subprocess.py”, line 1950, in \_execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: \[Errno 2\] No such file or directory: ‘java’</module>

    解决过程:

    # 1.找到是未安装java还是环境未配置
    
    java -version which java
    
    # 2.未安装
    
    apt install openjdk-17-jdk -y
    
    # 3\. 设置 JAVA_HOME 和更新 PATH:
    
    # 查找 Java 安装路径(以 OpenJDK 为例)
    
    which java
    
    # 输出类似:/usr/bin/java → 实际路径为 /usr/lib/jvm/java-17-openjdk-amd64
    
    # 编辑环境变量文件(如 ~/.bashrc 或 ~/.zshrc)
    
    echo ‘export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64’ >> ~/.bashrc echo ‘export PATH=$JAVA_HOME/bin:$PATH’ >> ~/.bashrc
    
    # 生效配置
    
    source ~/.bashrc