diff --git a/HPC/image-list.yml b/HPC/image-list.yml index 9c689fcee03e5e5da2f05067bea8e19c90e882f1..2b6995d59adf86e3936e82d607fa5c6e8523a5ac 100644 --- a/HPC/image-list.yml +++ b/HPC/image-list.yml @@ -12,3 +12,4 @@ images: mne: mne nemo: nemo lammps: lammps + lumpy: lumpy diff --git a/HPC/lumpy/0.3.1/24.03-lts-sp1/Dockerfile b/HPC/lumpy/0.3.1/24.03-lts-sp1/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..99c43f892824153284e7cdc7c114dbdeea3e0398 --- /dev/null +++ b/HPC/lumpy/0.3.1/24.03-lts-sp1/Dockerfile @@ -0,0 +1,26 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp1 +FROM ${BASE} + +ARG VERSION=0.3.1 + +RUN yum install -y git make gcc g++ clang automake zlib-devel libcurl-devel openssl-devel wget && \ + yum clean all + +WORKDIR /opt/ +# install required autoconf version +RUN rpm -e --nodeps autoconf && \ + wget https://mirrors.aliyun.com/gnu/autoconf/autoconf-2.69.tar.gz && \ + tar -xzf autoconf-2.69.tar.gz && rm -rf autoconf-2.69.tar.gz && \ + cd autoconf-2.69 && \ + ./configure && \ + make && make install + +COPY lumpy.patch /opt/ +RUN git clone --recursive -b v${VERSION} https://github.com/arq5x/lumpy-sv.git && \ + cd /opt/lumpy-sv/lib/htslib/ && \ + autoreconf -i && ./configure --disable-bz2 --disable-lzma --enable-libcurl && \ + make && make install && \ + cd /opt/lumpy-sv && \ + mv /opt/lumpy.patch ./ && \ + git apply lumpy.patch && \ + make && cp bin/* /usr/local/bin/ diff --git a/HPC/lumpy/0.3.1/24.03-lts-sp1/lumpy.patch b/HPC/lumpy/0.3.1/24.03-lts-sp1/lumpy.patch new file mode 100644 index 0000000000000000000000000000000000000000..e9ca498fe6a1bafcf9a6563fd246a16fcb5771e5 --- /dev/null +++ b/HPC/lumpy/0.3.1/24.03-lts-sp1/lumpy.patch @@ -0,0 +1,63 @@ +diff --git a/Makefile b/Makefile +index 9b206fc..8b94c94 100644 +--- a/Makefile ++++ b/Makefile +@@ -64,17 +64,17 @@ lumpy: + echo ""; \ + done + +-lumpy_filter: htslib ++lumpy_filter: + [ -d $(BIN_DIR) ] || mkdir -p $(BIN_DIR) + $(MAKE) --no-print-directory -C src/filter/ + cp src/filter/lumpy_filter $(BIN_DIR) + + +-htslib: +- $(shell cd lib/htslib && autoreconf) +- cd lib/htslib && \ +- ./configure --disable-bz2 --disable-lzma --enable-libcurl +- CFLAGS="$(CFLAGS) -DBGZF" $(MAKE) -C lib/htslib --no-print-directory CFLAGS="-DBGZF_MT" ++#htslib: ++# cd lib/htslib && autoreconf ++# cd lib/htslib && \ ++# ./configure --disable-bz2 --disable-lzma --enable-libcurl ++# CFLAGS="$(CFLAGS) -DBGZF" $(MAKE) -C lib/htslib --no-print-directory CFLAGS="-DBGZF_MT" + + lumpyexpress: + [ -d $(BIN_DIR) ] || mkdir -p $(BIN_DIR) +diff --git a/src/utils/BamTools/src/api/algorithms/Sort.h b/src/utils/BamTools/src/api/algorithms/Sort.h +index 32902e1..754df63 100644 +--- a/src/utils/BamTools/src/api/algorithms/Sort.h ++++ b/src/utils/BamTools/src/api/algorithms/Sort.h +@@ -76,7 +76,7 @@ struct API_EXPORT Sort { + { } + + // comparison function +- bool operator()(const BamTools::BamAlignment& lhs, const BamTools::BamAlignment& rhs) { ++ bool operator()(const BamTools::BamAlignment& lhs, const BamTools::BamAlignment& rhs) const { + return sort_helper(m_order, lhs.Name, rhs.Name); + } + +@@ -112,7 +112,7 @@ struct API_EXPORT Sort { + { } + + // comparison function +- bool operator()(const BamTools::BamAlignment& lhs, const BamTools::BamAlignment& rhs) { ++ bool operator()(const BamTools::BamAlignment& lhs, const BamTools::BamAlignment& rhs) const { + + // force unmapped aligmnents to end + if ( lhs.RefID == -1 ) return false; +diff --git a/src/utils/BamTools/src/api/internal/bam/BamMultiMerger_p.h b/src/utils/BamTools/src/api/internal/bam/BamMultiMerger_p.h +index 3000097..ceac8ed 100644 +--- a/src/utils/BamTools/src/api/internal/bam/BamMultiMerger_p.h ++++ b/src/utils/BamTools/src/api/internal/bam/BamMultiMerger_p.h +@@ -61,7 +61,7 @@ struct MergeItemSorter : public std::binary_function + : m_comp(comp) + { } + +- bool operator()(const MergeItem& lhs, const MergeItem& rhs) { ++ bool operator()(const MergeItem& lhs, const MergeItem& rhs) const { + const BamAlignment& l = *lhs.Alignment; + const BamAlignment& r = *rhs.Alignment; + return m_comp(l,r); diff --git a/HPC/lumpy/README.md b/HPC/lumpy/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2087cff14ce4fe62656371944eed039c864056fa --- /dev/null +++ b/HPC/lumpy/README.md @@ -0,0 +1,79 @@ +# Quick reference + +- The official lumpy-sv container image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). +# lumpy-sv | openEuler +Current lumpy-sv docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +lumpy-sv is a general probabilistic framework for structural variant discovery. + +Learn more on [lumpy-sv website](https://github.com/arq5x/lumpy-sv). + + +# Supported tags and respective Dockerfile links +The tag of each lumpy-sv container image is consist of the version of lumpy-sv and the version of basic image. The details are as follows + +| Tags | Currently | Architectures| +|------|-----------|---------------| +|[0.3.1-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/HPC/lumpy-sv/0.3.1/24.03-lts-sp1/Dockerfile)| lumpy-sv 0.3.1 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + + +# Usage +- Pull the `openeuler/lumpy-sv` image from `hub.docker.com` + ``` + docker pull openeuler/lumpy-sv:{Tag} + ``` +- Start a `lumpy-sv` instance + ``` + docker run -it --name my-lumpy-sv openeuler/lumpy-sv:{Tag} + ``` + + Now, you can use lumpy by your requirements. + + Flexible and customizable breakpoint detection for advanced users. + ``` + usage: lumpy [options] + ``` + **Options** + ``` + -g Genome file (defines chromosome order) + -e Show evidence for each call + -w File read windows size (default 1000000) + -mw minimum weight across all samples for a call + -msw minimum per-sample weight for a call + -tt trim threshold + -x exclude file bed file + -t temp file prefix, must be to a writeable directory + -P output probability curve for each variant + -b output as BEDPE instead of VCF + + -sr bam_file:, + id:, + back_distance:, + min_mapping_threshold:, + weight:, + min_clip:, + read_group: + + -pe bam_file:, + id:, + histo_file:, + mean:, + stdev:, + read_length:, + min_non_overlap:, + discordant_z:, + back_distance:, + min_mapping_threshold:, + weight:, + read_group: + + -bedpe bedpe_file:, + id:, + weight: + ``` +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/HPC/lumpy/doc/image-info.yml b/HPC/lumpy/doc/image-info.yml new file mode 100644 index 0000000000000000000000000000000000000000..a58e06ec048fc3fb7a6a4effbe8a9e663f101a45 --- /dev/null +++ b/HPC/lumpy/doc/image-info.yml @@ -0,0 +1,75 @@ +name: lumpy-sv +category: hpc +description: lumpy-sv是一个发现结构变异的概率框架。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + lumpy-sv镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tags | Currently | Architectures| + |------|-----------|---------------| + |[0.3.1-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/HPC/lumpy-sv/0.3.1/24.03-lts-sp1/Dockerfile)| lumpy-sv 0.3.1 on openEuler 24.03-LTS-SP1 | amd64, arm64 | +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/lumpy-sv:{Tag} + ``` +usage: | + - 拉取镜像 + + ``` + docker pull openeuler/lumpy-sv:{Tag} + ``` + 用户可根据自身需求选择对应版本的{Tag}、容器启动的选项。 + + - 运行容器 + + ``` + docker run -it --name my-lumpy-sv openeuler/lumpy-sv:{Tag} + ``` + 使用`lumpy --help`查看具体功能: + ``` + -g Genome file (defines chromosome order) + -e Show evidence for each call + -w File read windows size (default 1000000) + -mw minimum weight across all samples for a call + -msw minimum per-sample weight for a call + -tt trim threshold + -x exclude file bed file + -t temp file prefix, must be to a writeable directory + -P output probability curve for each variant + -b output as BEDPE instead of VCF + + -sr bam_file:, + id:, + back_distance:, + min_mapping_threshold:, + weight:, + min_clip:, + read_group: + + -pe bam_file:, + id:, + histo_file:, + mean:, + stdev:, + read_length:, + min_non_overlap:, + discordant_z:, + back_distance:, + min_mapping_threshold:, + weight:, + read_group: + + -bedpe bedpe_file:, + id:, + weight: + ``` +license: N/A +similar_packages: + - N/A +dependency: + - htslib diff --git a/HPC/lumpy/doc/picture/logo.png b/HPC/lumpy/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..761cf5b58ffe2f8d6ecd5130d247b639eaf1483e Binary files /dev/null and b/HPC/lumpy/doc/picture/logo.png differ diff --git a/HPC/lumpy/meta.yml b/HPC/lumpy/meta.yml new file mode 100644 index 0000000000000000000000000000000000000000..683bf0c4f2fa077cf5f925801754bbdf631131e6 --- /dev/null +++ b/HPC/lumpy/meta.yml @@ -0,0 +1,2 @@ +0.3.1-oe2403sp1: + path: 0.3.1/24.03-lts-sp1/Dockerfile \ No newline at end of file