hillerlab / REforge

Regulatory Element Forward Genomics to associate transcription factor binding site divergence in regulatory elements with phenotypic differences between species
MIT License
8 stars 3 forks source link

test error #4

Open yuzhenpeng opened 3 years ago

yuzhenpeng commented 3 years ago

hello,Michael Thanks for your wonderful software. In recent days, I want to use it for my analysis. I had installed it very well follow your instruction.

$REforge.py -h
usage: REforge.py [-h] [--scorefile SCOREFILE] [--windowsize WINDOWSIZE]
                  [--background BACKGROUND] [--scrCrrIter SCRCRRITER]
                  [--no_ancestral_filter] [--no_branch_filter] [--no_fixed_TP]
                  [--filter_branch_threshold FILTER_BRANCH_THRESHOLD]
                  [--filter_GC_change FILTER_GC_CHANGE]
                  [--filter_length_change FILTER_LENGTH_CHANGE]
                  [--alignment ALIGNMENT] [--verbose] [--debug]
                  treefile motiffile lossfile elementfile

Analyses transcription factor motifs with respect to their differences in
binding within a phylogeny of CRM sequences and the associated phenotype

positional arguments:
  treefile              phylogenetic tree given in newick format
  motiffile             wtmx file containing all transcription factor motifs
  lossfile              file listing trait loss species; one line per species
  elementfile           file listing putative elements; one line per fasta
                        file (.fa or .fasta)

optional arguments:
  -h, --help            show this help message and exit
  --scorefile SCOREFILE
                        name of score file
  --windowsize WINDOWSIZE, -w WINDOWSIZE
                        windowsize to be used for element scoring
  --background BACKGROUND, -bg BACKGROUND
                        background file - passed into the score function
  --scrCrrIter SCRCRRITER
                        corrects stubb score with average score of <number> of
                        shuffled sequences. Default is 10
  --no_ancestral_filter
                        elements not are filtered if the ancestral element
                        scores <= 0
  --no_branch_filter    branches are not filtered if start and end score <=
                        filter_branch_threshold
  --no_fixed_TP         Stubb's transition probablities are not fixed on the
                        ancestral sequence
  --filter_branch_threshold FILTER_BRANCH_THRESHOLD
                        Default is 0
  --filter_GC_change FILTER_GC_CHANGE
                        if set, branches with a GC content change above the
                        threshold are filtered
  --filter_length_change FILTER_LENGTH_CHANGE
                        if set, branches with a relative length change above
                        the threshold are filtered
  --alignment ALIGNMENT
  --verbose, -v
  --debug, -d

But, I met some warnings when running the example test.

WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount CTGCTCCTTTTGCGTCTACTAAGAAGTTACTTATGTAACATGTTACATCGGGACTTGTTGGCCGTAAGTCGTTGAATGCTGGTACTATTAGGTGTCCTGCGATATTCACTAACGCGTTGAGGCACATCCAATCACAGCTGCATTCCCGACAGTCTGACACCGTCAATTAAGAATGTCACGTGAGGGCACCT data/motifs.wtmx 200.0 1  -b /Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/example/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount ATACTCCTTATAAGTTCCTCTTGTACTCATATGCTCTGACAGTGGCTCAATTGTTTTCGGGCCTTCATAAATGGCAGATATGCAGGGGCCCGACCTATTAAACCTAGTTTAGACCCGAAGAGCACGAATGGCGCATCCGTGGCTTCACAAGATAGGTAGTTGTTAACGGGTCTACTGTCCTATTCGCGCTA data/motifs.wtmx 200.0 1  -b /Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/example/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount CTACTTTGCACGTTACGCTCGCCAGTAATAGTGGATGACAGAAGCCTCTAGAGCAGTTTAGTCGCCCAATCTGAAACAGAACGTAACATTCTCTTGGAGGGTCGGGTTCTTCGACATCTCGAAATGGTGTACCATGTATCTATTACTAGGCCATCCGCATGTCGAATTTATACTACCCTGGTTGTGTCGCT data/motifs.wtmx 200.0 1  -b /Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/example/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
Traceback (most recent call last):
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 172, in <module>
    sys.exit(__score_branches())
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 165, in __score_branches
    anc0filter=not args.no_ancestral_filter)
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 95, in traverse_tree
    scrCrrIter=scrCrrIter, keepFiles=True)
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/Scoring_utilities.py", line 184, in score_sequence_with_stubb
    if scrCrrMthd: assert r_score == 0
