institut-de-genomique / Gmove

Gmove is a gene prediction tool
http://www.genoscope.cns.fr/gmove
20 stars 2 forks source link

Compilation error #6

Open alexcorm opened 1 year ago

alexcorm commented 1 year ago

Hi,

I can't compile the latest version of GMove. I get the following error:

g++  -I/usr/include/boost/ -I.  -O3 -W -Wall -Wno-long-long -Wno-variadic-macros -Wno-deprecated -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g  -c -o GffRecord.o GffRecord.cpp
g++  -I/usr/include/boost/ -I.  -O3 -W -Wall -Wno-long-long -Wno-variadic-macros -Wno-deprecated -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g  -c -o GffRecordList.o GffRecordList.cpp
g++  -I/usr/include/boost/ -I.  -O3 -W -Wall -Wno-long-long -Wno-variadic-macros -Wno-deprecated -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g  -c -o SSRContig.o SSRContig.cpp
g++  -I/usr/include/boost/ -I.  -O3 -W -Wall -Wno-long-long -Wno-variadic-macros -Wno-deprecated -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g  -c -o SSRContigList.o SSRContigList.cpp
In file included from SSRContigList.h:15,
                 from SSRContigList.cpp:10:
NetEx.h: In constructor 'NetEx::NetEx(TSSRList*, std::__cxx11::list<std::pair<int, int> >*, std::string&, std::map<std::pair<int, int>, int>)':
NetEx.h:146:14: error: call of overloaded 'advance(std::__cxx11::list<SSRContig*>::iterator&, int&)' is ambiguous
  146 |       advance(it1,nb);
      |       ~~~~~~~^~~~~~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:66,
                 from /usr/include/c++/11/bits/char_traits.h:39,
                 from /usr/include/c++/11/ios:40,
                 from /usr/include/c++/11/ostream:38,
                 from /usr/include/c++/11/iostream:39,
                 from SSRContig.h:14,
                 from SSRContigList.h:14,
                 from SSRContigList.cpp:10:
/usr/include/c++/11/bits/stl_iterator_base_funcs.h:202:5: note: candidate: 'constexpr void std::advance(_InputIterator&, _Distance) [with _InputIterator = std::_List_iterator<SSRContig*>; _Distance = int]'
  202 |     advance(_InputIterator& __i, _Distance __n)
      |     ^~~~~~~
In file included from /usr/include/boost/next_prior.hpp:25,
                 from /usr/include/boost/pending/container_traits.hpp:15,
                 from /usr/include/boost/graph/named_graph.hpp:23,
                 from /usr/include/boost/graph/adjacency_list.hpp:36,
                 from /usr/include/boost/graph/graphviz.hpp:24,
                 from NetEx.h:18,
                 from SSRContigList.h:15,
                 from SSRContigList.cpp:10:
/usr/include/boost/iterator/advance.hpp:68:9: note: candidate: 'constexpr void boost::iterators::advance_adl_barrier::advance(InputIterator&, Distance) [with InputIterator = std::_List_iterator<SSRContig*>; Distance = int]'
   68 |         advance(InputIterator& it, Distance n)
      |         ^~~~~~~
make: *** [<builtin>: SSRContigList.o] Error 1

Best

pkrog commented 1 year ago

Hi, I've got the same error under Ubuntu 22.04. Are you under this system too ? I'll investigate and go back to you for a solution.

alexcorm commented 1 year ago

Hi Pierrick, Yes, I'm also under Ubuntu 22.04.

pkrog commented 1 year ago

I've done a patch to correct compilation for Ubuntu. My colleague, responsible for this project, will integrate the patch and come to you with an updated version.

alexcorm commented 1 year ago

Hi, Do you expect to release the new version in the next few weeks?

BeNoel7 commented 1 year ago

Hi, Sorry for the delay. I've pushed a new version yesterday that should correct the error compilation for Ubuntu, as Pierrick said. Let us know if there is any problem

