gcc 由于rsem-parse-alignments错误,无法运行RSEM工具:无此文件或目录

ep6jt1vc  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(233)

我下载了RSEM软件包,用于根据RNA-Seq数据估计基因和亚型表达水平,然后在MacOS X终端中使用同一目录中的make编译RSEM,抛出许多错误和警告:

In file included from simulation.cpp:22:
In file included from ./SingleModel.h:16:
In file included from ./Orientation.h:8:
In file included from ./simul.h:6:
In file included from ./boost/random.hpp:52:
In file included from ./boost/random/generate_canonical.hpp:22:
In file included from ./boost/math/special_functions.hpp:15:
In file included from ./boost/math/special_functions/airy.hpp:10:
In file included from ./boost/math/special_functions/bessel.hpp:21:
In file included from ./boost/math/special_functions/detail/bessel_jy_zero.hpp:25:
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:91:24: error: no template named 'tuple' in namespace 'boost::math'
          boost::math::tuple<T, T> operator()(const T& x) const
          ~~~~~~~~~~~~~^
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:94:33: error: no member named 'make_tuple' in namespace 'boost::math'
            return boost::math::make_tuple(
                   ~~~~~~~~~~~~~^
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:142:24: error: no template named 'tuple' in namespace 'boost::math'
          boost::math::tuple<T, T> operator()(const T& x) const
          ~~~~~~~~~~~~~^
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:145:33: error: no member named 'make_tuple' in namespace 'boost::math'
            return boost::math::make_tuple(
                   ~~~~~~~~~~~~~^
In file included from simulation.cpp:22:
In file included from ./SingleModel.h:16:
In file included from ./Orientation.h:8:
In file included from ./simul.h:6:
In file included from ./boost/random.hpp:52:
In file included from ./boost/random/generate_canonical.hpp:22:
In file included from ./boost/math/special_functions.hpp:15:
In file included from ./boost/math/special_functions/airy.hpp:10:
In file included from ./boost/math/special_functions/bessel.hpp:21:
./boost/math/special_functions/detail/bessel_jy_zero.hpp:62:22: error: no template named 'tuple' in namespace 'boost::math'
        boost::math::tuple<T, T> operator()(const T& z) const
        ~~~~~~~~~~~~~^
./boost/math/special_functions/detail/bessel_jy_zero.hpp:78:31: error: no member named 'tuple' in namespace 'boost::math'
          return boost::math::tuple<T, T>(the_function, its_derivative);
                 ~~~~~~~~~~~~~^
./boost/math/special_functions/detail/bessel_jy_zero.hpp:78:37: error: 'T' does not refer to a value
          return boost::math::tuple<T, T>(the_function, its_derivative);
                                    ^
./boost/math/special_functions/detail/bessel_jy_zero.hpp:56:25: note: declared here
      template<typename T>
                        ^
./boost/math/special_functions/detail/bessel_jy_zero.hpp:211:24: error: no template named 'tuple' in namespace 'boost::math'
          boost::math::tuple<T, T> operator()(const T& x) const
          ~~~~~~~~~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
6 warnings and 20 errors generated.
make: *** [simulation.o] Error 1

然后,尝试运行RSEM

./rsem-calculate-expression --bowtie2 --bowtie2-path /Users/Documents/Bioinformatics_tools/Bowtie2/bowtie2-2.5.0-macos-x86_64  -p 8  --output-genome-bam --paired-end /Users/Documents/Bioinformatics_tools/SRA/fastq_dir/SRR1039508_1.fastq /Users/Documents/Bioinformatics_tools/SRA/fastq_dir/SRR1039508_2.fastq /Users/Documents/Bioinformatics_tools/Bowtie2/index/GRCh38_noalt_as/GRCh38_noalt_as  hg_paired_end_quals

但是它显示了下面的错误,我猜这是搜索这个文件,但这不是使用make命令编译后生成的?
rsem-parse-alignments:没有此文件或目录!
我尝试使用此链接解决问题,但rsem-calculate-expression error"make" error on mac失败
此致,
图菲克

xqkwcwgp

xqkwcwgp1#

阅读MAC上的制造错误:

./boost/math/tools/tuple.hpp:18:14: error: no member named 'tuple' in namespace 'std'
./boost/math/tools/tuple.hpp:21:14: error: no member named 'ignore' in namespace 'std'
./boost/math/tools/tuple.hpp:22:14: error: no member named 'make_tuple' in namespace 'std'
./boost/math/tools/tuple.hpp:23:14: error: no member named 'tie' in namespace 'std'; did you mean 'time'?
./boost/math/tools/roots.hpp:202:20: error: no member named 'tie' in namespace 'boost::math'; did you mean 'time'?
./boost/math/tools/roots.hpp:297:20: error: no member named 'tie' in namespace 'boost::math'; did you mean 'time'?
./boost/math/tools/roots.hpp:457:20: error: no member named 'tie' in namespace 'boost::math'; did you mean 'time'?
./boost/math/special_functions/detail/igamma_inverse.hpp:336:17: error: no template named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/igamma_inverse.hpp:381:27: error: no member named 'make_tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/erf_inv.hpp:280:17: error: no template named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/erf_inv.hpp:285:27: error: no member named 'make_tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:91:24: error: no template named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:94:33: error: no member named 'make_tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:142:24: error: no template named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/airy_ai_bi_zero.hpp:145:33: error: no member named 'make_tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/bessel_jy_zero.hpp:62:22: error: no template named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/bessel_jy_zero.hpp:78:31: error: no member named 'tuple' in namespace 'boost::math'
./boost/math/special_functions/detail/bessel_jy_zero.hpp:78:37: error: 'T' does not refer to a value
./boost/math/special_functions/detail/bessel_jy_zero.hpp:211:24: error: no template named 'tuple' in namespace 'boost::math'
fatal error: too many errors emitted, stopping now [-ferror-limit=]

我已经在GitHub link上回复了:
看起来-std=c98标志不受包含的boost版本(1.55.0)支持。
实际上,除了一些std::istream到bool的隐式转换之外,整个RSEM代码库看起来都是c
11就绪的。像这样的一个小补丁将允许您使用-std=c++11来代替:

be3ea54..0bbf236 100644
--- a/PairedEndHit.h
+++ b/PairedEndHit.h @@ -26,7 +26,7 @@ private:    bool PairedEndHit::read(std::istream& in) {    conprb = 0.0;
-    return (in>>sid>>pos>>insertL);
+    return !!(in>>sid>>pos>>insertL);  }    void PairedEndHit::write(std::ostream& out) { diff --git a/SingleHit.h
b/SingleHit.h index b157a15..f3c2d12 100644
--- a/SingleHit.h
+++ b/SingleHit.h @@ -43,7 +43,7 @@ protected:    bool SingleHit::read(std::istream& in) {    conprb = 0.0;
- return (in>>sid>>pos);
+ return bool(in>>sid>>pos);  }    void SingleHit::write(std::ostream& out) { diff --git a/buildReadIndex.cpp b/buildReadIndex.cpp index
3837079..4f58022 100644
--- a/buildReadIndex.cpp
+++ b/buildReadIndex.cpp @@ -37,15 +37,15 @@ void buildIndex(char* readF, int gap, bool hasQ) {       streampos pos = fin.tellg(); 
      success = true;
 
-     success = (getline(fin, line));
+        success = !!getline(fin, line);          if (!success) continue;
-     success = (getline(fin, line));
+        success = !!getline(fin, line);          if (!success) continue;
          if (hasQ) {
-         success = (getline(fin, line));
+         success = !!getline(fin, line);
          if (!success) continue;
-         success = (getline(fin, line));
+         success = !!getline(fin, line);
          if (!success) continue;
          }

否则,您可以找到如何确保为您的平台正确设置BOOST_NO_CXX11_HDR_TUPLE(在这种情况下,将使用Boost元组)。我无法访问您的编译器进行测试。

相关问题