AssertionError

Could you give me some help. Thank you.

MichaelHiller commented 3 years ago

Hi, I haven't seen that before, but I'll email Bjoern Langer who implemented REforge to have a look. Best Michael

MichaelHiller commented 3 years ago

Here is what Bjoern said: "For the error message - you're right. Due to the error that the warning is indicating, the assertion later on in Scoring_utilities.py line184 seems to be not met, which crashes REforge. But from the warning I'd say that Stubb is the problem. I can't say what is wrong there, I can only say that the commands printed in the warning should, when run in command line, not cause an error but output like: stubb_noPseudoCount CTGCTCCTTTTGCGTCTACTAAGAAGTTACTTATGTAACATGTTACATCGGGACTTGTTGGCCGTAAGTCGTTGAATGCTGGTACTATTAGGTGTCCTGCGATATTCACTAACGCGTTGAGGCACATCCAATCACAGCTGCATTCCCGACAGTCTGACACCGTCAATTAAGAATGTCACGTGAGGGCACCT data/motifs.wtmx 200.0 1 -b background//gc0.47/gc0.47.fa -brief -seq 0 0.00000 0.000024 0.000000 0.000000 0.000000 0.000000 0.999976 stubb_noPseudoCount ATACTCCTTATAAGTTCCTCTTGTACTCATATGCTCTGACAGTGGCTCAATTGTTTTCGGGCCTTCATAAATGGCAGATATGCAGGGGCCCGACCTATTAAACCTAGTTTAGACCCGAAGAGCACGAATGGCGCATCCGTGGCTTCACAAGATAGGTAGTTGTTAACGGGTCTACTGTCCTATTCGCGCTA data/motifs.wtmx 200.0 1 -b background//gc0.47/gc0.47.fa -brief -seq 0 0.00000 0.000000 0.000001 0.000000 0.000000 0.000000 0.999999 stubb_noPseudoCount CTACTTTGCACGTTACGCTCGCCAGTAATAGTGGATGACAGAAGCCTCTAGAGCAGTTTAGTCGCCCAATCTGAAACAGAACGTAACATTCTCTTGGAGGGTCGGGTTCTTCGACATCTCGAAATGGTGTACCATGTATCTATTACTAGGCCATCCGCATGTCGAATTTATACTACCCTGGTTGTGTCGCT data/motifs.wtmx 200.0 1 -b background//gc0.47/gc0.47.fa -brief -seq 0 0.00000 0.000000 0.000003 0.000002 0.000000 0.000000 0.999995 "

Can you pls check if stubb in the command line runs fine? If this is not the case, pls check if Stubb is properly compiled. Stubb is a third-party tool, not developed by us (we only introduced some minor things like proper pseudocount handling).

Michael

yuzhenpeng commented 3 years ago

Hi, Michael Thank you very much for your help. I had try to reinstall REforge and stubb follow your instruction. But I faild again. I checked the stubb weather compiled well. The detail information as followed.

make -f Makefile.ss
make[1]: Entering directory '/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/stubb_2.1'
rm -rf *.o core *~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c sequence.cpp
In file included from sequence.h:32,
                 from sequence.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c wtmx.cpp
In file included from wtmx.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c parameters.cpp
In file included from sequence.h:32,
                 from parameters.h:30,
                 from parameters.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from parameters.cpp:26:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
parameters.cpp: In static member function 'static WtMx* Parameters::TrainWtMx(Window*)':
parameters.cpp:271:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  271 |   bkgwm = new WtMx(bkgmat,basicbkgmat,1,"Background",morder);
      |                                         ^~~~~~~~~~~~
parameters.cpp: In member function 'void Parameters::SetBackground(float*)':
parameters.cpp:991:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  991 |   _bkgwm = new WtMx(bkgmat,1,"Background");  // create a length 1 wm for background
      |                              ^~~~~~~~~~~~
