[med-svn] [Git][med-team/freebayes][upstream] New upstream version 1.3.8

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Sat Feb 15 11:03:43 GMT 2025



Michael R. Crusoe pushed to branch upstream at Debian Med / freebayes


Commits:
96243c4d by Michael R. Crusoe at 2024-06-07T11:16:40+02:00
New upstream version 1.3.8
- - - - -


16 changed files:

- + .github/ISSUE_TEMPLATE/bug_report.md
- + .github/workflows/ci_test.yml
- + .github/workflows/issue-tracker-bot.yaml
- + .github/workflows/main.yml
- + .github/workflows/support-tracker-bot.yaml
- .gitmodules
- + .travis.yml
- README.md
- RELEASE-NOTES.md
- guix.scm
- meson.build
- src/BedReader.cpp
- src/BedReader.h
- src/version_git.h
- test/t/01_call_variants.t
- test/t/01b_call_variants.t


Changes:

=====================================
.github/ISSUE_TEMPLATE/bug_report.md
=====================================
@@ -0,0 +1,44 @@
+---
+name: Bug report 🐞
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+---
+**Only bug reports!**
+
+The C++ version of Freebayes is in *maintenance* mode. Use the github issue
+tracker to report bugs *only*. For comments, questions and features,
+please use the google group mailing list as stated on the
+[README](https://github.com/freebayes/freebayes/blob/master/README.md)!
+
+**Describe the bug**
+
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+
+Include all steps to reproduce the behavior and paste any complete
+errors from the terminal.
+
+**Expected behavior**
+
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+
+If applicable, add screenshots to help explain your problem.
+
+**Additional context**
+
+Add any other context about the problem here.
+
+Include a set of BAM/BED files to reproduce the issue
+
++ bonus points if you try to minimize the test case yourself, as issues are often localized:
+  - try to use sambamba or samtools slice to first extract the reference where the error occurs
+  - if that succeeds (the error is still reproducible), continue to crop the file in binary-search fashion
+
+**Finally**
+
+Please check the README and docs carefully. Everyone working on freebayes is doing that for free. Please respect our time (too).


=====================================
.github/workflows/ci_test.yml
=====================================
@@ -0,0 +1,62 @@
+name: CI
+on: [push, pull_request]
+jobs:
+  arch:
+    name: freebayes-CI
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        os: [ubuntu-latest]
+        python-version: [3.8]
+    steps:
+    - name: Update ubuntu
+      run: sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+ && sudo apt-get update
+    - name: Install dependencies
+      run: sudo apt-get -y -f install samtools bc parallel libvcflib-tools libvcflib-dev fastahack smithwaterman libwfa2-dev
+    - uses: actions/checkout at v3
+    - uses: actions/setup-python at v4
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Checkout submodules
+      run: git submodule update --init --recursive
+    - run: pip install meson ninja
+    - name: Configure
+      run: meson setup build/
+    - name: Compile
+      run: ninja -C build/
+    - name: Run tests
+      run: meson test --timeout-multiplier 4 --print-errorlogs -C build/
+
+
+  build-aarch64:
+    name: freebayes-CI aarch64
+    runs-on: ubuntu-latest
+
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v3
+      with:
+        submodules: 'recursive'
+
+    - name: Build
+      uses: uraimo/run-on-arch-action at v2
+      with:
+        arch: aarch64
+        distro: ubuntu20.04
+        githubToken: ${{ github.token }}
+        dockerRunArgs: |
+          --volume "${PWD}:/freebayes"
+        install: |
+          apt-get update -q -y
+          apt-get install -q -y gcc g++ python3.8 python3-pip samtools bc parallel libvcflib-tools libvcflib-dev fastahack smithwaterman
+          pip install meson ninja
+        run: |
+          set -x
+          cd /freebayes
+          # CONFIGURE
+          meson build/
+          #COMPILE
+          ninja -C build/
+          # TEST
+          meson test --timeout-multiplier 4 --print-errorlogs -C build/
+          


=====================================
.github/workflows/issue-tracker-bot.yaml
=====================================
@@ -0,0 +1,19 @@
+name: "Close stale issues"
+on:
+  schedule:
+    - cron: "0 1 * * *"
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/stale at v3
+        with:
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+          stale-issue-message: 'This issue is marked stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days'
+          close-issue-message: 'This issue was closed for lack of activity. Feel free to re-open if someone feels like working on it.'
+          days-before-stale: 120
+          days-before-close: 5
+          exempt-issue-labels: "bug,build,enhancement,help wanted,in progress"
+          debug-only: false
+          operations-per-run: 100 	


=====================================
.github/workflows/main.yml
=====================================
@@ -0,0 +1,36 @@
+# This is a basic workflow to help you get started with Actions
+
+name: CI
+
+# Controls when the action will run. 
+on:
+  # Triggers the workflow on push or pull request events but only for the master branch
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  # This workflow contains a single job called "build"
+  build:
+    # The type of runner that the job will run on
+    runs-on: ubuntu-latest
+
+    # Steps represent a sequence of tasks that will be executed as part of the job
+    steps:
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout at v2
+
+      # Runs a single command using the runners shell
+      - name: Run a one-line script
+        run: echo Hello, world!
+
+      # Runs a set of commands using the runners shell
+      - name: Run a multi-line script
+        run: |
+          echo Add other actions to build,
+          echo test, and deploy your project.


=====================================
.github/workflows/support-tracker-bot.yaml
=====================================
@@ -0,0 +1,20 @@
+name: "Close support issues"
+on:
+  schedule:
+    - cron: "0 1 * * *"
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/stale at v3
+        with:
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+          stale-issue-message: 'This issue is marked stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days'
+          close-issue-message: 'This issue was closed for lack of activity. Feel free to re-open if someone feels like working on it.'
+          days-before-stale: 30
+          days-before-close: 5
+          only-labels: "please file bugs only - use google groups instead"
+          exempt-issue-labels: "build,enhancement,help wanted,in progress"
+          debug-only: false
+          operations-per-run: 100 	


=====================================
.gitmodules
=====================================
@@ -4,6 +4,12 @@
 [submodule "bash-tap"]
 	path = test/bash-tap
 	url = https://github.com/illusori/bash-tap.git
-[submodule "contrib/vcflib"]
-	path = contrib/vcflib
-	url = https://github.com/vcflib/vcflib.git
+[submodule "contrib/smithwaterman"]
+	path = contrib/smithwaterman
+	url = https://github.com/ekg/smithwaterman.git
+[submodule "contrib/fastahack"]
+	path = contrib/fastahack
+	url = https://github.com/ekg/fastahack.git
+[submodule "contrib/multichoose"]
+	path = contrib/multichoose
+	url = git at github.com:vcflib/multichoose.git


=====================================
.travis.yml
=====================================
@@ -0,0 +1,26 @@
+language: cpp
+os: linux
+dist: focal
+addons:
+  apt:
+    packages:
+      - bc
+      - samtools
+      - parallel
+      - meson
+      - ninja-build
+      - libvcflib-tools
+      - vcftools
+jobs:
+  include:
+    - arch: amd64
+      compiler: gcc
+    - arch: arm64
+      compiler: gcc
+    - arch: arm64
+      compiler: clang
+script:
+  - if [ "$TRAVIS_CPU_ARCH" = arm64 ]; then meson_opts="-Doptimization=0"; fi
+  - meson build/ $meson_opts
+  - ninja -C build/
+  - meson test --timeout-multiplier 8 --print-errorlogs -C build/


=====================================
README.md
=====================================
@@ -2,7 +2,8 @@
 ## user manual and guide
 
 
-[![Github-CI](https://github.com/freebayes/freebayes/workflows/CI/badge.svg)](https://github.com/freebayes/freebayes/actions) [![Travis-CI](https://travis-ci.com/freebayes/freebayes.svg?branch=master)](https://travis-ci.com/freebayes/freebayes) [![AnacondaBadge](https://anaconda.org/bioconda/freebayes/badges/installer/conda.svg)](https://anaconda.org/bioconda/freebayes) [![DL](https://anaconda.org/bioconda/freebayes/badges/downloads.svg)](https://anaconda.org/bioconda/freebayes) [![BrewBadge](https://img.shields.io/badge/%F0%9F%8D%BAbrew-freebayes-brightgreen.svg)](https://github.com/brewsci/homebrew-bio) [![GuixBadge](https://img.shields.io/badge/gnuguix-freebayes-brightgreen.svg)](https://www.gnu.org/software/guix/packages/F/) [![DebianBadge](https://badges.debian.net/badges/debian/testing/freebayes/version.svg)](https://packages.debian.org/testing/freebayes) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#vcflib:matrix.org)
+[![Github-CI](https://github.com/freebayes/freebayes/workflows/CI/badge.svg)](https://github.com/freebayes/freebayes/actions) [![Travis-CI](https://travis-ci.com/freebayes/freebayes.svg?branch=master)](https://travis-ci.com/freebayes/freebayes)
+[![DL](https://anaconda.org/bioconda/freebayes/badges/downloads.svg)](https://anaconda.org/bioconda/freebayes) [![BrewBadge](https://img.shields.io/badge/%F0%9F%8D%BAbrew-freebayes-brightgreen.svg)](https://github.com/brewsci/homebrew-bio) [![GuixBadge](https://img.shields.io/badge/gnuguix-freebayes-brightgreen.svg)](https://packages.guix.gnu.org/packages/freebayes/) [![DebianBadge](https://badges.debian.net/badges/debian/testing/freebayes/version.svg)](https://packages.debian.org/testing/freebayes) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#vcflib:matrix.org)
 --------
 
 ## Overview
@@ -482,6 +483,10 @@ Freebayes can target AMD64 and ARM64 (with Neon extensions).
 
 Recently we added the meson build system which can be run with
 
+    meson build/ --buildtype release
+
+For development/debugging use
+
     meson build/ --buildtype debug
 
 or to setup with clang instead


=====================================
RELEASE-NOTES.md
=====================================
@@ -4,6 +4,18 @@ see
 and
 [commits](https://github.com/freebayes/freebayes/commits/master).
 
+## ChangeLog v1.3.8 (20240423)
+
+This is a maintenance release of Freebayes:
+
++ fixes for Debian https://github.com/freebayes/freebayes/issues/786, thanks Hrithik Mangla and Nilesh Patra for reporting
++ unbundled vcflib and vendored back in the much smaller fastahack and smithwaterman modules until Debian provides the include files
+
+Note:
+
++ quality scores in test/regression/NA12878.chr22.tiny.vcf changed with recent builds. Probably caused by gcc-13 and we should look into that
++ github-CI won't build until wfa2lib is included from Debian (WIP)
+
 ## ChangeLog v1.3.7 (20230212)
 
 + sanitizing git submodules


=====================================
guix.scm
=====================================
@@ -10,7 +10,7 @@
 ;;
 ;;   mkdir -p /usr/bin ; ln -s $GUIX_ENVIRONMENT/bin/env /usr/bin/env
 ;;
-;;   meson build/ --buildtype debug
+;;   meson setup build/ --buildtype debug
 ;;   cd build
 ;;   ninja
 ;;   ninja test
@@ -22,12 +22,14 @@
   (guix git-download)
   (guix build-system meson)
   (gnu packages algebra)
+  (gnu packages assembly)
   (gnu packages base)
   (gnu packages compression)
   (gnu packages bioinformatics)
   (gnu packages build-tools)
   (gnu packages curl)
   (gnu packages gcc)
+  (gnu packages gdb)
   (gnu packages llvm)
   (gnu packages ninja)
   (gnu packages parallel)
@@ -51,28 +53,35 @@
     (source (local-file %source-dir #:recursive? #t))
     (build-system meson-build-system)
     (propagated-inputs
-     `(("perl" ,perl)          ; for testing
-       ("python" ,python)          ; for testing
+     `(
+       ("bzip2-static" ,bzip2 "static")    ; libz2 part of htslib for static builds
+       ;; ("fastahack" ,fastahack) ; bundle for Debian
        ("grep" ,grep)          ; for testing
+       ("htslib" ,htslib)      ; does work, but lacks codecs
+       ("intervaltree" ,intervaltree)
+       ("perl" ,perl)          ; for testing
+       ("python" ,python)      ; for testing
        ("samtools" ,samtools)  ; for testing
+       ("simde" ,simde)
+       ;; ("smithwaterman" ,smithwaterman) ; bundle for Debian
+       ("tabixpp" ,tabixpp)    ; for htslib
        ("vcflib" ,vcflib)      ; for testing freebayes-parallel
+       ("wfa2-lib" ,wfa2-lib)  ; vcflib dependency
        ("which" ,which)        ; for version
-       ; ("htslib" ,htslib)      ; does work, but lacks codecs
-       ; ("tabixpp" ,tabixpp)    ; for htslib
-       ("bzip2-static" ,bzip2 "static")    ; libz2 part of htslib for static builds
        ("xz-static" ,xz "static")     ; for static builds
        ("zlib-static" ,zlib "static")))
     (native-inputs
      `(
        ("meson" ,meson)
        ("ninja" ,ninja)
+       ("gdb" ,gdb)
        ("pkg-config" ,pkg-config)
        ))
     (inputs
      `(
        ;; ("clang" ,clang)      ; add this to test clang builds
        ;; ("lld" ,lld)          ; add this to test clang builds
-       ("gcc" ,gcc-11)
+       ;; ("gcc" ,gcc-13)
        ("bc" ,bc)               ; for tests
        ("coreutils" ,coreutils) ; for echo and env in tests
        ("curl" ,curl)


=====================================
meson.build
=====================================
@@ -15,25 +15,29 @@
 #     meson build -Dstatic=true -Dprefer_system_deps=false --buildtype release
 
 project('freebayes', ['cpp', 'c'],
-        version : '1.3.6',
+        version : '1.3.8',
         default_options : ['warning_level=1', 'cpp_std=c++17', 'optimization=3'])
 static_build = get_option('static')
 
+# used by Debian: add_global_arguments('-D_GLIBCXX_ASSERTIONS=1', language : 'cpp')
+
 cc = meson.get_compiler('cpp')
 
-zlib_dep = dependency('zlib', static: static_build)
+# fastahack_dep = cc.find_library('libfastahack')
 lzma_dep = dependency('liblzma', static: static_build)
-thread_dep = dependency('threads', static: static_build)
+seqlib_dep = dependency('libseqlib', static: static_build, required: false)
+# smithwaterman_dep = cc.find_library('libsmithwaterman')
 tabixpp_dep = cc.find_library('tabixpp', required: false, static: static_build)
+thread_dep = dependency('threads', static: static_build)
+vcflib_dep = cc.find_library('libvcflib')
+wfa2lib_dep = cc.find_library('libwfa2')
+zlib_dep = dependency('zlib', static: static_build)
 
 # to compile htslib use
 #   meson build -Dprefer_system_deps=false
 # otherwise it tries to pick up the local system libs
 if get_option('prefer_system_deps')
   htslib_dep = dependency('htslib', static: static_build, required: false)
-  tabixpp_dep = cc.find_library('tabixpp', static: static_build, required: false)
-  vcflib_dep = dependency('libvcflib', static: static_build, required: false)
-  seqlib_dep = dependency('libseqlib', static: static_build, required: false)
 else
   # uses the local git submodules
   htslib_dep = dependency('', required : false)
@@ -45,7 +49,27 @@ endif
 # for setting a warning_level on the external code in custom_* targets below
 warn_quiet = ['warning_level=0']
 
-# optionally build from source
+# We pull in the include files because they are currently not packaged in Debian, note that we expect
+# the share libs nevertheless
+fastahack_inc = include_directories('contrib/fastahack')
+fastahack_src = files(
+    'contrib/fastahack/Fasta.cpp',
+    )
+
+multichoose_inc = include_directories('contrib/multichoose')
+multichoose_src = files(
+    )
+
+smithwaterman_inc = include_directories('contrib/smithwaterman')
+smithwaterman_src = files(
+    'contrib/smithwaterman/SmithWatermanGotoh.cpp',
+    'contrib/smithwaterman/disorder.cpp',
+    'contrib/smithwaterman/Repeats.cpp',
+    'contrib/smithwaterman/LeftAlign.cpp',
+    'contrib/smithwaterman/IndelAllele.cpp',
+    )
+
+# optionally build from source. As we unbundled just check out the vcflib repo in contrib.
 # note that the build version adds support for lzma and bzip2 in CRAM
 if not htslib_dep.found()
   htslib_inc = include_directories(
@@ -116,6 +140,9 @@ else
     tabixpp_inc = []
 endif
 
+vcflib_inc = include_directories()
+
+# optionally build from source. As we unbundled just check out the vcflib repo in contrib.
 if not vcflib_dep.found()
   vcflib_inc = include_directories(
     'contrib/vcflib/src',
@@ -129,12 +156,6 @@ if not vcflib_dep.found()
     'contrib/vcflib/src/allele.cpp',
     'contrib/vcflib/src/cigar.cpp',
     'contrib/vcflib/src/split.cpp',
-    'contrib/vcflib/contrib/fastahack/Fasta.cpp',
-    'contrib/vcflib/contrib/smithwaterman/SmithWatermanGotoh.cpp',
-    'contrib/vcflib/contrib/smithwaterman/disorder.cpp',
-    'contrib/vcflib/contrib/smithwaterman/Repeats.cpp',
-    'contrib/vcflib/contrib/smithwaterman/LeftAlign.cpp',
-    'contrib/vcflib/contrib/smithwaterman/IndelAllele.cpp',
     )
   vcflib_lib = static_library('custom_vcflib',
                               vcflib_src,
@@ -217,10 +238,10 @@ extra_cpp_args = cc.get_supported_arguments(
 freebayes_lib = static_library(
     'freebayes_common',
     freebayes_common_src,
-    include_directories : incdir,
+    include_directories : [multichoose_inc, fastahack_inc, smithwaterman_inc, incdir],
     cpp_args : extra_cpp_args,
     dependencies : [zlib_dep, lzma_dep, thread_dep, htslib_dep, tabixpp_dep,
-                    vcflib_dep, seqlib_dep],
+                    vcflib_dep, wfa2lib_dep, seqlib_dep],
     install : false,
     )
 
@@ -231,23 +252,38 @@ else
 endif
 
 executable('freebayes',
-           freebayes_src,
-           include_directories : incdir,
+           [freebayes_src,multichoose_src,fastahack_src,smithwaterman_src],
+           include_directories : [multichoose_inc, fastahack_inc, smithwaterman_inc, incdir],
            cpp_args : extra_cpp_args,
            link_args: link_arguments,
-           dependencies: [zlib_dep, lzma_dep, thread_dep,
-                          htslib_dep, tabixpp_dep, vcflib_dep, seqlib_dep],
+           dependencies: [zlib_dep,
+                          lzma_dep,
+                          thread_dep,
+                          htslib_dep,
+                          tabixpp_dep,
+                          vcflib_dep,
+                          seqlib_dep,
+                          # fastahack_dep,
+                          # smithwaterman_dep,
+                          wfa2lib_dep],
            link_with : freebayes_lib,
            install: true
           )
 
 executable('bamleftalign',
-           bamleftalign_src,
-           include_directories : incdir,
+           [bamleftalign_src,fastahack_src,smithwaterman_src],
+           include_directories : [multichoose_inc, fastahack_inc, smithwaterman_inc, incdir],
            cpp_args : extra_cpp_args,
            link_args: link_arguments,
-           dependencies: [zlib_dep, lzma_dep, thread_dep,
-                          htslib_dep, vcflib_dep, seqlib_dep],
+           dependencies: [zlib_dep,
+                          lzma_dep,
+                          thread_dep,
+                          htslib_dep,
+                          vcflib_dep,
+                          seqlib_dep,
+                          # fastahack_dep,
+                          # smithwaterman_dep,
+                          wfa2lib_dep],
            link_with : freebayes_lib,
            install: true
           )


=====================================
src/BedReader.cpp
=====================================
@@ -11,7 +11,7 @@
 #include "Utility.h"
 #include "BedReader.h"
 #include "Logging.h"
-#include "../intervaltree/IntervalTree.h"
+#include <IntervalTree.h>
 
 using namespace std;
 


=====================================
src/BedReader.h
=====================================
@@ -9,7 +9,7 @@
 #include <map>
 #include <iterator>
 #include <algorithm>
-#include "../intervaltree/IntervalTree.h"
+#include <IntervalTree.h>
 #include "split.h"
 
 using namespace std;


=====================================
src/version_git.h
=====================================
@@ -1,4 +1,4 @@
 #ifndef VERSION_GIT_H
 #define VERSION_GIT_H
-#define VERSION_GIT "v1.3.7"
+#define VERSION_GIT "v1.3.8"
 #endif /* VERSION_GIT_H */


=====================================
test/t/01_call_variants.t
=====================================
@@ -78,29 +78,30 @@ is $(samtools view tiny/NA12878.chr22.tiny.bam | wc -l) $(freebayes -f tiny/q.fa
 is $(freebayes -f tiny/q.fa tiny/NA12878.chr22.tiny.bam -d 2>&1 | grep ^alignment: | wc -l) $(freebayes -f tiny/q.fa tiny/NA12878.chr22.tiny.cram -d 2>&1 | grep ^alignment: | wc -l) "freebayes processes all alignments in CRAM input"
 
 # Add a regression test
-$(freebayes -f tiny/q.fa tiny/NA12878.chr22.tiny.bam 2>&1 |egrep -vi "source|filedate|RPPR=7.64277|11126|10515" > regression/NA12878.chr22.tiny.vcf)
+$(freebayes -f tiny/q.fa tiny/NA12878.chr22.tiny.bam 2>&1 |grep -vEi "source|filedate|RPPR=7.64277|11126|10515" > regression/NA12878.chr22.tiny.vcf)
 
 # ensure targeting works even when there are no reads
 is $(freebayes -f tiny/q.fa -l@ tiny/q.vcf.gz tiny/NA12878.chr22.tiny.bam | grep -v "^#" | wc -l) 16 "freebayes correctly handles variant input"
 
 # ensure that positions at which no variants exist get put in the out vcf
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 3 "freebayes puts required variants in output"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 3 "freebayes puts required variants in output"
+
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz tiny/NA12878.chr22.tiny.bam -l | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 3 "freebayes limits calls to input variants correctly"
 
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz tiny/NA12878.chr22.tiny.bam -l | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 3 "freebayes limits calls to input variants correctly"
 
 is $(freebayes -f tiny/q.fa -@ tiny/q.vcf.gz -l tiny/1read.bam | grep -v "^#" | wc -l) 16 "freebayes reports all input variants even when there is no input data"
 
 # check variant input with region specified
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 2 "freebayes handles region and variant input"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 2 "freebayes handles region and variant input"
 
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 tiny/NA12878.chr22.tiny.bam -l | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t1000$)" | wc -l) 2 "freebayes limits to variant input correctly when region is given"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 tiny/NA12878.chr22.tiny.bam -l | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t1000$' | wc -l) 2 "freebayes limits to variant input correctly when region is given"
 
 # check variant input when reading from stdin
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 3 "freebayes handles variant input and reading from stdin"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 3 "freebayes handles variant input and reading from stdin"
 
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -l --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 3 "freebayes limits to variant input when reading from stdin"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -l --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 3 "freebayes limits to variant input when reading from stdin"
 
-is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 -l --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t1000$)" | wc -l) 2 "freebayes handles region, stdin, and variant input"
+is $(freebayes -f tiny/q.fa -@ tiny/q_spiked.vcf.gz -r q:1-10000 -l --stdin < tiny/NA12878.chr22.tiny.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t1000$' | wc -l) 2 "freebayes handles region, stdin, and variant input"
 
 gzip -c tiny/q.fa >tiny/q.fa.gz
 cp tiny/q.fa.fai tiny/q.fa.gz.fai


=====================================
test/t/01b_call_variants.t
=====================================
@@ -18,7 +18,7 @@ is $(freebayes -f tiny/q.fa tiny/NA12878.chr22.tiny.bam | grep -v "^#" | wc -l)
 is $(freebayes -f 'tiny/q with spaces.fa' tiny/NA12878.chr22.tiny.bam | grep -v "^#" | wc -l) $(freebayes-parallel 'tiny/q with spaces.regions' 2 -f 'tiny/q\ with\ spaces.fa' tiny/NA12878.chr22.tiny.bam | grep -v "^#" | wc -l) "freebayes handles spaces in file names"
 
 # check input can hand colons in name like the HLA contigs in GRCh38
-is $(freebayes -f tiny/hla.fa -@ tiny/hla.vcf.gz -r HLA-DRB1*16:02:01:1-10000 tiny/NA12878.chr22.tiny.hla.bam | grep -v "^#" | cut -f1,2 | grep -P "(\t500$|\t11000$|\t1000$)" | wc -l) 2 "freebayes handles region and variant input even with : in contig names"
+is $(freebayes -f tiny/hla.fa -@ tiny/hla.vcf.gz -r HLA-DRB1*16:02:01:1-10000 tiny/NA12878.chr22.tiny.hla.bam | grep -v "^#" | cut -f1,2 | grep $'\t500$\|\t11000$\|\t1000$' | wc -l) 2 "freebayes handles region and variant input even with : in contig names"
 
 is $(freebayes -f splice/1:883884-887618.fa splice/1:883884-887618.bam -F 0.05 -C 1 | grep ^1 | wc -l) 3 "freebayes can handle spliced reads"
 



View it on GitLab: https://salsa.debian.org/med-team/freebayes/-/commit/96243c4d051a11617ba65f357f54e9379ff5b37a

-- 
View it on GitLab: https://salsa.debian.org/med-team/freebayes/-/commit/96243c4d051a11617ba65f357f54e9379ff5b37a
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20250215/07f822c3/attachment-0001.htm>


More information about the debian-med-commit mailing list