From fcd9dde5877c6739be1800d66a031922498cf70d Mon Sep 17 00:00:00 2001 From: Guillaume Raffy Date: Tue, 8 Mar 2022 18:32:20 +0100 Subject: [PATCH] added a figure to show another sequence type (globules without trap) This sequence `soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1/Pos0` needs to be processed for the article so I wanted to describe why the preprocessing doesn't give ideal results on it and how to improve it. --- doc/Makefile | 55 +++++++++++++++++++++++++++++++++----- doc/lipase.tex | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+), 7 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index a727434..0e0ccf2 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -9,6 +9,15 @@ lipase.pdf: lipase.tex graphics TRAPS_VISIBLE_CONVERTER=convert -contrast-stretch 2%x1% -resize 25% GENERATED_GRAPHICS=\ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_nofilter_vis_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_nofilter_vis_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_nofilter_vis_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_327-353_fluo_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_327-353_fluo_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_327-353_fluo_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_420-480_fluo_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_420-480_fluo_000.png \ + graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_420-480_fluo_000.png \ graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000000_DM300_nofilter_vis_000.png \ graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000019_DM300_nofilter_vis_000.png \ graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000039_DM300_nofilter_vis_000.png @@ -16,17 +25,49 @@ GENERATED_GRAPHICS=\ .PHONY: graphics graphics: $(GENERATED_GRAPHICS) -graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000000_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT_PATH)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000000_DM300_nofilter_vis_000.tif - $(TRAPS_VISIBLE_CONVERTER) "$<" "$@" +# creates a rule to list min and max of imanges in an info file for the given sequence +# creates a rule to convert tif images into png for the given sequence +# $1 : dir_path : eg soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1 +# $2 : pos_dir : eg Pos0 +# $3 : channel_suffix : eg 420-480_fluo_000 +# $4 : min_value : the maximum pixel value for this channel (eg 631) +# $5 : max_value : the maximum pixel value for this channel (eg 1441) +# eg it will create graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_%.png from $(RAW_IMAGES_ROOT_PATH)/soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1/Pos0/%.tif +define GENERATE_CHANNEL_IMAGES_CONVERSION_RULE +graphics/$(subst /,_,$(1))_$(2)_$(3).info: + convert $(RAW_IMAGES_ROOT_PATH)/$(1)/$(2)/*$(3).tif -format "%[filename] %[min] %[max]\n" info: 2>/dev/null > "$$@" -graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000019_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT_PATH)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000019_DM300_nofilter_vis_000.tif - $(TRAPS_VISIBLE_CONVERTER) "$<" "$@" +graphics/$(subst /,_,$(1))_$(2)_%$(3).png : $(RAW_IMAGES_ROOT_PATH)/$(1)/$(2)/%$(3).tif graphics/$(subst /,_,$(1))_$(2)_$(3).info + convert -level $(4)x$(5) -resize 25% "$$<" "$$@" +endef +# creates a rule to convert tif images into png for the given sequence +# $1 : dir_path : eg soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1 +# $2 : pos_dir : eg Pos0 +# eg it will create graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_%.png from $(RAW_IMAGES_ROOT_PATH)/soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1/Pos0/%.tif +define GENERATE_TRAP_SEQUENCE_IMAGES_CONVERSION_RULE +graphics/$(subst /,_,$(1))_$(2)_%.png : $(RAW_IMAGES_ROOT_PATH)/$(1)/$(2)/%.tif + $(TRAPS_VISIBLE_CONVERTER) "$$<" "$$@" +endef -graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000039_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT_PATH)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000039_DM300_nofilter_vis_000.tif - $(TRAPS_VISIBLE_CONVERTER) "$<" "$@" +# manually worked out sensible min and max values from graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_nofilter_vis_000.info +SEQ_GGHL_RDGL_SGF55_VIS_MIN_VALUE = 13000 +SEQ_GGHL_RDGL_SGF55_VIS_MAX_VALUE = 65535 # yes, the images are saturated! +$(eval $(call GENERATE_CHANNEL_IMAGES_CONVERSION_RULE,soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1,Pos0,nofilter_vis_000,$(SEQ_GGHL_RDGL_SGF55_VIS_MIN_VALUE),$(SEQ_GGHL_RDGL_SGF55_VIS_MAX_VALUE))) + +# manually worked out sensible min and max values from graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_327-353_fluo_000.info +SEQ_GGHL_RDGL_SGF55_F340_MIN_VALUE = 631 +SEQ_GGHL_RDGL_SGF55_F340_MAX_VALUE = 1441 +$(eval $(call GENERATE_CHANNEL_IMAGES_CONVERSION_RULE,soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1,Pos0,327-353_fluo_000,$(SEQ_GGHL_RDGL_SGF55_F340_MIN_VALUE),$(SEQ_GGHL_RDGL_SGF55_F340_MAX_VALUE))) + +# manually worked out sensible min and max values from graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_420-480_fluo_000.info +SEQ_GGHL_RDGL_SGF55_F450_MIN_VALUE = 700 +SEQ_GGHL_RDGL_SGF55_F450_MAX_VALUE = 1800 +$(eval $(call GENERATE_CHANNEL_IMAGES_CONVERSION_RULE,soleil2016/GGHL_rDGL_SGF55_lambda_Em_cinsuite_1,Pos0,420-480_fluo_000,$(SEQ_GGHL_RDGL_SGF55_F450_MIN_VALUE),$(SEQ_GGHL_RDGL_SGF55_F450_MAX_VALUE))) + +$(eval $(call GENERATE_TRAP_SEQUENCE_IMAGES_CONVERSION_RULE,res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1,Pos0)) .PHONY: clean clean: - rm -f $(GENERATED_GRAPHICS) + rm -f $(GENERATED_GRAPHICS) graphics/*.info rm -f lipase.pdf lipase.aux lipase.fls lipase.log lipase.fdb_latexmk lipase.dvi; diff --git a/doc/lipase.tex b/doc/lipase.tex index 1477177..d2d7913 100644 --- a/doc/lipase.tex +++ b/doc/lipase.tex @@ -258,6 +258,77 @@ \label{fig:trap_sequence1} \end{figure} + \begin{figure} + \centering + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_nofilter_vis_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 0} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_nofilter_vis_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 19} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_nofilter_vis_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 39} + %\label{fig:1} + \end{subfigure} + \\ + \centering + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_327-353_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 0, 327nm - 353nm} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_327-353_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 19, 327nm - 353nm} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_327-353_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 39, 327nm - 353nm} + %\label{fig:1} + \end{subfigure} + \\ + \centering + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000000_DM300_420-480_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 0, 420nm - 480nm} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000019_DM300_420-480_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 19, 420nm - 480nm} + %\label{fig:1} + \end{subfigure} + ~ + \begin{subfigure}[b]{0.3\textwidth} + \includegraphics[width=1.0\textwidth]{graphics/soleil2016_GGHL_rDGL_SGF55_lambda_Em_cinsuite_1_Pos0_img_000000039_DM300_420-480_fluo_000.png} + %\includegraphics[width=\textwidth]{1.png} + \caption{Frame 39, 420nm - 480nm} + %\label{fig:1} + \end{subfigure} + + \caption{Example of trap sequence (\texttt{soleil2016/GGHL\_rDGL\_SGF55\_lambda\_Em\_cinsuite\_1/Pos0})} + \label{fig:sequence_gghl1} + \end{figure} + \subsection{computing the circularness image} \label{sec:circularness}