parameters.cpp: In member function 'Parameters::probabilitycache& Parameters::probabilitycache::operator=(const Parameters::probabilitycache&)'  :
parameters.cpp:45:7: warning: control reaches end of non-void function [-Wreturn-type]
   45 |   Copy(pc);
      |   ~~~~^~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c util.cpp
In file included from sequence.h:32,
                 from parameters.h:30,
                 from util.h:32,
                 from util.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from util.h:32,
                 from util.cpp:26:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c parameters_h0.cpp
In file included from sequence.h:32,
                 from parameters.h:30,
                 from parameters_h0.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from parameters_h0.cpp:26:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
parameters_h0.cpp: In member function 'Parameters_H0& Parameters_H0::operator=(const Parameters_H0&)':
parameters_h0.cpp:1186:7: warning: control reaches end of non-void function [-Wreturn-type]
 1186 |   Copy(p);
      |   ~~~~^~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c parameters_h1.cpp
In file included from sequence.h:32,
                 from parameters.h:30,
                 from parameters_h1.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from parameters_h1.cpp:26:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
parameters_h1.cpp: In member function 'Parameters_H1& Parameters_H1::operator=(const Parameters_H1&)':
parameters_h1.cpp:1472:7: warning: control reaches end of non-void function [-Wreturn-type]
 1472 |   Copy(p);
      |   ~~~~^~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -Ilib/newmat/ -c parameters_h01.cpp
In file included from sequence.h:32,
                 from parameters.h:30,
                 from parameters_h01.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from parameters_h01.cpp:26:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c windowiterator.cpp
In file included from sequence.h:32,
                 from windowiterator.cpp:26:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from util.h:32,
                 from windowiterator.cpp:27:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -c fastafile.cpp
In file included from sequence.h:32,
                 from fastafile.h:29,
                 from fastafile.cpp:29:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -D_OPTIMIZE_CACHESEQUENCEPROBABILITIES  -o bin//stubb_noPseudoCount stubb.c  pp util.o parameters.o parameters_h0.o parameters_h1.o parameters_h01.o sequence.o windowiterator.o wtmx.o fastafile.o -Llib/newmat/ -lm -lnewm  at
In file included from sequence.h:32,
                 from parameters.h:30,
                 from util.h:32,
                 from stubb.cpp:31:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from util.h:32,
                 from stubb.cpp:31:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
stubb.cpp:41:27: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   41 | main(int argc, char **argv)
      |                           ^
stubb.cpp: In function 'int main(int, char**)':
stubb.cpp:61:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   61 |     _sequences[0] = new Sequence(argv[1],strlen(argv[1]), "Sequence");
      |                                                           ^~~~~~~~~~
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -D_OPTIMIZE_CACHESEQUENCEPROBABILITIES  -o bin//stubb_fitprobs_noPseudoCoun  t stubb_fitprobs.cpp util.o parameters.o parameters_h0.o parameters_h1.o parameters_h01.o sequence.o windowiterator.o wtmx.o fastafile.o -Llib/  newmat/ -lm -lnewmat
In file included from sequence.h:32,
                 from parameters.h:30,
                 from util.h:32,
                 from stubb_fitprobs.cpp:30:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from util.h:32,
                 from stubb_fitprobs.cpp:30:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
stubb_fitprobs.cpp:40:27: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   40 | main(int argc, char **argv)
      |                           ^
g++ -O3 -D_MARKOV -DMARKOV_ORDER=0 -DCONTEXT_SIZE=5 -D_OPTIMIZE_MOTIFORIENTATION -D_OPTIMIZE_PROTECTED_ACCESS  -D_OPTIMIZE_CAREFULCSP -D_OPTIMI  ZE_WMINDEX -D_EXIST_SMALL_SEQUENCES -D_CYCLIC_WINDOWS -fpermissive  -D_OPTIMIZE_CACHESEQUENCEPROBABILITIES  -o bin//stubb_fixedprobs_noPseudoCo  unt stubb_fixedprobs.cpp util.o parameters.o parameters_h0.o parameters_h1.o parameters_h01.o sequence.o windowiterator.o wtmx.o fastafile.o -L  lib/newmat/ -lm -lnewmat
In file included from sequence.h:32,
                 from parameters.h:30,
                 from util.h:32,
                 from stubb_fixedprobs.cpp:31:
wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral   type [-fpermissive]
   46 |   static const float SMALL_FREQUENCY = 1e-10;
      |                      ^~~~~~~~~~~~~~~
In file included from util.h:32,
                 from stubb_fixedprobs.cpp:31:
parameters.h:87:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::SMALL_FLOAT' of non-  integral type [-fpermissive]
   87 |   static const float SMALL_FLOAT = 1E-10; // when is a number too small to divide by
      |                      ^~~~~~~~~~~
parameters.h:88:23: warning: 'constexpr' needed for in-class initialization of static data member 'const double Parameters::SMALL_DOUBLE' of no  n-integral type [-fpermissive]
   88 |   static const double SMALL_DOUBLE = 1E-200;
      |                       ^~~~~~~~~~~~
parameters.h:89:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::INF_FREE_ENERGY' of   non-integral type [-fpermissive]
   89 |   static const float INF_FREE_ENERGY = 1000000;
      |                      ^~~~~~~~~~~~~~~
parameters.h:110:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::ALMOST_ONE' of non-  integral type [-fpermissive]
  110 |   static const float ALMOST_ONE = ALMOSTONE;           // used to initialize parameters to an extreme point
      |                      ^~~~~~~~~~
parameters.h:111:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters::CONTEXT_WIDTH_FACTO  R' of non-integral type [-fpermissive]
  111 |   static const float CONTEXT_WIDTH_FACTOR = CONTEXT_SIZE;        // used to create background context
      |                      ^~~~~~~~~~~~~~~~~~~~
parameters.h:189:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::THRESHOLD' of no  n-integral type [-fpermissive]
  189 |   static const float THRESHOLD = 1e-2;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:190:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::RELENT_THRESHOL   ' of non-integral type [-fpermissive]
  190 |   static const float RELENT_THRESHOLD = 0.00001; // used to decide upon perturbing parameters
      |                      ^~~~~~~~~~~~~~~~
parameters.h:193:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H0::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  193 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:267:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::THRESHOLD' of no  n-integral type [-fpermissive]
  267 |   static const float THRESHOLD = 1e-4;           // used to terminate training
      |                      ^~~~~~~~~
parameters.h:268:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::ALPHATHRESHOLD'   of non-integral type [-fpermissive]
  268 |   static const float ALPHATHRESHOLD = 1e-4;      // used to detect saturation of "alpha" in VarianceComputation
      |                      ^~~~~~~~~~~~~~
parameters.h:271:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H1::CHECK_FEN_THRESH  OLD' of non-integral type [-fpermissive]
  271 |   static const float CHECK_FEN_THRESHOLD = 0.1;
      |                      ^~~~~~~~~~~~~~~~~~~
parameters.h:342:23: warning: 'constexpr' needed for in-class initialization of static data member 'const float Parameters_H01::INF_LEAST_SQUAR  ES' of non-integral type [-fpermissive]
  342 |   static const float  INF_LEAST_SQUARES = 1000000;
      |                       ^~~~~~~~~~~~~~~~~
parameters.h:344:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LAMBDA_THRESHO  LD' of non-integral type [-fpermissive]
  344 |   static const DDTYPE  LAMBDA_THRESHOLD = 1e-10;       // at least one singular value must be greater than this
      |                        ^~~~~~~~~~~~~~~~
parameters.h:345:24: warning: 'constexpr' needed for in-class initialization of static data member 'const DDTYPE Parameters_H01::LEAST_SQUARES_  THRESHOLD' of non-integral type [-fpermissive]
  345 |   static const DDTYPE  LEAST_SQUARES_THRESHOLD = 1e-8;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
stubb_fixedprobs.cpp:41:27: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   41 | main(int argc, char **argv)
      |                           ^
stubb_fixedprobs.cpp: In function 'int main(int, char**)':
stubb_fixedprobs.cpp:61:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   61 |     _sequences[0] = new Sequence(argv[1],strlen(argv[1]), "Sequence");
      |                                                           ^~~~~~~~~~
make[1]: Leaving directory '/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/stubb_2.1'

The stubb make seems no error. After this, there are 3 subprogram generated stubb_fitprobs_noPseudoCount stubb_fixedprobs_noPseudoCount stubb_noPseudoCount.

Then, I test the stubb_noPseudoCount.

../bin/stubb_noPseudoCount eve.fna gap_wtmx 500 100
Segmentation fault (core dumped)

I don't know why core dumped.

My guess is that the LAGAN in the stubb is a problem.

A lot old version softwares confused me.

I don't know how deal with it.

MichaelHiller commented 3 years ago

Here is what Bjoern replied "Unfortunately not really. I can say, that I don't get any of these warnings wtmx.h:46:22: warning: 'constexpr' needed for in-class initialization of static data member 'const float WtMx::SMALL_FREQUENCY' of non-integral type [-fpermissive]" when compiling it with gcc 4.8.5. And I read that the fpermissive flag (that we added in the patch) turns some errors into warnings and let's the compiler deal with it. So I wonder whether it might be a compiler issue, causing the stubb program to be faulty?

In any case the command that you used on stubb's sample data should certainly not core dump, but rather create the following files eve.fna.dict eve.fna.fen eve.fna.fitprobs eve.fna.prof eve.fna.parameters But I guess this does not help. Maybe trying a different compiler version is an option?"

Hard for us to debug, as it looks like you can't compile a proper stubb executable on your system. Could you pls try to use another compiler or try to compile it on a different system?

yuzhenpeng commented 3 years ago

Hi, Michael Today, I remake the stubb again. This time, I didn't run patch -p1 < ../REforge/stubb.patch this line command. I compiled a proper stubb executable on my computer.

In the stubb bin file, it generated

stubb
stubb_fitprobs
stubb_fixedprobs
stubbh01
stubbh01f
stubbms
stubbms_modifyalignments

Then, I checkd it by run stubb. It works well.

bin/stubb sample/eve.fna sample/gap_wtmx 500 100 -od sample/output/ -b sample/eve.fna -ft 10.0 -ot 0.5

image

So, I think the error maybe appear at patch -p1 < ../REforge/stubb.patch this command.

Finall, I changed the order for installing software. I done it. The details as followd.

git clone https://github.com/hillerlab/REforge
cp /path/to/stubb_2.1.tar.gz /path/to/newmat11.tar.gz .
tar -xvf stubb_2.1.tar.gz
tar -xvf newmat11.tar.gz -C stubb_2.1/lib/newmat/

cd stubb_2.1/lib/newmat/
gmake -f nm_gnu.mak

cd ../../
export LAGAN_DIR=<path of Stubb installation dir>/lib/mlagan/
make
export PATH=$PATH:`pwd`/bin

patch -p1 < ../REforge/stubb.patch
cd ../REforge/
export PATH=$PATH:`pwd`

Follow my pipeline, I can run REforge very well. Thank you.

yuzhenpeng commented 3 years ago

In addition, I have some minor problem.

First, my computer is not a cluster. My system is a single node with 120 CPU. I want to know how to make REforge run faster. Because I have millions CREs. Do you have some suggestion. For instance, I can use ParaFly or parallel UNIX command.

parallel -j 50 < alljobs_scores_simulation >scores_simulation

right?

