gpertea / stringtie

Transcript assembly and quantification for RNA-Seq
MIT License
378 stars 78 forks source link

Vendored samtools is missing files #233

Closed dpryan79 closed 5 years ago

dpryan79 commented 5 years ago

The version of samtools that you've vendored with stringTie is missing bcftools/bcf.h, which is needed https://github.com/gpertea/stringtie/blob/master/samtools-0.1.18/Makefile#L58

The result is:

make[1]: *** No rule to make target `bcftools/bcf.h', needed by `bam_plcmd.o'.  Stop.
dpryan79 commented 5 years ago

Xref: https://github.com/bioconda/bioconda-recipes/pull/16927

gpertea commented 5 years ago

I noticed the bioconda recipe attempts to build separately (explicitly) the included samtools source tree:

pushd samtools-0.1.18
make CC=${CC} CFLAGS="${CFLAGS}"
popd

These lines are not necessary and they will fail because we only packaged what is needed to build the lib target from that samtools makefile and source tree. The main Makefile of StringTie does build that particular target automatically. So the above lines are unnecessary and should be removed from the recipe -- hopefully that should solve the problem, as I see the recipe calls make release later as needed, and that should take care of building the part of samtools that is needed for the proper stringtie build.

Please note that the samtools source included with StringTie is actually a trimmed down version of the early samtools release (0.1.18), also with a few custom patches (mainly backported fixes), so it is not fully identical to the original samtools 0.1.18 code. During the stringtie build only the library file is built from the samtools code and then statically linked into the stringtie program as needed.

Please let me know if there is anything else I can do to help with the conda recipe for StringTie - we are grateful for the work being put into creating & maintaining these conda packages.

dpryan79 commented 5 years ago

Ah, good to know. I added that in since otherwise the wrong compiler was being used. I'll change how that's done then.