alexcorm commented 1 year ago

Hi, The compilation went well, thanks for the correction.

auryjm commented 1 year ago

Hi Alexandre, We uploaded a new release that fixes two bugs encountered with recent c++ compilers. Do not hesitate to download this new version!

alexcorm commented 1 year ago

Thanks, the compilation is done without errors, I just have the following warning:

g++  -I/usr/include/boost/ -I.  -O3 -W -Wall -Wno-long-long -Wno-variadic-macros -Wno-deprecated -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g  -c -o GeneModelList.o GeneModelList.cpp
GeneModelList.cpp: In member function 'void GeneModelList::deleteIncludedModel()':
GeneModelList.cpp:51:73: warning: ignoring return value of 'bool std::operator!=(const _List_iterator<pair<int, int> >::_Self&, const _List_iterator<pair<int, int> >::_Self&)', declared with attribute 'nodiscard' [-Wunused-result]
   51 |       for(itExon1 = exonCDS1.begin(),itExon2 = exonCDS2.begin(); itExon1!= exonCDS1.end(), itExon2!= exonCDS2.end() && LOOP;++itExon1, ++itExon2){
      |                                                                  ~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12.2.1/list:63,
                 from SSRContig.h:19,
                 from GeneModel.h:17,
                 from GeneModelList.h:11,
                 from GeneModelList.cpp:8:
/usr/include/c++/12.2.1/bits/stl_list.h:324:7: note: declared here
  324 |       operator!=(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~

I wonder if this could explain the fact that the final annotation contains only mono-exonic genes or if the format of my input files is not good?

Subest of gmove output:

chr24   Gmove   mRNA    27282   27512   23.1    -   .   ID=mRNA.chr24.1.1;Name=mRNA.chr24.1.1;start=1;stop=1;cds_size=231;model_size=231;exons=1
chr24   Gmove   CDS 27282   27512   .   -   .   Parent=mRNA.chr24.1.1
chr24   Gmove   mRNA    28715   28985   27  -   .   ID=mRNA.chr24.2.1;Name=mRNA.chr24.2.1;start=0;stop=0;cds_size=270;model_size=273;exons=1
chr24   Gmove   CDS 28716   28985   .   -   .   Parent=mRNA.chr24.2.1
chr24   Gmove   mRNA    30658   30771   11.4    -   .   ID=mRNA.chr24.3.1;Name=mRNA.chr24.3.1;start=1;stop=1;cds_size=114;model_size=114;exons=1
chr24   Gmove   CDS 30658   30771   .   -   .   Parent=mRNA.chr24.3.1
chr24   Gmove   mRNA    31845   32063   21.9    -   .   ID=mRNA.chr24.4.1;Name=mRNA.chr24.4.1;start=1;stop=0;cds_size=219;model_size=219;exons=1
chr24   Gmove   CDS 31845   32063   .   -   .   Parent=mRNA.chr24.4.1
chr24   Gmove   mRNA    33901   34176   27.6    -   .   ID=mRNA.chr24.5.1;Name=mRNA.chr24.5.1;start=0;stop=1;cds_size=276;model_size=276;exons=1
chr24   Gmove   CDS 33901   34176   .   -   .   Parent=mRNA.chr24.5.1
chr24   Gmove   mRNA    37695   37893   19.8    -   .   ID=mRNA.chr24.6.1;Name=mRNA.chr24.6.1;start=0;stop=0;cds_size=198;model_size=200;exons=1
chr24   Gmove   CDS 37696   37893   .   -   .   Parent=mRNA.chr24.6.1
chr24   Gmove   mRNA    38003   38168   16.5    -   .   ID=mRNA.chr24.7.1;Name=mRNA.chr24.7.1;start=0;stop=0;cds_size=165;model_size=168;exons=1
chr24   Gmove   CDS 38004   38168   .   -   .   Parent=mRNA.chr24.7.1
chr24   Gmove   mRNA    38237   38482   24.6    -   .   ID=mRNA.chr24.8.1;Name=mRNA.chr24.8.1;start=0;stop=1;cds_size=246;model_size=246;exons=1
chr24   Gmove   CDS 38237   38482   .   -   .   Parent=mRNA.chr24.8.1
chr24   Gmove   mRNA    43593   44036   44.4    -   .   ID=mRNA.chr24.9.1;Name=mRNA.chr24.9.1;start=1;stop=0;cds_size=444;model_size=444;exons=1
chr24   Gmove   CDS 43593   44036   .   -   .   Parent=mRNA.chr24.9.1
chr24   Gmove   mRNA    50089   50307   21.9    -   .   ID=mRNA.chr24.10.1;Name=mRNA.chr24.10.1;start=0;stop=1;cds_size=219;model_size=219;exons=1

Input files:

chr24   AUGUSTUS    stop_codon  27282   27284   .   -   0   ID=g16500.t2.stop1;Parent=g16500.t2
chr24   AUGUSTUS    stop_codon  27282   27284   .   -   0   ID=g16500.t1.stop1;Parent=g16500.t1
chr24   AUGUSTUS    mRNA    27282   35316   0.87    -   .   ID=g16500.t2;Parent=g16500
chr24   AUGUSTUS    gene    27282   82670   1.73    -   .   ID=g16500
chr24   AUGUSTUS    mRNA    27282   82670   0.86    -   .   ID=g16500.t1;Parent=g16500
chr24   AUGUSTUS    exon    27285   27490   .   -   .   ID=g16500.t2.exon1;Parent=g16500.t2
chr24   AUGUSTUS    CDS 27285   27490   0.86    -   2   ID=g16500.t1.CDS1;Parent=g16500.t1
chr24   AUGUSTUS    CDS 27285   27490   0.87    -   2   ID=g16500.t2.CDS1;Parent=g16500.t2
chr24   AUGUSTUS    exon    27285   27490   .   -   .   ID=g16500.t1.exon1;Parent=g16500.t1
chr24   miniprot    gene    27327   43766   2126    -   .   ID=nbisL1-mrna-37675;Target=ENSDARP00000085307.6 1 561;identity=0.7277;positive=0.8253;rank=2
chr24   miniprot    mRNA    27327   43766   2126    -   .   ID=ENSDARP00000085307.6_2;Parent=nbisL1-mrna-37675;Target=ENSDARP00000085307.6 1 561;identity=0.7277;positive=0.8253;rank=2
chr24   miniprot    exon    27327   27478   280 -   .   ID=nbis-exon-93411;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    28715   29057   280 -   .   ID=nbis-exon-93412;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    31845   32050   280 -   .   ID=nbis-exon-93413;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    33924   34176   280 -   .   ID=nbis-exon-93414;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    37695   37894   280 -   .   ID=nbis-exon-93415;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    38003   38170   280 -   .   ID=nbis-exon-93416;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    38251   38482   280 -   .   ID=nbis-exon-93417;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
chr24   miniprot    exon    43593   43766   280 -   .   ID=nbis-exon-93418;Parent=ENSDARP00000085307.6_2;Target=ENSDARP00000085307.6 1 58;identity=0.8966;rank=2
BeNoel7 commented 1 year ago

Sorry, we forget to answer to your question. The warning you had is not probably correlated to the fact you obtained only monoexonic genes. In fact, it seems gmove can't fully parsed the format of these input files which mean it cannot link exons together using exon identifiers. So, we will modify the parsing functions of input files in order to take into account these formats. I'll push a new release as soon as possible

BeNoel7 commented 1 year ago

I've uploaded a new version of the parsing function of input files. I've tested it with the example you gave above and gmove was now able to put together the exon to build multiexonic gene from GFF3 files. In the previous version, it didn't aggregates the exons together because it used identifier in ID field instead of the one in Parent field.

alexcorm commented 1 year ago

Thanks @BeNoel7, it also works on my side!