Second, in your two paper 《REforge associates transcription factor binding site divergence in regulatory elements with phenotypic differences between species》《Phenotype loss is associated with widespread divergence of the gene regulatory landscape in evolution》. The motif files download from three database TRANSFAC (http://gene-regulation.com/pub/databases. html), JASPAR (http://jaspar.genereg.net/), and UniPROBE (http://the_brain.bwh.harvard.edu/uniprobe/). I wonder if I can use only one database of motifs, such as JASPAR v2020.

Third, how to understand the result of REforge. Could you give me a detail instruction.

element Pearson NoPos   NoNeg
element_sequences/el137_10000.fa    1.611667136609531e-13   3   35
element_sequences/el148_10000.fa    3.352651497840744e-14   3   35
element_sequences/el175_10000.fa    3.645154612081634e-13   3   35
element_sequences/el177_10000.fa    1.8472912489148075e-08  3   35
element_sequences/el183_10000.fa    1.8782130820708144e-11  3   35
element_sequences/element102.fa 0.8109932855355972  3   35
element_sequences/element1107.fa    0.9867986247902691  3   35
element_sequences/element1121.fa    0.5061215688707662  3   35
element_sequences/element1132.fa    0.9954530565532043  3   35
element_sequences/element1143.fa    0.8136249593852083  3   35
element_sequences/element1152.fa    0.640508236911535   3   35
element_sequences/element1158.fa    0.9711450062165548  3   35
element_sequences/element1179.fa    0.1399153300882689  3   35
element_sequences/element118.fa 0.824361535086912   3   35
element_sequences/element1211.fa    0.9231944519126382  3   35
element_sequences/element1243.fa    0.6279942992517676  3   35
element_sequences/element1250.fa    0.8821190489199983  3   35
element_sequences/element1260.fa    0.09293649956560526 3   35
element_sequences/element1264.fa    0.9485657407772121  3   35
element_sequences/element1276.fa    0.7161596245025917  3   35
element_sequences/element1298.fa    0.9949253993812173  3   35
element_sequences/element14.fa  0.9892027368389182  3   35
element_sequences/element141.fa 0.6982126809097726  3   35
element_sequences/element145.fa 0.9992470893019967  3   35
element_sequences/element155.fa 0.991691685037249   3   35
element_sequences/element204.fa 0.6837680559437199  3   35
element_sequences/element235.fa 0.3951567176962006  3   35
element_sequences/element259.fa 0.995436238332186   3   35
element_sequences/element264.fa 0.9879709196095652  3   35
element_sequences/element269.fa 0.7512760374328913  3   35
element_sequences/element296.fa 0.5509355303202539  3   35
element_sequences/element298.fa 0.9894130237736649  3   35
element_sequences/element304.fa 0.814315545162078   3   35
element_sequences/element317.fa 0.46394015673740446 3   35
element_sequences/element350.fa 0.13142657655943266 3   35
element_sequences/element351.fa 0.0552491780218987  3   35
element_sequences/element37.fa  0.8045520627735727  3   35
element_sequences/element372.fa 0.4680388988553714  3   35
element_sequences/element394.fa 0.3516232071780737  3   35
element_sequences/element396.fa 0.9222135198487875  3   35
element_sequences/element476.fa 0.7691100321112827  3   35
element_sequences/element496.fa 0.9999431874646902  3   35
element_sequences/element534.fa 0.35892143811963995 3   35
element_sequences/element553.fa 0.3763251274559761  3   35
element_sequences/element572.fa 0.9650982834940629  3   35
element_sequences/element675.fa 0.6167657607074326  3   35
element_sequences/element696.fa 0.9272141797800146  3   35
element_sequences/element729.fa 0.15474610968263341 3   35
element_sequences/element738.fa 0.6820022979720075  3   35
element_sequences/element757.fa 0.814281148245527   3   35
element_sequences/element772.fa 0.9951772401392943  3   35
element_sequences/element808.fa 0.975511577755471   3   35
element_sequences/element852.fa 0.994470854832611   3   35
element_sequences/element903.fa 0.438709185850117   3   35
element_sequences/element949.fa 0.8734686842028289  3   35

Thank you.

yuzhenpeng commented 3 years ago

Unfortunately, when I tested my own data, REforge crashed again.

$bash alljobs_scores_simulation

motifs.wtmx     elements/CNEE1.fa       WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_                                                                     noPseudoCount TCGGATAAACATTAAGGCTGGCGCCACTGGGTTGGAAGCTACACGGTCACTCGGGGACTTTAATTACAAGACGAGCTTTATTCATCGCTG                                                                     TCACATCAA motifs.wtmx 200.0 1  -b /Bio/home/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_l                                                                     astz/multiple_alignment/phastcons/REforge/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-ze                                                                     ro exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount AGATACCCGAATGTTAAATCCACTGA                                                                     GTCATTGCACCAGGTGGCGCGGAGGACGTACTTCAACGTTTCAATAAACTGATGAGCCGGTCTAGTTCATTCG motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount GGACAGGCCCCTATACGTAGTGAAAG                                                                     ACTCCTCATACGACAGTGACCCGTCAATTGTGGCACATGTCCGTGGATGGTACAACATTTTTGTAGAACGATT motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount CCAGTCCGCCTCGGAGTCGATTCGAT                                                                     TAGGAGGATAACACACTCGAATGTTCCTGTTGGTAGTCAAAGATATTGCATCCATAGCGCAGTTAAACGCTAG motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount ATGAGGCCATACACGATACTAGCAGA                                                                     ACGTACTTGGGTGAGCCTAATTATCTTCAAACGGGTGGTCCTCATTGACAACTGCCTTACACTGCGTATGGAG motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount TAAGTAGGTCTCTGATCATGTCACTC                                                                     GAGGTTTGCAGTATAACCCCCGTCGCTCGACAGGACTATGAGAGTCGGAGACAGCCATCTCAGATTTAATAGA motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount TTTGAAGATAGGTGTATGACTAGGGA                                                                     TACACGCGCTTAAGCAATTCGTCCAGTCTGCAAGTGCGCAGATGGCGATAGACGCACTACTTTCCATTACACC motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount GATATACCAATAATCTACTTCTTGGT                                                                     CCCAGGTAGCTGGCTGGCAGAGAACAGCTCGAAACAACAGTGTAGTAAGCTTCCCACGCTACTGATTGGTGGT motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount TGTTTCGGACCTAAGTTTTGGTGATA                                                                     TGTGAGCAAGCGTCCATCGGGAACAAAAGCTAACGCGGCTTATCATTGTTGAATACCACAGACGCTCCCGAAC motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
WARNING:root:Error in score_sequence_with_stubb: Command 'stubb_noPseudoCount GACGTGAAAATTGGTCTCTTTGCGAC                                                                     ATACGGAAATGTCGGCTAGGAGTCGACAAAATCAAATGCTGAGATTGCGACTGTCTACTGCTACTCGCCCTCA motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa -brief -seq' returned non-zero exit status 1.
Error reading weight matrix file
WARNING:root:Error occured while scoring sequence None :
 Command 'stubb_noPseudoCount /Bio/home/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz                                                                     /multiple_alignment/phastcons/REforge/chr1/tempDir/bwha-tlat-vna3jcwy.tmp motifs.wtmx 200.0 1  -b /Bio/h                                                                     ome/Yanglab/Yuzhenpeng/mammals_genome_alignment/marine_mammals_lastz/multiple_alignment/phastcons/REforg                                                                     e/chr1/background//gc0.47/gc0.47.fa' returned non-zero exit status 1.
Traceback (most recent call last):
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 172, in <modul                                                                     e>
    sys.exit(__score_branches())
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 165, in __scor                                                                     e_branches
    anc0filter=not args.no_ancestral_filter)
  File "/Bio/home/Yanglab/Yuzhenpeng/opt/biosoft/REforge/REforge_branch_scoring.py", line 97, in travers                                                                     e_tree
    os.remove(seq_tmpfile + suffix)
