Open qicaibiology opened 1 year ago
If you are ok with using v4.1.2 you can install it directly to a new conda environment without running ./build_rmats:
conda create --prefix ./new_rmats_conda_env
conda activate ./new_rmats_conda_env
conda install -c conda-forge -c bioconda rmats=4.1.2
You can then run with that environment activated using rmats.py
(which rmats.py
should show it installed to your conda environment)
For the errors that you posted when building with ./build_rmats:
The first error is f77: Command not found
which is basically saying it couldn't find a fortran compiler. You can set the path to a fortran compiler like gfortran with the FC environment variable. Here's a commented out line that does that: https://github.com/Xinglab/rmats-turbo/blob/v4.1.2/setup_environment.sh#L27
The second error is that /home/cq39/anaconda3/bin/cc
is not a full path to an existing compiler tool. You should be able to set the CC environment variable to your C compiler like in the commented out code linked above
Since its connected, pasting it here. I try to build rmats-turbo, and get the following:
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/rmatspipeline
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Irmatspipeline -I/rmats-turbo/bamtools/include -I/usr/include/python3.8 -c rmatspipeline/rmatspipeline.cpp -o build/temp.linux-x86_64-3.8/rmatspipeline/rmatspipeline.o -O3 -funroll-loops -std=c++11 -fopenmp -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -w -Wl,-static
rmatspipeline/rmatspipeline.cpp: In function ‘void __pyx_f_5rmats_13rmatspipeline_parse_gtf(PyObject*, std::unordered_map<int, std::set<std::__cxx11::basic_string<char> > >&, std::unordered_map<std::__cxx11::basic_string<char>, rmats::Gene>&, std::unordered_map<std::__cxx11::basic_string<char>, rmats::SupInfo>&)’:
rmatspipeline/rmatspipeline.cpp:1831:51: error: cannot bind non-const lvalue reference of type ‘std::string&’ {aka ‘std::__cxx11::basic_string<char>&’} to an rvalue of type ‘std::remove_reference<std::__cxx11::basic_string<char>&>::type’ {aka ‘std::__cxx11::basic_string<char>’}
1831 | #define __PYX_STD_MOVE_IF_SUPPORTED(x) std::move(x)
| ~~~~~~~~~^~~
rmatspipeline/rmatspipeline.cpp:6095:47: note: in expansion of macro ‘__PYX_STD_MOVE_IF_SUPPORTED’
6095 | (__pyx_v_supple[__pyx_t_14]).set_info(__PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_15), __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_13), __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_18));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from rmatspipeline/rmatspipeline.cpp:1173:
rmatspipeline/tcx.h:22:36: note: initializing argument 1 of ‘void rmats::SupInfo::set_info(std::string&, std::string&, std::string&)’
22 | void set_info(std::string& iname, std::string& ichrom, std::string& istrand) {
| ~~~~~~~~~~~~~^~~~~
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
make: *** [Makefile:7: build] Error 1
FATAL: While performing build: while running engine: exit status 1
Any hints appreciated, thanks, Gregor
It looks like the generated cpp code for this line: https://github.com/Xinglab/rmats-turbo/blob/6a4d3a0e8b0e69accf6c9e51619582de89f84636/rMATS_pipeline/rmatspipeline/rmatspipeline.pyx#L165 is trying to use std::move() in a situation where it doesn't work. I was able to reproduce the error when building with Cython v3.0.0, but there is no error for Cython v0.29.36. Potentially this is a bug with the newer Cython version
A fix that works with both Cython versions is to set the inputs to set_info
to be const
: https://github.com/Xinglab/rmats-turbo/pull/310
Hi I would like to install the rMats turbo.
I am working on a new server and use latest conda enviroment. I installed the dependency with anaconda one by one and run ./build_rmats. I hit an error like this:
Then I tried to create an enviroment for rmats specifically in case it will cause some incovenience in my other packages:
conda create -y -n rmats python=3.6.12 jupyter numpy pandas matplotlib
Then I installed the dependency again one by one after I activated the rmats-env, then I tried to run ./build_rmats but still It hit error at the very beginning:Any suggestion?