diff --git a/LifeSciences/README.md b/LifeSciences/README.md index 477bac193c5672fa4b470a8d1102286688d7c944..d5d99cde00f342491944e301da630fe2a626665f 100644 --- a/LifeSciences/README.md +++ b/LifeSciences/README.md @@ -28,3 +28,4 @@ Life Sciences Software List: - repositories: fsl-6.0.5.2 - repositories: freesurfer-7.2 - repositories: BUSCO-5.2.2 +- repositories: gridss-2.13.2 diff --git a/LifeSciences/gridss-2.13.2/build.sh b/LifeSciences/gridss-2.13.2/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..d1b6e17498bd13dda190cde314be9e77bbee5fba --- /dev/null +++ b/LifeSciences/gridss-2.13.2/build.sh @@ -0,0 +1,103 @@ +#!/bin/bash +# 此脚本用来编译安装gridss-2.13.2软件 +# gridss-2.13.2软件介绍 +# GRIDSS是一个模块软件套件,其中包含可用于检测基因组重排的工具。 +# Usage: +# bash /path/to/build.sh /path/to/build /path/to/install +# 使用build.sh 脚本样例 bash /path/to/build.sh /path/to/build /path/to/install +# 使用build.sh 需要root权限或者sudo权限,否则无法安装依赖 +# +############################################################## + +if [[ $# -ne 2 ]]; then + echo "The format is as follows:" + echo "bash build.sh buildpath installpath" + echo ":param buildpath: 应用构建绝对路径" + echo ":param installpath: 应用安装绝对路径" + exit 1 +fi + +[[ ! "$1" =~ ^/.* || "$1" = "/" ]] && echo "请输入正确的构建路径" && exit 1 +[[ ! "$2" =~ ^/.* || "$2" = "/" ]] && echo "请输入正确的安装路径" && exit 1 + +create_dir() +{ + local path=$1 + [[ "$path" =~ .*/$ ]] && path=${path%/*} + if [[ ! -d "$path" && ! -f "$path" ]]; then mkdir -p $path; else path=$path`date "+%y%m%d%H%M%S"` && mkdir -p $path; fi + echo $path +} + +buildpath=$(create_dir $1) +installpath=$(create_dir $2) + +yum install -y m4 bc zlib-devel zlib environment-modules systemd-devel +source /etc/profile +module purge + +set -e +dep_dir="dependency" + bash $dep_dir/bisheng-compiler-2.1.0.sh $buildpath $installpath + module use $installpath/bisheng-compiler-2.1.0 + module load $installpath/bisheng-compiler-2.1.0/bisheng_modulefiles + + bash $dep_dir/bisheng-jdk-8u322.sh $buildpath $installpath + module use $installpath/bisheng-jdk-8u322 + module load $installpath/bisheng-jdk-8u322/jdk_modulefiles + + bash $dep_dir/bwa-0.7.17.sh $buildpath $installpath + module use $installpath/bwa-0.7.17 + module load $installpath/bwa-0.7.17/bwa_modulefiles + + bash $dep_dir/R-4.2.0.sh $buildpath $installpath + module use $installpath/R-4.2.0 + module load $installpath/R-4.2.0/R-4.2.0_modulefiles + + bash $dep_dir/samtools-1.15.1.sh $buildpath $installpath + module use $installpath/samtools-1.15.1 + module load $installpath/samtools-1.15.1/samtools_modulefiles + + bash gridss-2.13.2.sh $buildpath $installpath + mkdir -p pkg/gridss-2.13.2-hpc && cp -r $installpath/* pkg/gridss-2.13.2-hpc/ + + rm -rf pkg/gridss-2.13.2-hpc/R-4.2.0 + cp $dep_dir/R-4.2.0.sh pkg/gridss-2.13.2-hpc/ + + cat >"pkg/gridss-2.13.2-hpc/run.sh" </dev/null + +current_dir=\$(cd "\$(dirname "\${BASH_SOURCE[0]}")" &> /dev/null && pwd) +for d in \$(ls \$current_dir) +do + [[ ! \$d =~ "scripts" && ! -f "\$current_dir/\$d" ]] && cd \$current_dir/\$d && module use \$(pwd) && module load \$(pwd)/*modulefiles +done + +# 编译 R 并初始化其环境变量 +mkdir "\${current_dir}"/build +bash "\${current_dir}"/R-4.2.0.sh "\${current_dir}"/build "\${current_dir}" +module use "\${current_dir}"/R-4.2.0 +module load "\${current_dir}"/R-4.2.0/R-4.2.0_modulefiles +rm -rf "\${current_dir}"/build + +echo -e "\033[1;32;1mgridss environment initialization completed.\033[0m" + +EOF + + chmod +x pkg/gridss-2.13.2-hpc/run.sh + + echo "# 正在打包 gridss 文件 路径为$1" + cd pkg && tar -zcf gridss-2.13.2-hpc.tar.gz gridss-2.13.2-hpc + echo -e "\033[1;32;1m# gridss 已经打包成功 文件路径为$1/gridss-2.13.2-hpc.tar.gz\033[0m" + + echo " # ------------------------------------------------------------------------" + echo "# 运行软件前请执行以下命令" + echo -e "\033[1;32;1m# source pkg/gridss-2.13.2-hpc/run.sh\033[0m" + echo "# 来加载 gridss 运行时环境变量" + echo "# ------------------------------------------------------------------------" + rm -rf "$buildpath" "$installpath" diff --git a/LifeSciences/gridss-2.13.2/dependency/R-4.2.0.sh b/LifeSciences/gridss-2.13.2/dependency/R-4.2.0.sh new file mode 100644 index 0000000000000000000000000000000000000000..bbb2e49b0b7162ed1507d87d5f827bfdf8915f2b --- /dev/null +++ b/LifeSciences/gridss-2.13.2/dependency/R-4.2.0.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +if [[ $# -ne 2 ]]; then + echo "The format is as follows:" + echo "bash bwa-0.7.17.sh buildpath installpath" + echo ":param buildpath: 应用构建绝对路径" + echo ":param installpath: 应用安装绝对路径" + exit 1 +fi + +[[ ! "$1" =~ ^/.* || ! -d "$1" || "$1" = "/" ]] && echo "请输入正确的构建路径" && exit 1 +[[ ! "$2" =~ ^/.* || ! -d "$2" || "$2" = "/" ]] && echo "请输入正确的安装路径" && exit 1 + +buildpath=$1 +installpath=$2 +[[ "$buildpath" =~ .*/$ ]] && buildpath=${buildpath%/*} +[[ "$installpath" =~ .*/$ ]] && installpath=${installpath%/*} +[[ "$buildpath" == "$installpath" ]] && echo "构建路径与安装路径需为不同路径" && exit 1 +set -e +sudo yum install -y wget tar environment-modules libatomic readline-devel libXt-devel \ + bzip2-devel xz-devel libcurl-devel glibc-headers gcc-c++ pcre* + source /etc/profile + + echo "# R正在下载" + wget -t 0 -T 20 -c -P $buildpath http://mirror.bjtu.edu.cn/cran/src/base/R-4/R-4.2.0.tar.gz + if [[ $? -eq 0 ]]; then + echo -e "\033[1;32;1m# R已经下载成功\033[0m" + else + echo -e "\033[31m# R下载失败,请重新执行脚本\033[0m" + exit 1 + fi + + echo "# R 正在安装" + tar -xzf $buildpath/R-4.2.0.tar.gz -C $buildpath && rm -rf $buildpath/R-4.2.0.tar.gz + cd $buildpath/R-4.2.0 + FC=flang CC=clang CXX=clang++ ./configure --enable-R-shlib=yes --with-tcltk --prefix=$installpath/R-4.2.0 + make -j"$(nproc)" && make install + echo -e "\033[1;32;1m# R 已经安装完毕\033[0m" + + cat >"$installpath/R-4.2.0/R-4.2.0_modulefiles" <"$installpath/bisheng-compiler-2.1.0/bisheng_modulefiles" <"$installpath/bisheng-jdk-8u322/jdk_modulefiles" <"$installpath/bwa-0.7.17/bwa_modulefiles" <"$installpath/samtools-1.15.1/samtools_modulefiles" <"$installpath/gridss-2.13.2/gridss_modulefiles" <