FileNotFoundError: [Errno 2] No such file or directory: '/Bio/home/Yanglab/Yuzhenpeng/mammals_genome_ali                                                                     gnment/marine_mammals_lastz/multiple_alignment/phastcons/REforge/chr1/tempDir/bwha-tlat-vna3jcwy.tmp.dic                                                                     t'
<

I guess the format of motifs is bad. Or may be orther files bad format. Do you have script for dealing with the motif files. This my data link. https://fil.email/ZZpEQaE0

Thank you.

MichaelHiller commented 3 years ago

Bjoern thinks that the motif file format was wrong. Stubb expects as the following format as 'motif header':

motif_name motif_length pseudo_count

Therefore by reformatting the motif file Stubb runs and with Stubb also REforge. I used this hack to reformat the motif file: cat motifs.wtmx | sed -e 's/[[:space:]]+/|/g' | tr '\n' '\t' | sed 's/<\t/<\n/g' | awk '{OFS = "\n"; first = $1; $1 = ""; print first"\t"NF-2$0 }' | sed 's/|/\t/g' | sed -r 's/>MOTIF\t([^\t]*)\t([^\t]+)\t([0-9]+)/>\1\t\3\t0.001/g' > motifs_reformated.wtmx

Pls let us know if this works

yuzhenpeng commented 3 years ago

Bjoern thinks that the motif file format was wrong. Stubb expects as the following format as 'motif header':

motif_name motif_length pseudo_count

