Commit 06e37325 authored by Damien Leroux's avatar Damien Leroux
Browse files

Package -AND MANUAL- compile fine so far.

parent 3733e77b
......@@ -111,22 +111,18 @@ if(${BUILD_FOR_DEPLOYMENT})
add_executable(spell-pedigree ${SPELL_PEDIGREE_SRC} ${libstdcpp})
add_executable(spell-marker ${SPELL_MARKER_SRC})
add_executable(spell-qtl ${SPELL_QTL_SRC} ${libstdcpp})
add_custom_command(OUTPUT glibc.h libstdc++.a COMMAND ${CMAKE_SOURCE_DIR}/deploy/make_old_libc_header.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
add_custom_command(OUTPUT libgmp.a COMMAND ${CMAKE_SOURCE_DIR}/deploy/compile_gmp.sh ${CMAKE_BINARY_DIR}/glibc.h ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/deploy)
add_custom_command(
OUTPUT glibc.h libstdc++.a
COMMAND ${CMAKE_SOURCE_DIR}/deploy/make_old_libc_header.sh
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
add_custom_command(
OUTPUT libgmp.a
COMMAND ${CMAKE_SOURCE_DIR}/deploy/compile_gmp.sh ${CMAKE_BINARY_DIR}/glibc.h ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/deploy)
add_custom_target(glibc.h)
#add_custom_target(stdc++ ${CMAKE_BINARY_DIR}/libstdc++.a)
#add_library(stdc++ INTERFACE IMPORTED)
#set_property(TARGET stdc++ PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_BINARY_DIR}/libstdc++.a)
add_library(gmp INTERFACE IMPORTED)
add_custom_target(pouet ALL DEPENDS ${CMAKE_BINARY_DIR}/libgmp.a)
#set_property(TARGET gmp PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_BINARY_DIR}/libgmp.a)
#set_target_properties(stdc++ PROPERTIES LINKER_LANGUAGE CXX)
#set_target_properties(gmp PROPERTIES LINKER_LANGUAGE C)
#add_dependencies(gmp stdc++)
#set_source_files_properties(${CMAKE_BINARY_DIR}/libgmp.a PROPERTIES GENERATED TRUE)
#set_source_files_properties(${libstdcpp} PROPERTIES GENERATED TRUE)
#set_source_files_properties(${CMAKE_BINARY_DIR}/libstdc++.a PROPERTIES EXTERNAL_OBJECT TRUE GENERATED TRUE)
SET_SOURCE_FILES_PROPERTIES(${SPELL_PEDIGREE_SRC} ${SPELL_MARKER_SRC} ${SPELL_QTL_SRC}
PROPERTIES
......@@ -146,10 +142,6 @@ if(${BUILD_FOR_DEPLOYMENT})
target_link_libraries(spell-marker ${libstdcpp} ${CMAKE_BINARY_DIR}/libgmp.a)
target_link_libraries(spell-qtl ${libstdcpp})
target_link_libraries(spell-pedigree ${libstdcpp})
#list(APPEND spell-pedigree_SRC "${CMAKE_BINARY_DIR}/libstdc++.a")
#list(APPEND spell-qtl_SRC "${CMAKE_BINARY_DIR}/libstdc++.a")
#list(APPEND spell-marker_SRC "${CMAKE_BINARY_DIR}/libstdc++.a")
else()
add_executable(spell-pedigree ${SPELL_PEDIGREE_SRC})
add_executable(spell-marker ${SPELL_MARKER_SRC})
......@@ -183,6 +175,9 @@ add_manpage(spell-marker.1)
add_manpage(spell-qtl.1)
add_manpage(spell-qtl-examples.1)
add_custom_target(user_manual.pdf ALL COMMAND ./build_manual.sh ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/deploy)
add_dependencies(user_manual.pdf spell-pedigree spell-marker spell-qtl)
#add_custom_command(OUTPUT spell-marker.1
# COMMAND pandoc -t man ${CMAKE_SOURCE_DIR}/doc/man/spell-marker.1.md -o spell-marker.1
# MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/doc/man/spell-marker.1.md
......@@ -214,6 +209,9 @@ INSTALL(TARGETS spell-pedigree spell-marker spell-qtl DESTINATION bin)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/examples/read-POP.R
DESTINATION share/spell-qtl/examples)
INSTALL(FILES ${CMAKE_BINARY_DIR}/doc/user_manual.pdf
DESTINATION share/doc/spell-qtl)
INSTALL(FILES
${CMAKE_SOURCE_DIR}/examples/three_parents_F2/example1_F2C.gen
${CMAKE_SOURCE_DIR}/examples/three_parents_F2/example1_F2C.phen
......
......@@ -9,9 +9,11 @@ cd gmp
cd gmp-6.1.2 || (curl https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz -o - | xz -d | tar xf - && cd gmp-6.1.2)
# cleanup and configure
[ -f Makefile ] && make clean
CFLAGS="-include $PATH_TO_GLIBC_H" ./configure --disable-shared --enable-fake-cpuid --enable-fat
if [ -f Makefile ]; then
make clean
else
CFLAGS="-include $PATH_TO_GLIBC_H" ./configure --disable-shared --enable-fat
fi
# build
make
......
......@@ -4,41 +4,51 @@ SRCDIR = /home/sjasson/dev/spel
EXAMPLE_DIR = $(SRCDIR)/examples/three_parents_F2
user_manual.pdf : spell-pedigree.tex spell-marker.tex spell-qtl.tex spell-qtl-examples.tex version.tex user_manual.tex images/Spell-pipeline2.svg inputs outputs
user_manual.pdf: spell-pedigree.tex spell-marker.tex spell-qtl.tex spell-qtl-examples.tex version.tex user_manual.tex images/Spell-pipeline2.svg inputs outputs
pdflatex --shell-escape user_manual.tex && pdflatex --shell-escape user_manual.tex
version.tex :
version.tex:
git tag | tail -1 > version.tex
spell-pedigree.tex : $(SRCDIR)/doc/man/spell-pedigree.1.md
spell-pedigree.tex: $(SRCDIR)/doc/man/spell-pedigree.1.md
/usr/bin/pandoc $(SRCDIR)/doc/man/spell-pedigree.1.md --listings -f markdown -t latex -o spell-pedigree.tex
sed -i s/\\label\{/\label\{spell-pedigree:/g spell-pedigree.tex
spell-marker.tex : $(SRCDIR)/doc/man/spell-marker.1.md
spell-marker.tex: $(SRCDIR)/doc/man/spell-marker.1.md
/usr/bin/pandoc $(SRCDIR)/doc/man/spell-marker.1.md --listings -f markdown -t latex -o spell-marker.tex
sed -i s/\\label\{/\label\{spell-marker:/g spell-marker.tex
spell-qtl.tex : ../man/spell-qtl.1.md
spell-qtl.tex: ../man/spell-qtl.1.md
/usr/bin/pandoc $(SRCDIR)/doc/man/spell-qtl.1.md --listings -f markdown -t latex -o spell-qtl.tex
sed -i s/\\label\{/\label\{spell-qtl:/g spell-qtl.tex
spell-qtl-examples.tex : $(SRCDIR)/doc/man/spell-qtl-examples.1.md
spell-qtl-examples.tex: $(SRCDIR)/doc/man/spell-qtl-examples.1.md
/usr/bin/pandoc $(SRCDIR)/doc/man/spell-qtl-examples.1.md --listings -f markdown -t latex -o spell-qtl-examples.tex
sed -i s/\\label\{/\label\{spell-qtl-examples:/g spell-qtl-examples.tex
inputs :
input_files/example1.map input_files/example1_F2.phen input_files/example1_F2.gen input_files/example1.ped:input_files/%: $(EXAMPLE_DIR)/% input_dir
awk -v len=73 '{ if (length($$0) > len) print substr($$0, 1, len-3) "..."; else print; }' $< > $@
input_dir:
mkdir -p input_files
awk -v len=73 '{ if (length($$0) > len) print substr($$0, 1, len-3) "..."; else print; }' $(EXAMPLE_DIR)/example1.map > input_files/example1.map
awk -v len=73 '{ if (length($$0) > len) print substr($$0, 1, len-3) "..."; else print; }' $(EXAMPLE_DIR)/example1_F2.phen > input_files/example1_F2.phen
awk -v len=73 '{ if (length($$0) > len) print substr($$0, 1, len-3) "..."; else print; }' $(EXAMPLE_DIR)/example1_F2.gen > input_files/example1_F2.gen
awk -v len=73 '{ if (length($$0) > len) print substr($$0, 1, len-3) "..."; else print; }' $(EXAMPLE_DIR)/example1.ped > input_files/example1.ped
inputs: input_dir input_files/example1.map input_files/example1_F2.phen input_files/example1_F2.gen input_files/example1.ped
my_directory/my_name.spell-pedigree.data: $(EXAMPLE_DIR)/example1.ped
$(BINDIR)/spell-pedigree -wd my_directory -n my_name -p $<
outputs :
$(BINDIR)/spell-pedigree -wd my_directory -n my_name -p $(EXAMPLE_DIR)/example1.ped
my_directory/my_name.spell-marker.data: my_directory/my_name.spell-pedigree.data $(EXAMPLE_DIR)/example1_F2.gen $(EXAMPLE_DIR)/example1_F2C.gen
$(BINDIR)/spell-marker -wd my_directory -n my_name -m F2:A/B $(EXAMPLE_DIR)/example1_F2.gen -m F2C:A/C $(EXAMPLE_DIR)/example1_F2C.gen -o F2,F2C -O1 -Op
$(BINDIR)/spell-qtl -wd my_directory -n my_name -p F2 $(EXAMPLE_DIR)/example1_F2.phen -p F2C $(EXAMPLE_DIR)/example1_F2C.phen -gm $(EXAMPLE_DIR)/example1.map output-nppop
my_directory/my_name.n-point/ch1/F2/my_name.ch1.F2.0.csv: my_directory/my_name.spell-marker.data $(EXAMPLE_DIR)/example1_F2.phen $(EXAMPLE_DIR)/example1_F2C.phen $(EXAMPLE_DIR)/example1.map
$(BINDIR)/spell-qtl -wd my_directory -n my_name -P auto -p F2 $(EXAMPLE_DIR)/example1_F2.phen -p F2C $(EXAMPLE_DIR)/example1_F2C.phen -gm $(EXAMPLE_DIR)/example1.map output-nppop
my_directory/my_name.report/t1/t1_report.txt: my_directory/my_name.spell-marker.data $(EXAMPLE_DIR)/example1_F2.phen $(EXAMPLE_DIR)/example1_F2C.phen $(EXAMPLE_DIR)/example1.map
$(BINDIR)/spell-qtl -wd my_directory -n my_name -P auto -p F2 $(EXAMPLE_DIR)/example1_F2.phen -p F2C $(EXAMPLE_DIR)/example1_F2C.phen -gm $(EXAMPLE_DIR)/example1.map
outputs: my_directory/my_name.report/t1/t1_report.txt my_directory/my_name.n-point/ch1/F2/my_name.ch1.F2.0.csv
clean:
rm -f *.aux *.log *.pdf *.toc *.out *.lol
......
......@@ -2346,6 +2346,11 @@ file& header(file& f, const std::string& str)
inline
/**
* @brief ...
*
* @param mm p_mm:...
*/
void analysis_report::report_final_model(model_manager& mm)
{
static std::string emptystr;
......@@ -2381,6 +2386,12 @@ void analysis_report::report_final_model(model_manager& mm)
report_file << std::string("* There are not enough observations to compute a variance/covariance matrix. Results not displayed.") << std::endl;
} else {
MatrixXd Pt = TM.P.transpose();
if (Pt.size() == 0) {
Pt = MatrixXd::Ones(1, 1);
}
// MSG_DEBUG(TM.P);
// MSG_DEBUG(MATRIX_SIZE(Pt));
// MSG_DEBUG(MATRIX_SIZE(mm.vMcurrent->coefficients()));
MatrixXd all_coefficients = mm.vMcurrent->coefficients() * Pt;
/* FIXME use actual full Y instead of un-projecting the traits? */
MatrixXd all_residuals = mm.vMcurrent->residuals() * Pt;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment