mummer4 / mummer

Mummer alignment tool
Artistic License 2.0
433 stars 108 forks source link

How to install the develop branch, I get a "no makefile" error #209

Closed margaretc-ho closed 3 months ago

margaretc-ho commented 3 months ago

I recently submitted an issue with mummerplot in mummer which was fixed in the develop branch (https://github.com/mummer4/mummer/issues/206). However, I tried to install the develop branch (https://github.com/mummer4/mummer/tree/develop) as follows:

git clone -b develop https://github.com/mummer4/mummer conda create --name mummer conda activate mummer conda install conda-forge::fig2dev conda install conda-forge::xfig

However, I am unable to run "make install" because it cannot find a makefile. What can I do to fix this? How would one install the develop branch in order to get the latest version of mummerplot? Thank you

gmarcais commented 3 months ago

Please see the installation instructions.

In short, if you are compiling from the github tree rather than the release tarball you need to have autoconf, automake, libtools and yaggo installed (in addition to the usual build-essential. All of it is available on Debian/Ubuntu).

Then do the following:

autoreconf -fi
./configure
make
make install

This installs in /usr/local. Used --prefix=/path with ./configure to change the installation directory.

margaretc-ho commented 3 months ago

I was finally able to get this installed and working, with a few tweaks that required a second recompile.

This is how it ended up working:

git clone -b develop https://github.com/mummer4/mummer
conda create --name mummer
conda activate mummer
conda install conda-forge::fig2dev
conda install conda-forge::xfig
conda install bioconda::yaggo

the HPC I was working on had older versions of autoconf and automake, so I used the latest versions available otherwise the command autoreconf -fi would fail on a variable name error

module load autoconf/2.71
module load automake/1.16.5

Was then able to proceed:

autoreconf -fi
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
configure.ac:8: installing './compile'
conda activate mummer
./configure --prefix=/pathto/conda_envs/envs/mummer
make
make install
conda activate mummer
module load gnuplot/5.4.5

I then ran into an error "WARNING: Unable to run 'false mummer_data.gp', Inappropriate ioctl for device" (as reported here https://github.com/mummer4/mummer/issues/36) when running mummerplot and fixed it by changing "my $GNUPLOT_EXE = "false"; to my $GNUPLOT_EXE = "gnuplot"; in the mummerplot script and recompiling as above.

margaretc-ho commented 3 months ago

It does work now. The plots are not the prettiest and I did later end up going with dotPlotly as some other people suggested, but that only works for nucmer delta files. When running mummer (say if you wanted to avoid the issue of nucmer aligning N's https://github.com/mummer4/mummer/issues/51 because you want to use masking on the genome), you're kind of stuck with mummerplot and whatever it gives you unless one wants to rewrite code to plot the .MUM file yourself.