diff --git a/LifeSciences/README.md b/LifeSciences/README.md index b23349c0f656a9163565eab0cf61879fe87342cc..88b8a0a62b65705f3909cc1f546a58fbf7c1688c 100644 --- a/LifeSciences/README.md +++ b/LifeSciences/README.md @@ -42,3 +42,4 @@ Life Sciences Software List: - repositories: bismark-0.16.2 - repositories: primer3-2.6.1 - repositories: relion-3.1.2 +- repositories: sratoolkit-3.0.0 diff --git a/LifeSciences/sratoolkit-3.0.0/bmutil.h.patch b/LifeSciences/sratoolkit-3.0.0/bmutil.h.patch new file mode 100644 index 0000000000000000000000000000000000000000..f6965b92e1bcf401ba3223b6bab7642e82d23171 --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/bmutil.h.patch @@ -0,0 +1,47 @@ +--- bmutil.h 2022-02-11 06:00:25.000000000 +0800 ++++ bmutil-fix.h 2022-09-09 05:31:00.876080190 +0800 +@@ -233,15 +233,41 @@ + unsigned bsf_asm32(unsigned int v) BMNOEXCEPT + { + unsigned r; +- asm volatile(" bsfl %1, %0": "=r"(r): "rm"(v) ); ++#if defined(__x86_64__) ++ asm volatile(" bsfl %1, %0": "=r"(r): "rm"(v) ); ++ ++#elif defined(__aarch64__) ++ { ++ unsigned int *memAddr_E0=(unsigned int*)(&v); ++ if (*memAddr_E0 == 0) { ++ r = 0; ++ } else { ++ r = __builtin_ctz(*memAddr_E0); ++ } ++ } ++ ++#endif + return r; + } +- ++ + BMFORCEINLINE + unsigned bsr_asm32(unsigned int v) BMNOEXCEPT + { + unsigned r; +- asm volatile(" bsrl %1, %0": "=r"(r): "rm"(v) ); ++#if defined(__x86_64__) ++ asm volatile(" bsrl %1, %0": "=r"(r): "rm"(v) ); ++ ++#elif defined(__aarch64__) ++ { ++ unsigned int *memAddr_E0=(unsigned int*)(&v); ++ if (*memAddr_E0 == 0) { ++ r = 0; ++ } else { ++ r = 31 - __builtin_clz(*memAddr_E0); ++ } ++ } ++ ++#endif + return r; + } + diff --git a/LifeSciences/sratoolkit-3.0.0/build.sh b/LifeSciences/sratoolkit-3.0.0/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..4245daeabd8f0e005ac5e8b134e32145ed36f504 --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/build.sh @@ -0,0 +1,84 @@ +#!/bin/bash +# 此脚本用来编译安装sratoolkit-3.0.0软件 +# sratoolkit软件介绍 +# sratoolkit用于sra文件处理的软件包。 +# 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权限,否则无法安装依赖 +# +############################################################## +set -e + +source "$( + cd "$(dirname "$0")" || exit 1 + pwd +)/common.sh" + +function write_sratoolkit_run() { + cat >"$1/sratoolkit-3.0.0-hpc/run.sh" < /dev/null +current_dir="\$(cd "\$(dirname "\${BASH_SOURCE[0]}")" && pwd -P)" +for f in "\${current_dir}"/*; do + if [[ -d "\${f}" && -f "\$(ls "\${f}"/*modulefiles 2>&1)" ]]; then + module use "\${f}" && module load "\${f}"/*modulefiles + fi +done +echo -e "\033[1;32;1msratoolkit environment initialization completed.\033[0m" +EOF + + chmod +x "$1"/sratoolkit-3.0.0-hpc/run.sh +} + +function install_kunpeng-gcc() { + bash "$1"/kunpeng-gcc-10.3.1.sh "$2" "$3" + module use "$3"/kunpeng-gcc-10.3.1 + module load "$3"/kunpeng-gcc-10.3.1/kunpeng-gcc_modulefiles +} + +function install_ncbi-vdb() { + bash "$1"/ncbi-vdb-3.0.0.sh "$2" "$3" + module use "$3"/ncbi-vdb-3.0.0 + module load "$3"/ncbi-vdb-3.0.0/ncbi-vdb_modulefiles +} + +function install_sratoolkit() { + bash "$4"/sratoolkit-3.0.0.sh "$1" "$2" + mkdir -p "$3"/sratoolkit-3.0.0-hpc && cp -r "$2"/* "$3"/sratoolkit-3.0.0-hpc/ +} + +function tar_pkg() { + echo "# 正在打包sratoolkit文件 路径为$1" + cd "$1" && tar zcvf sratoolkit-3.0.0-hpc.tar.gz sratoolkit-3.0.0-hpc + echo -e "\033[1;32;1m# sratoolkit已经打包成功 文件路径为$1/sratoolkit-3.0.0-hpc.tar.gz\033[0m" +} + +function install_development() { + yum install -y m4 environment-modules systemd-devel + source /etc/profile + module purge +} + +function main() { + is_check_build_install_directory "$1" "$2" "build.sh" + buildpath=$(create_dir "$1") + installpath=$(create_dir "$2") + dep_dir=$(get_current_dir)/dependency + pkg_dir=$(get_current_dir)/pkg + install_development + install_kunpeng-gcc "$dep_dir" "$buildpath" "$installpath" + install_ncbi-vdb "$dep_dir" "$buildpath" "$installpath" + install_sratoolkit "$buildpath" "$installpath" "$pkg_dir" "$(get_current_dir)" + write_sratoolkit_run "$pkg_dir" + tar_pkg "$pkg_dir" + echo "# ------------------------------------------------------------------------" + echo "# 运行软件前请执行以下命令" + echo -e "\033[1;32;1m# source ""${pkg_dir}""/sratoolkit-3.0.0-hpc/run.sh\033[0m" + echo "# 来加载sratoolkit运行时环境变量" + echo "# ------------------------------------------------------------------------" + rm -rf "$buildpath" "$installpath" +} + +main "$@" diff --git a/LifeSciences/sratoolkit-3.0.0/ccsra.c.patch b/LifeSciences/sratoolkit-3.0.0/ccsra.c.patch new file mode 100644 index 0000000000000000000000000000000000000000..82466b432c98cb2d6f37121370b8204c499cf713 --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/ccsra.c.patch @@ -0,0 +1,206 @@ +--- ccsra.c 2022-08-10 11:38:16.567854870 +0800 ++++ ccsra-fix.c 2022-08-10 11:38:14.695854870 +0800 +@@ -73,6 +73,23 @@ + return (strncmp (self->sub_name, path, self->name_size + 1) == 0); + } + ++static rc_t CCNodeSraDirVLegalPath (const CCNodeSraDir * self, ++ const char *path_fmt, ++ va_list args) ++{ ++ char buffer[4096]; ++ char const *const path = strchr(path_fmt, '%') == NULL ? path_fmt : buffer; ++ ++ if (path != path_fmt) { ++ int const size = vsnprintf ( buffer, sizeof buffer, path_fmt, args ); ++ if ( size < 0 || size >= (int) sizeof buffer ) ++ return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); ++ } ++ return CCNodeSraDirLegalPath(self, path) ++ ? 0 ++ : RC(rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); ++} ++ + /* ---------------------------------------------------------------------- + * CCNodeSraDirDestroy + */ +@@ -208,12 +225,15 @@ + const char *path_fmt, + va_list args) + { +- char path[4096]; +- int size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( size < 0 || size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); ++ char buffer[4096]; ++ bool const needFmt = strchr(path_fmt, '%') != NULL; ++ char const *const path = needFmt ? buffer : path_fmt; ++ ++ if (needFmt) { ++ int const size = vsnprintf ( buffer, sizeof buffer, path_fmt, args ); ++ if ( size < 0 || size >= (int) sizeof buffer ) ++ return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); ++ } + if (absolute && (path[0] != '/')) + { + string_printf (resolved, rsize, NULL, "/%s", path); +@@ -431,33 +451,17 @@ + const char *path_fmt, + va_list args) + { +- rc_t rc; +- char path[4096]; +- int size; +- +- assert (self != NULL); +- assert (f != NULL); +- assert (path_fmt != NULL); +- +- size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( size < 0 || size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); ++ rc_t rc = CCNodeSraDirVLegalPath(self, path_fmt, args); + +- if (CCNodeSraDirLegalPath (self, path)) ++ *f = NULL; ++ if (rc == 0) + { + rc = KFileAddRef (self->file); + if (rc == 0) + { + *f = self->file; +- return 0; + } +- return rc; + } +- else +- rc = RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); +- *f = NULL; + return rc; + } + +@@ -535,23 +539,12 @@ + const char *path_fmt, + va_list args) + { +- char path[4096]; +- int size; +- + assert (self != NULL); + assert (locator != NULL); + assert (path_fmt != NULL); + +- size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( size < 0 || size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); +- + *locator = 0; /* undefined for this situation */ +- if (CCNodeSraDirLegalPath (self, path)) +- return 0; +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); ++ return CCNodeSraDirVLegalPath(self, path_fmt, args); + } + + /* ---------------------------------------------------------------------- +@@ -570,24 +563,16 @@ + const char *path_fmt, + va_list args) + { +- char path[4096]; +- int path_size; ++ rc_t rc = 0; + + assert (self != NULL); + assert (size != NULL); + assert (path_fmt != NULL); + +- path_size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( path_size < 0 || path_size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); +- +- if (CCNodeSraDirLegalPath (self, path)) +- return (KFileSize (self->file, size)); /* we have to assume physical and logical size are the same */ +- + *size = 0; +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); ++ if ((rc = CCNodeSraDirVLegalPath(self, path_fmt, args)) == 0) ++ rc = (KFileSize (self->file, size)); /* we have to assume physical and logical size are the same */ ++ return rc; + } + + /* ---------------------------------------------------------------------- +@@ -606,24 +591,7 @@ + const char *path_fmt, + va_list args) + { +- char path[4096]; +- int path_size; +- +- assert (self != NULL); +- assert (size != NULL); +- assert (path_fmt != NULL); +- +- path_size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( path_size < 0 || path_size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); +- +- if (CCNodeSraDirLegalPath (self, path)) +- return (KFileSize (self->file, size)); /* we have to assume physical and logical size are the same */ +- +- *size = 0; +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); ++ return CCNodeSraDirFileSize(self, size, path_fmt, args); + } + + /* ---------------------------------------------------------------------- +@@ -750,26 +718,14 @@ + const char *path_fmt, + va_list args) + { +- char path[4096]; +- int size; ++ rc_t rc = 0; + + assert (self); + assert (contiguous); + assert (path_fmt); + +- size = args ? +- vsnprintf ( path, sizeof path, path_fmt, args ) : +- snprintf ( path, sizeof path, "%s", path_fmt ); +- if ( size < 0 || size >= (int) sizeof path ) +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcExcessive ); +- +- if (CCNodeSraDirLegalPath (self, path)) +- { +- *contiguous = true; +- return 0; +- } +- *contiguous = false; +- return RC (rcFS, rcNoTarg, rcAccessing, rcPath, rcNotFound); ++ *contiguous = ((rc = CCNodeSraDirVLegalPath(self, path_fmt, args)) == 0); ++ return rc; + } + + +@@ -1022,8 +978,8 @@ + + if (type & kptAlias) + { +- rc = KDirectoryVResolveAlias (dir, false, link, sizeof (link), +- path, NULL); ++ rc = KDirectoryResolveAlias (dir, false, link, sizeof (link), ++ "%s", path); + if (rc == 0) + linklen = strlen (link); + } diff --git a/LifeSciences/sratoolkit-3.0.0/common.sh b/LifeSciences/sratoolkit-3.0.0/common.sh new file mode 100644 index 0000000000000000000000000000000000000000..4f83767e57eb4f8b403455e8402dd0fc398d466c --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/common.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +function is_check_build_install_directory() { + if [[ $# -ne 3 ]]; then + echo "The format is as follows:" + echo "bash $3 buildpath installpath" + echo ":param buildpath: 应用构建绝对路径" + echo ":param installpath: 应用安装绝对路径" + exit 1 + fi + + [[ ! "$1" =~ ^/.* || "$1" = "/" ]] && echo "请输入正确的构建路径" && exit 1 + [[ ! "$2" =~ ^/.* || "$2" = "/" ]] && echo "请输入正确的安装路径" && exit 1 + echo "# ------------------------------------------------------------------------" + echo "# $3 正在运行" +} + +function is_check_build_equal() { + local buildpath + local installpath + buildpath="$1" + installpath="$2" + [[ "${buildpath}" =~ .*/$ ]] && buildpath=${buildpath%/*} + [[ "${installpath}" =~ .*/$ ]] && installpath=${installpath%/*} + [[ "${buildpath}" == "${installpath}" ]] && echo "构建路径与安装路径需为不同路径" && exit 1 + echo "# 构建路径为$1" + echo "# 安装路径为$2" +} + +function create_dir() { + local path + path="$1" + [[ "$path" =~ .*/$ ]] && path=${path%/*} + if [[ ! -d "${path}" && ! -f "${path}" ]]; then + mkdir -p "${path}" + elif [[ -n "$(ls -A "$1")" ]]; then + path=$path$(date "+%y%m%d%H%M%S") && mkdir -p "${path}" + fi + echo "${path}" +} + +function get_current_dir() { + local current_dir + current_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd) + echo "${current_dir}" +} diff --git a/LifeSciences/sratoolkit-3.0.0/dependency/kunpeng-gcc-10.3.1.sh b/LifeSciences/sratoolkit-3.0.0/dependency/kunpeng-gcc-10.3.1.sh new file mode 100644 index 0000000000000000000000000000000000000000..266ee6f0582c0c7faad5ca3c9dc9519bc3cd37b2 --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/dependency/kunpeng-gcc-10.3.1.sh @@ -0,0 +1,62 @@ +#!/bin/bash +set -e + +source "$( + cd "$(dirname "$0")" || exit 1 + pwd +)/../common.sh" + +function download_kunpeng-gcc() { + echo "# kunpeng-gcc编译器正在下载" + wget -t 40 -c -P "$1" https://mirrors.huaweicloud.com/kunpeng/archive/compiler/kunpeng_gcc/gcc-10.3.1-2022.06-aarch64-linux.tar.gz + if [[ $? -eq 0 ]]; then + echo -e "\033[1;32;1m# kunpeng-gcc编译器已经下载成功\033[0m" + else + echo -e "\033[31m# kunpeng-gcc编译器下载失败,请重新执行脚本\033[0m" + exit 1 + fi +} + +function install_kunpeng-gcc() { + echo "# kunpeng-gcc编译器正在安装" + tar xf "$1"/gcc-10.3.1-2022.06-aarch64-linux.tar.gz -C "$1" && rm -rf "$1"/gcc-10.3.1-2022.06-aarch64-linux.tar.gz + mkdir -p "$2"/kunpeng-gcc-10.3.1 && cp -r "$1"/gcc-10.3.1-2022.06-aarch64-linux/* "$2"/kunpeng-gcc-10.3.1/ + echo -e "\033[1;32;1m# kunpeng-gcc编译器已经安装完毕\033[0m" +} + +function install_development() { + sudo yum install -y wget git tar libatomic environment-modules + source /etc/profile +} + +function write_kunpeng-gcc_module() { + cat >"$1/kunpeng-gcc-10.3.1/kunpeng-gcc_modulefiles" <"$1/ncbi-vdb-3.0.0/ncbi-vdb_modulefiles" < + + + + + + Document + + + + + +
+

+ 2022/08/14 01:49:48 +

+
+ +

配置信息

+ +
+
+ 源码文件存放路径 + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0 + +
+
+ 目标操作系统 + + openEuler 22.03 + +
+
+ 目标系统内核版本 + + 5.10.0 + +
+
+ 编译器版本 + + GCC 7.1.0 + +
+
+ 构建工具 + + cmake + +
+
+ 编译命令 + + cmake + +
+
+ 迁移结果 + + + + 源码迁移分析成功 + +
+
+ +
+
+
+

可兼容替换

+

2

+
+
+

待验证替换

+

20

+
+
+

依赖文件总数

+

22

+
+
+
+
+

源文件数

+

8

+
+
+

代码行数

+

185

+
+
+

源码迁移人力

+

0.4人月

+
+
+

+ 预估标准:1人月迁移工作量 = 500行 C/C++/Fortran/Go/构建文件等源码,或250行汇编代码 +

+
+
+
+ +
+
+ 与架构相关的依赖文件 +
+ +
+ +
+
+ + + + + + + + + + + +
序号依赖文件名文件类型 + 待下载软件包名称 + 分析结果处理建议
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 1 + + libxml2.so.2 + + 动态库 + + libxml2-2.9.12-5.oe2203.aarch64.rpm + + 可兼容替换 + + + 下载 + + 复制链接 + + + + +
+ 2 + + libre2.so.9 + + 动态库 + + re2-20211101-1.oe2203.aarch64.rpm + + 可兼容替换 + + + 下载 + + 复制链接 + + + + +
+ 3 + + libsam-extract.so + + 动态库 + + -- + + 待验证替换 + + 请先在鲲鹏平台上验证。若不兼容,请联系供应方获取鲲鹏兼容版本,或获取源码并编译成鲲鹏兼容版本 +
+ 4 + + libbz2.so> + + 动态库 +
+ 5 + + liblibload.a.so + + 动态库 +
+ 6 + + liblibtui_cpp.a.so + + 动态库 +
+ 7 + + libZLIB.so + + 动态库 +
+ 8 + + liblibkff.a.so + + 动态库 +
+ 9 + + libstdc++fs.so + + 动态库 +
+ 10 + + libhdf5d>.so + + 动态库 +
+ 11 + + liblibkxml.a.so + + 动态库 +
+ 12 + + liblibmagic.a.so + + 动态库 +
+ 13 + + liblibktst.a.so + + 动态库 +
+ 14 + + liblibkdf5.a.so + + 动态库 +
+ 15 + + liblib.so + + 动态库 +
+ 16 + + liblibncbi-vdb.a.so + + 动态库 +
+ 17 + + libhdf5>.so + + 动态库 +
+ 18 + + liblibkxfs.a.so + + 动态库 +
+ 19 + + liblibkapp.a.so + + 动态库 +
+ 20 + + liblibncbi-wvdb.a.so + + 动态库 +
+ 21 + + liblibtui.a.so + + 动态库 +
+ 22 + + libbz2d>.so + + 动态库 + + -- + + 待验证替换 + + 请先在鲲鹏平台上验证。若不兼容,请联系供应方获取鲲鹏兼容版本,或获取源码并编译成鲲鹏兼容版本 +
+
+
+ + +
+
+ 需要迁移的源码文件 +
+ +
+ 文件总数:8 +
+
+ +
+
+ + + + + + + + + + + +
序号文件名路径文件类型需修改的代码行
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 1 + + string.cpp + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/driver-tool/secure/string.cpp + + C/C++ Source File + + 1 +
+ 2 + + zz_fastq-lex.c + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/fastq-loader/zz_fastq-lex.c + + C/C++ Source File + + 15 +
+ 3 + + bmutil.h + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/sharq/bm/bmutil.h + + C/C++ Source File + + 2 +
+ 4 + + zz_vcf-lex.c + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vcf-loader/zz_vcf-lex.c + + C/C++ Source File + + 15 +
+ 5 + + vdb_shell.c + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + C/C++ Source File + + 146 +
+ 6 + + LibManager.py + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-python/ngs/LibManager.py + + Python + + 2 +
+ 7 + + LibManager.java + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibManager.java + + Java + + 2 +
+ 8 + + LibVersionChecker.java + + /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibVersionChecker.java + + Java + + 2 +
+
+
+ + +
+
+ 需要迁移的代码行数 +
+ +
+ 需修改的代码行:185行; C/C++: 179 行; Python: 2 行; Java: 4 行; +
+
+ +
+
+ + + + + + + + + +
文件名行号(起始行,结束行)关键字建议
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibManager.java + + (348,348) + + libpath + + The compatibility of the file invoked by the function is unknown on the Kunpeng platform. Verify the compatibility on the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibManager.java + + (350,350) + + libpath + + The compatibility of the file invoked by the function is unknown on the Kunpeng platform. Verify the compatibility on the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibVersionChecker.java + + (143,143) + + path + + The compatibility of the file invoked by the function is unknown on the Kunpeng platform. Verify the compatibility on the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-java/gov/nih/nlm/ncbi/ngs/LibVersionChecker.java + + (145,145) + + path + + The compatibility of the file invoked by the function is unknown on the Kunpeng platform. Verify the compatibility on the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-python/ngs/LibManager.py + + (59,59) + + os.path.join(dir, lib_filename(lib_name) ) + + The compatibility of the file invoked by the ctypes module with the Kunpeng platform is unknown. Verify the compatibility with the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/ngs/ngs-python/ngs/LibManager.py + + (110,110) + + lib_path + + The compatibility of the file invoked by the ctypes module with the Kunpeng platform is unknown. Verify the compatibility with the Kunpeng platform first. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/driver-tool/secure/string.cpp + + (58,58) + + _BitScanReverse + + Visit 'https://gitee.com/openeuler/AvxToNeon' and obtain the 'avx2neon.h' source code according to the README.md file. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/fastq-loader/zz_fastq-lex.c + + (197,205) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/fastq-loader/zz_fastq-lex.c + + (966,971) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/sharq/bm/bmutil.h + + (236,236) + + __asm + + +{ +unsigned int *memAddr_E0=(unsigned int*)(&v); +if (*memAddr_E0 == 0) { + r = 0; + } else { + r = __builtin_ctz(*memAddr_E0); + } +} +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/sharq/bm/bmutil.h + + (244,244) + + __asm + + +{ +unsigned int *memAddr_E0=(unsigned int*)(&v); +if (*memAddr_E0 == 0) { + r = 0; + } else { + r = 31 - __builtin_clz(*memAddr_E0); + } +} +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vcf-loader/zz_vcf-lex.c + + (406,414) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vcf-loader/zz_vcf-lex.c + + (1032,1037) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (15,18) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (101,124) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (139,147) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (155,170) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (401,422) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (559,581) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (4061,4068) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (4507,4520) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (5706,5710) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (5716,5731) + + #if + + Add code that adapts to the Kunpeng platform. +
+ /opt/portadv/portadmin/sourcecode/sra-tools-3.0.0/tools/vdb-sql/vdb_shell.c + + (5887,5891) + + #if + + Add code that adapts to the Kunpeng platform. +
+
+
+ + +
+
+ + + + + + \ No newline at end of file diff --git "a/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sra-tool\350\275\257\344\273\266\350\277\201\347\247\273.html" "b/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sra-tool\350\275\257\344\273\266\350\277\201\347\247\273.html" new file mode 100644 index 0000000000000000000000000000000000000000..db52d7e0a3090c68e43a351b7f7ff2c59a33689d --- /dev/null +++ "b/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sra-tool\350\275\257\344\273\266\350\277\201\347\247\273.html" @@ -0,0 +1,499 @@ + + + + + + + + Document + + + +
+

+ 2022/09/26 20:33:26

+
+ +

+ 配置信息

+
+
+ 软件安装包存放路径或软件包名称 + /opt/portadv/portadmin/package/sratoolkit.3.0.0-centos_linux64 +
+ +
+ 目标操作系统 + openEuler 20.03 SP3 +
+
+ 目标系统内核版本 +

+ 4.19.90 +

+
+ +
+ 评估结果 +

+ + 软件迁移评估成功:您指定的分析路径/分析包中没有需要评估的内容 +

+
+ +
+
+ +
+

可兼容替换

+

0

+
+ +
+

待验证替换

+

0

+
+ +
+

依赖文件总数

+

0

+
+ +
+ +
+
+ +
+
+ 与架构相关的依赖文件 +
+
+ +
+
+ + + + + + + + + + + + + + +
序号依赖文件名文件类型软件包存放路径待下载软件包名称分析结果处理建议
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ 未发现与架构相关的依赖文件
+
+
+
+ + +
+
+ + + + \ No newline at end of file diff --git "a/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sratoolkit-3.0.0 Devkit\350\277\201\347\247\273\344\270\216\350\260\203\344\274\230\346\212\245\345\221\212.docx" "b/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sratoolkit-3.0.0 Devkit\350\277\201\347\247\273\344\270\216\350\260\203\344\274\230\346\212\245\345\221\212.docx" new file mode 100644 index 0000000000000000000000000000000000000000..a6a2b0cc42478f3f8e427e65b4133215a1a9e652 Binary files /dev/null and "b/LifeSciences/sratoolkit-3.0.0/doc/Devkit\346\212\245\345\221\212/sratoolkit-3.0.0 Devkit\350\277\201\347\247\273\344\270\216\350\260\203\344\274\230\346\212\245\345\221\212.docx" differ diff --git "a/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\346\265\213\350\257\225\346\212\245\345\221\212.docx" "b/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\346\265\213\350\257\225\346\212\245\345\221\212.docx" new file mode 100644 index 0000000000000000000000000000000000000000..bbe33537a261f07dd73ca79d8933a9f106899e1d Binary files /dev/null and "b/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\346\265\213\350\257\225\346\212\245\345\221\212.docx" differ diff --git "a/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\347\247\273\346\244\215\346\214\207\345\215\227.docx" "b/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\347\247\273\346\244\215\346\214\207\345\215\227.docx" new file mode 100644 index 0000000000000000000000000000000000000000..09dc3a45927f681adcb20ad89d91413dba359f29 Binary files /dev/null and "b/LifeSciences/sratoolkit-3.0.0/doc/sratoolkit-3.0.0\345\272\224\347\224\250\347\247\273\346\244\215\346\214\207\345\215\227.docx" differ diff --git a/LifeSciences/sratoolkit-3.0.0/sratoolkit-3.0.0.sh b/LifeSciences/sratoolkit-3.0.0/sratoolkit-3.0.0.sh new file mode 100644 index 0000000000000000000000000000000000000000..c73944c53a24a6a1264ae666c01e57bdbcb97699 --- /dev/null +++ b/LifeSciences/sratoolkit-3.0.0/sratoolkit-3.0.0.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +source "$( + cd "$(dirname "$0")" || exit 1 + pwd +)/common.sh" + +function install_development() { + yum install patch openssl git -y +} + +function download_sratools() { + echo "# sratools正在下载" + wget -t 40 -c "https://github.com/ncbi/sra-tools/archive/refs/tags/3.0.0.tar.gz" -O "$1"/3.0.0.tar.gz + if [[ $? -eq 0 ]]; then + echo -e "\033[1;32;1m# sratools已经下载成功\033[0m" + else + echo -e "\033[31m# sratools下载失败,请重新执行脚本\033[0m" + exit 1 + fi +} + +function install_sratools() { + echo "# sratools正在安装" + tar xf "$1"/3.0.0.tar.gz -C "$1" && rm -rf "$1"/3.0.0.tar.gz + #ccsra.c.patch补丁修改是由于va_args在ARM平台上不能为标量,在x86平台中,va_list为指针,此指针可以为零,因此在x86平台下没有问题。 + #而在ARM中,va_list是一个真实结构名,因此不能是标量。参考官方给出的PR,但此PR并没有合并,作为一个临时的解决 + #方案:https://github.com/ncbi/sra-tools/pull/648,官方目前也在对此问题进行解决,后续可通过官网:https://github.com/ncbi/sra-tools了解该问题的解决方案。 + cp $(get_current_dir)/ccsra.c.patch "$1"/sra-tools-3.0.0/tools/copycat/ + #bmutil.h.patch补丁的修改,参考于鲲鹏代码迁移工具源码迁移分析的指导结果 + cp $(get_current_dir)/bmutil.h.patch "$1"/sra-tools-3.0.0/tools/sharq/bm/ + cd "$1"/sra-tools-3.0.0/tools/copycat/ + patch -p0 < ccsra.c.patch + cd "$1"/sra-tools-3.0.0/tools/sharq/bm/ + patch -p0 < bmutil.h.patch + cd "$1"/sra-tools-3.0.0 + sed -i "s/add_definitions(-msse4.2 -DBMSSE42OPT)/ /" tools/sharq/CMakeLists.txt + sed -i "s/add_definitions(-msse4.2 -DBMSSE42OPT)/ /" test/sharq/CMakeLists.txt + cd tools/driver-tool/secure/ + wget -t 40 -c "https://gitee.com/openeuler/AvxToNeon/blob/master/avx2neon.h" + sed -i 's/#include /#include /' string.cpp + cd "$1"/sra-tools-3.0.0 + ./configure --relative-build-out-dir --build-prefix="$2"/sra-tools-3.0.0 --prefix="$2"/sra-tools-3.0.0 --with-ncbi-vdb-prefix="$2"/ncbi-vdb-3.0.0 + make -j$(nproc) && make install +} + +function write_sratools_module() { + cat >"$1/sra-tools-3.0.0/sra-tools_modulefiles" <