Therefore by reformatting the motif file Stubb runs and with Stubb also REforge. I used this hack to reformat the motif file: cat motifs.wtmx | sed -e 's/[[:space:]]+/|/g' | tr '\n' '\t' | sed 's/<\t/<\n/g' | awk '{OFS = "\n"; first = $1; $1 = ""; print first"\t"NF-2$0 }' | sed 's/|/\t/g' | sed -r 's/>MOTIF\t([^\t]*)\t([^\t]+)\t([0-9]+)/>\1\t\3\t0.001/g' > motifs_reformated.wtmx

Pls let us know if this works

Hello, Michael. I wonder the motifs.wtmx mentioned here is your data example? Or my own data? thank you.

MichaelHiller commented 3 years ago

I will clarify this with Bjoern. Could be that this part of the documentation is missing. Sorry

yuzhenpeng commented 3 years ago

Ok. thank you. In addition, I found the format of motifs in stubb sample is different with your example. Is this your software specific?

MichaelHiller commented 3 years ago

Bjoern added a description on how the motif header should be structured. If you stick to these headers, it will work. Thanks a lot for reporting this issue.

rmandla commented 3 years ago

Hi,

I just wanted to confirm that I am also getting this issue, and the change in the patch order that @yuzhenpeng describes does not fix my issue. I get this error both when using Manjaro 5.4 and on an Ubuntu 20.04 docker image. However, the example script runs without any errors when using an Ubuntu 18.04 docker image. I don't know if this is an issue with the updated default versions of gcc/g++ running on the latest versions of these os, since downgrading the g++ version on Makefile.ss and nm_gnu.mak files during the Stubb compilation to g++98 does not fix the issue.

For reference, I attached both of the dockerfiles I used to install REforge and test the seg fault issues in different ubuntu versions.

Dockerfile-ubuntu18.txt Dockerfile-ubuntu20.txt

rmandla commented 3 years ago

For people who also run into this issue, I recommend using docker to run REforge on ubuntu 18.04 as described in the Dockerfile-ubuntu18.txt file posted above (just make sure stubb_2.1.tar.gz and newmat11.tar.gz are in the same directory as the Dockerfile), modified to transfer the background sequences, motifs, test sequences, tree file, etc. to the image for analysis, until the issue is patched.

aaannaw commented 6 days ago

Hi, Michael Today, I remake the stubb again. This time, I didn't run patch -p1 < ../REforge/stubb.patch this line command. I compiled a proper stubb executable on my computer.

In the stubb bin file, it generated

stubb
stubb_fitprobs
stubb_fixedprobs
stubbh01
stubbh01f
stubbms
stubbms_modifyalignments

Then, I checkd it by run stubb. It works well.

bin/stubb sample/eve.fna sample/gap_wtmx 500 100 -od sample/output/ -b sample/eve.fna -ft 10.0 -ot 0.5

image

So, I think the error maybe appear at patch -p1 < ../REforge/stubb.patch this command.

Finall, I changed the order for installing software. I done it. The details as followd.

git clone https://github.com/hillerlab/REforge
cp /path/to/stubb_2.1.tar.gz /path/to/newmat11.tar.gz .
tar -xvf stubb_2.1.tar.gz
tar -xvf newmat11.tar.gz -C stubb_2.1/lib/newmat/

cd stubb_2.1/lib/newmat/
gmake -f nm_gnu.mak

cd ../../
export LAGAN_DIR=<path of Stubb installation dir>/lib/mlagan/
make
export PATH=$PATH:`pwd`/bin

patch -p1 < ../REforge/stubb.patch
cd ../REforge/
export PATH=$PATH:`pwd`

Follow my pipeline, I can run REforge very well. Thank you.

@yuzhenpeng Hello, I occurred the same error and I try to change the order like you. However, I am confused with export LAGAN_DIR=<path of Stubb installation dir>/lib/mlagan/. I downloaded the LAGAN software: wget http://lagan.stanford.edu/lagan_web/lagan20.tar.gz and then decompressed it withtar -xvf lagan20.tar.gz -C stubb_2.1/lib/mlagan. Then I install TFforge according to your pipeline. However, I got the error when make. Could you give me any suggestions? Best wishes! Na Wan