From 5682316a5096ecc8acee6858f1a173ad1d697fb0 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Nov 2023 15:09:04 +0100 Subject: [PATCH 1/5] add README --- Christmas/2022/README | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Christmas/2022/README diff --git a/Christmas/2022/README b/Christmas/2022/README new file mode 100644 index 0000000..f458c7d --- /dev/null +++ b/Christmas/2022/README @@ -0,0 +1,20 @@ +============================= +Author: An-Chi Ho +Date: Christmas Season 2022 +============================= + +Plot your own Christmas tree by R base functions and spice up with an emoji twist! + +* Inspired by https://github.com/R-CoderDotCom/christmas-tree +* Package "emo": https://github.com/hadley/emo (make sure it is installed) +* Colors reference: + - https://www.rapidtables.com/web/color/RGB_Color.html + - https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/ + +[Steps] +0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2022/ +1. Modify the recipe +2. Run plot_ChristmasTree.R +3. Share your tree with us! + +Note that saving into a file is faster than plotting in a pop-up window. -- GitLab From a7c67063bdbf11ae6e8faf1e1fcd5dcd40e5790d Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Nov 2023 15:52:48 +0100 Subject: [PATCH 2/5] Update README, clean recipe --- Christmas/2022/{README => README.md} | 17 +- Christmas/2023/ChristmasTree.R | 184 ++++++++++++++++++ Christmas/2023/ParallelChristmas.sh | 90 +++++++++ Christmas/2023/README.md | 26 +++ Christmas/2023/create_layout.sh | 21 ++ Christmas/2023/decide_nice_layout.R | 20 ++ Christmas/2023/divide_recipe.R | 87 +++++++++ Christmas/2023/plot_ChristmasTree.R | 8 + Christmas/2023/plot_ChristmasTree.sh | 14 ++ Christmas/2023/read_ChristmasRecipe.R | 20 ++ .../2023/recipe_ChristmasTree_template.yml | 30 +++ 11 files changed, 509 insertions(+), 8 deletions(-) rename Christmas/2022/{README => README.md} (68%) create mode 100755 Christmas/2023/ChristmasTree.R create mode 100755 Christmas/2023/ParallelChristmas.sh create mode 100644 Christmas/2023/README.md create mode 100755 Christmas/2023/create_layout.sh create mode 100755 Christmas/2023/decide_nice_layout.R create mode 100755 Christmas/2023/divide_recipe.R create mode 100755 Christmas/2023/plot_ChristmasTree.R create mode 100755 Christmas/2023/plot_ChristmasTree.sh create mode 100755 Christmas/2023/read_ChristmasRecipe.R create mode 100755 Christmas/2023/recipe_ChristmasTree_template.yml diff --git a/Christmas/2022/README b/Christmas/2022/README.md similarity index 68% rename from Christmas/2022/README rename to Christmas/2022/README.md index f458c7d..8a6e972 100644 --- a/Christmas/2022/README +++ b/Christmas/2022/README.md @@ -1,7 +1,8 @@ -============================= -Author: An-Chi Ho -Date: Christmas Season 2022 -============================= +--- +title: Christmas Tree 2022 +author: An-Chi Ho +date: Christmas Season 2022 +--- Plot your own Christmas tree by R base functions and spice up with an emoji twist! @@ -12,9 +13,9 @@ Plot your own Christmas tree by R base functions and spice up with an emoji twis - https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/ [Steps] -0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2022/ -1. Modify the recipe -2. Run plot_ChristmasTree.R -3. Share your tree with us! +0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2022/ +1. Modify the recipe +2. Run plot_ChristmasTree.R +3. Share your tree with us! Note that saving into a file is faster than plotting in a pop-up window. diff --git a/Christmas/2023/ChristmasTree.R b/Christmas/2023/ChristmasTree.R new file mode 100755 index 0000000..bdd4956 --- /dev/null +++ b/Christmas/2023/ChristmasTree.R @@ -0,0 +1,184 @@ +ChristmasTree <- function(recipe) { + +# Config +author <- recipe$Description$Title$author +title <- recipe$Description$Title$text +title.col <- recipe$Description$Title$color +bg.col <- strsplit(recipe$background$color, ' ')[[1]] +tree.col <- strsplit(recipe$tree$leaves, ' ')[[1]] +trunk.col <- strsplit(recipe$tree$trunk, ' ')[[1]] +ball.col <- strsplit(recipe$balls$color, ' ')[[1]] +snow.col <- strsplit(recipe$snow$color, ' ')[[1]] +snow.level <- recipe$snow$level +star <- recipe$star$shape +tree.num <- recipe$recipe_number +fileout <- recipe$fileout # card name +if (!is.null(fileout)) { + fileout <- paste0(dirname(fileout), "/tree_", tree.num, '.png') +} + + +# Sanity checks +if (length(title.col) != 1) stop("Title can only have one color.") +if (length(tree.col) != 1) stop("Tree leaves can only have one color.") +if (length(trunk.col) != 1) stop("Tree trunk can only have one color.") +if (length(bg.col) != 1) stop("Background can only have one color.") +if (length(star) != 1) stop("Star can only have one shape.") +#if (!star %in% c('star', 'heart', 'poop', 'smile', 'smirk')) stop("Star can only be star, heart, poop, smile, or smirk.") + +if (!is.null(fileout)) { + png(fileout, width = 480, height = 480) +} else { + dev.new(width = 6.5, height = 6.5) +} + +ll <- 252 + +par(bg = bg.col) +plot(0, xlim = c(-0.75, 0.75), axes = F, xlab = "", ylab = "", ylim = c(-50, ll + 48)) + +# trunk +rect(-0.1, -50, 0.08, 1, col = trunk.col, border = trunk.col) + +# star glow +if (star != 'heart') { + col_star <- rgb(1, 1, 0, 0.05) +} else { + col_star <- rgb(1, 0.6, 0.8, 0.1) +} +for(i in 12:1) { + points(-0.02, ll + 1, pch = 19, col = col_star, cex = 5 + (0.65 * i)) +} + +# Tree +s <- (ll:1)/1000 +a <- 0 +i_seq <- rep(exp(-seq(1, 125, by = 2) * 0.016), 4) * s + s + +if (tree.col == 'green') { + for (i in i_seq) { + a <- a + 1 + j_seq <- seq(-i, i, 0.1) + for (j in j_seq) { + points(j, a, col = rgb(0, i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, 0), + pch = 8, cex = 2.8, lwd = 1.5) + } + } +} else if (tree.col == 'blue') { + for (i in i_seq) { + a <- a + 1 + j_seq <- seq(-i, i, 0.1) + for (j in j_seq) { + points(j, a, col = rgb(0, 0, i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2), + pch = 8, cex = 2.8, lwd = 1.5) + } + } +} else if (tree.col == 'red') { + for (i in i_seq) { + a <- a + 1 + j_seq <- seq(-i, i, 0.1) + for (j in j_seq) { + points(j, a, col = rgb(i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, 0, 0), + pch = 8, cex = 2.8, lwd = 1.5) + } + } +} else if (tree.col == 'yellow') { + for (i in i_seq) { + a <- a + 1 + j_seq <- seq(-i, i, 0.1) + for (j in j_seq) { + points(j, a, col = rgb(i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, 0), + pch = 8, cex = 2.8, lwd = 1.5) + } + } +} else if (tree.col %in% c('gray', 'grey')) { + for (i in i_seq) { + a <- a + 1 + j_seq <- seq(-i, i, 0.1) + for (j in j_seq) { + points(j, a, col = rgb(i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2, i * 0.7 + 0.2 * runif(1, 0.6, 1) - 0.5 * j^2), + pch = 8, cex = 2.8, lwd = 1.5) + } + } +} else { + stop("Tree leaf color is not supported.") +} + +# Christmas bulbs +cols1 <- sample(c(rgb(1, 0, 0, 0.1), rgb(0, 1, 0, 0.1), rgb(1, 1, 0, 0.1), rgb(0, 0.2, 1, 0.1))) +cols2 <- sample(c(rgb(1, 0, 0, 0.1), rgb(0, 1, 0, 0.1), rgb(1, 1, 0, 0.1), rgb(0, 0.2, 1, 0.1))) +cols3 <- sample(c(rgb(1, 0, 0, 0.1), rgb(0, 1, 0, 0.1), rgb(1, 1, 0, 0.1), rgb(0, 0.2, 1, 0.1))) +cols4 <- sample(c(rgb(1, 0, 0, 0.1), rgb(0, 1, 0, 0.1), rgb(1, 1, 0, 0.1), rgb(0, 0.2, 1, 0.1))) + +## small bulbs +for (i in 11:1) { + points(seq(-0.5, 0.5, 0.1), rep(0, 11), pch = 19, cex = 0.15 + (0.12 * i), col = cols1) + points(seq(-0.375, 0.375, 0.1), rep(64.5, 8), pch = 19, cex = 0.15 + (0.12 * i), col = cols2) + points(seq(-0.25, 0.25, 0.1), rep(125, 6), pch = 19, cex = 0.15 + (0.12 * i), col = cols3) + points(seq(-0.125, 0.125, 0.1), rep(189.5, 3), pch = 19, cex = 0.15 + (0.12 * i), col = cols4) +} + +## balls +loc <- c(runif(8, -0.45, 0.45), runif(8, 0, 30)) +points(loc[1:8], loc[9:16], pch = 19, cex = round(runif(8, 1.8, 2.2), digits = 2), + col = sample(ball.col, 8, replace = TRUE)) +loc <- c(runif(6, -0.25, 0.25), runif(6, 65, 100)) +points(loc[1:6], loc[7:12], pch = 19, cex = round(runif(6, 1.8, 2.2), digits = 2), + col = sample(ball.col, 6, replace = TRUE)) +loc <- c(runif(4, -0.15, 0.15), runif(4, 125, 170)) +points(loc[1:4], loc[5:8], pch = 19, cex = round(runif(4, 1.8, 2.2), digits = 2), + col = sample(ball.col, 4, replace = TRUE)) +points(-0.05, 200, pch = 19, cex = 2, col = sample(ball.col, 1)) +# first layer edge +points(sample(c(-0.45, 0.45), 1), 6, pch = 19, cex = 2, col = sample(ball.col, 1)) +# second layer edge +points(sample(c(-0.32, 0.32), 1), 66, pch = 19, cex = 2, col = sample(ball.col, 1)) +# third layer edge +points(sample(c(-0.2, 0.2), 1), 130, pch = 19, cex = 2, col = sample(ball.col, 1)) + +# Star +if (star == 'star') { + points(-0.02, 251, pch = 19, cex = 4.3, col = 7) + points(-0.02, 254, pch = emo::ji(keyword = 'star'), cex = 8, col = 7) +} else if (star == 'heart') { + points(-0.02, 251, pch = emo::ji(keyword = 'heart'), cex = 5, col = 'hotpink') +} else if (star == 'poop') { + points(-0.02, 253, pch = 19, cex = 5, col = 'black') + points(-0.02, 256, pch = emo::ji(keyword = 'poop'), cex = 6, col = 'chocolate4') +} else if (star == 'smile') { + points(-0.02, 253, pch = 19, cex = 7.2, col = rgb(1, 1, 0, alpha = 0.95)) + points(-0.02, 253, pch = emo::ji(keyword = 'smile'), cex = 4, col = rgb(0, 0, 0, alpha = 0.8)) +} else if (star == 'smirk') { + points(-0.02, 253, pch = 19, cex = 7.2, col = rgb(1, 1, 0, alpha = 0.95)) + points(-0.02, 253, pch = emo::ji(keyword = 'smirk'), cex = 4, col = rgb(0, 0, 0, alpha = 0.8)) +} else { + points(-0.02, 253, pch = 19, cex = 7.2, col = rgb(1, 1, 0, alpha = 0.95)) + points(-0.02, 253, pch = emo::ji(keyword = star), cex = 4, col = rgb(0, 0, 0, alpha = 0.8)) +} + +# Snowflakes +if (snow.level == 'none') { + snow_num <- c(0, 0) +} else if (snow.level == 'below_normal') { + snow_num <- c(40, 60) +} else if (snow.level == 'normal') { + snow_num <- c(80, 100) +} else if (snow.level == 'above_normal') { + snow_num <- c(160, 200) +} +points(runif(snow_num[1], -1, 1), runif(snow_num[1], -50, ll + 60), + col = sample(snow.col, snow_num[1], replace = TRUE), + cex = sample(seq(0.6, 1.5, length.out = snow_num[1])), + pch = emo::ji(keyword = 'snowflake')) +points(runif(snow_num[2], -1, 1), runif(snow_num[2], -50, -45), + col = sample(snow.col, snow_num[2], replace = TRUE), + cex = sample(seq(0.6, 1.5, length.out = snow_num[2])), + pch = emo::ji(keyword = 'snowflake')) + + # Add author + mtext(paste0(author, ' - ', title), side = 1, line = 1, col = title.col) + + if (!is.null(fileout)) { + dev.off() + } +} diff --git a/Christmas/2023/ParallelChristmas.sh b/Christmas/2023/ParallelChristmas.sh new file mode 100755 index 0000000..82953a0 --- /dev/null +++ b/Christmas/2023/ParallelChristmas.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +################################################################################ +## Launcher script for Christmas Trees! +################################################################################ +## +## It reads a Tree recipe recipe and splits it into atomic recipes. +## Then each atomic recipe is launched as an independent job with SLURM. +## +## Merry Christmas! +## +################################################################################ + +# Usage statement + +function usage +{ + echo "Usage: $0 " + echo " " + echo " : Path to the Christmas Tree recipe." + echo " " +} + +if [[ ( $@ == "--help") || $@ == "-h" ]]; then + usage + exit 0 +fi + +# Assign arguments +recipe=$1 + +umask 002 + +# Check recipe +if [ ! -f "$recipe" ]; then + echo "Could not find the recipe file: $recipe" + usage + exit 1 +fi + +# Define tmp file to store necessary information +tmpfile=$(mktemp ${TMPDIR-/tmp}/XMAS.XXXXXX) + +# Divide recipes and get layout +module load R/4.1.2-foss-2019b +echo "Counting the number of Christmas trees..." +Rscript read_ChristmasRecipe.R ${recipe} ${tmpfile} +nrows=$( head -1 $tmpfile | tail -1 ) +ncols=$( head -2 $tmpfile | tail -1 ) +outdir=$( head -3 $tmpfile | tail -1 ) +outfile=$( head -4 $tmpfile | tail -1 ) + +# Create directory for slurm output +logdir=${outdir}/slurm_logs/ +mkdir -p $logdir +echo "Christmas tree logs will be stored in $logdir" + +# Launch one job per atomic recipe +job_number=0 +# Create empty array to store all the job IDs for the verification jobs +tree_job_list=() +echo "Sending tree requests to Santa's workshop..." + +# Loop over atomic recipes +for atomic_recipe in ${outdir}/santas_workshop/atomic_recipe_??.yml; do + job_number=$(($job_number + 1)) + job_name=$(basename $outdir)_$(printf %02d $job_number) + outlog=${logdir}/create_tree-${job_name}.out + errlog=${logdir}/create_tree-${job_name}.err + # Send batch job and capture job ID + job_ID=$(sbatch --parsable --output=$outlog --error=$errlog --time=00:10:00 plot_ChristmasTree.sh ${atomic_recipe}) + # Add job ID to array + tree_job_list+=($job_ID) + echo "Submitted tree request $job_ID" +done + +# Submit layout job with dependency on atomic tree jobs, passed as a +# comma-separated string. The layout job will not run until all the +# verification jobs have finished successfully. +# If any of the jobs fail, it will be canceled. +echo "Elves will build the Christmas card when all the trees are done..." +outlog=${logdir}/create_card.out +errlog=${logdir}/create_card.err +card_ID=$(sbatch --parsable --dependency=afterok:$(IFS=,; echo "${tree_job_list[*]}") --output=$outlog --error=$errlog --time=00:10:00 create_layout.sh $nrows $ncols $outfile) +echo "Submitted card request $cardID" + +# Clean temporary files +rm $tmpfile +# rm ${outdir}/santas_workshop/* +umask 022 diff --git a/Christmas/2023/README.md b/Christmas/2023/README.md new file mode 100644 index 0000000..f6821cd --- /dev/null +++ b/Christmas/2023/README.md @@ -0,0 +1,26 @@ +--- +title: Christmas Tree 2023 +author: Victòria Agudetse and An-Chi Ho +date: Christmas Season 2023 +--- + +Following the last Christmas activity (check it [here](Christmas/2022)), we're going to do it again, but, in parallel! + +We can put multiple options in the recipe, and several atomic recipes will be created. Then, submit jobs on Nord3, one job for one atomic recipe. In the end, use `montage` to combine all the plots together into one Christmas card. + +[Steps] +0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2023/. Put them somewhere in Nord3, e.g., `/esarchive/scratch/`. +1. Modify the recipe. +2. ssh to Nord3, move to the directory that you saved the code. +3. Run this command: `bash ParallelChristmas.sh .yml` +5. A PNG file will be generated where you specify in the recipe `$fileout`. You can also find the logs in slum_logs/ and atomic recipes and plots under, at the same level of `$fileout`. +4. Share your Christmas card with us! + + +Note that emoji (i.e., `$star` in the recipe) may or may not show properly depending on your environment. Currently on Nord3, the following ones can be shown: + +heart, smile, smirk, sun, sparkle, angry, sad, cat, crush, cry, blush, sweat, disappointed, grin, frown, haha, ill, meh, wink, oops, green, prank, relieved, silly, wow, victory,radioactive, biohazard, warning,yin_yang, aries, taurus, gemini, cancer, leo, virgo, libra, scorpius, sagittarius, capricorn, aquarius, pisces, medical_symbol... + + + + diff --git a/Christmas/2023/create_layout.sh b/Christmas/2023/create_layout.sh new file mode 100755 index 0000000..1d0dbf7 --- /dev/null +++ b/Christmas/2023/create_layout.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +#SBATCH -J XMAS_CARD +#SBATCH --kill-on-invalid-dep=yes + +# Slurm directive description: +# -J: job name +# --kill-on-invalid-dep: Whether to kill the job if the dependencies are +# not satisfied. If the verification jobs fail, the scorecards job +# will be canceled. + +set -vx + +nrows=$1 +ncols=$2 +outfile=$3 + +outdir="$(dirname "${outfile}")" + +# Create image layout +montage ${outdir}/santas_workshop/tree_??.png -tile ${ncols}x${nrows} -geometry +1+1 ${outfile} diff --git a/Christmas/2023/decide_nice_layout.R b/Christmas/2023/decide_nice_layout.R new file mode 100755 index 0000000..703dd3f --- /dev/null +++ b/Christmas/2023/decide_nice_layout.R @@ -0,0 +1,20 @@ +decide_nice_layout <- function(num_recipe) { + + if (num_recipe == 1) { + mfrow <- c(1, 1) + } else if (num_recipe == 2) { + mfrow <- c(2, 1) + } else if (num_recipe %in% 3:4) { + mfrow <- c(2, 2) + } else if (num_recipe %in% 5:6) { + mfrow <- c(3, 2) + } else if (num_recipe %in% 11:12) { + mfrow <- c(3, 4) + } else if (num_recipe %in% 17:24) { + mfrow <- c(4, 6) + } else { + mfrow <- rep(ceiling(sqrt(num_recipe)), 2) + } + return(mfrow) +} + diff --git a/Christmas/2023/divide_recipe.R b/Christmas/2023/divide_recipe.R new file mode 100755 index 0000000..48c20fe --- /dev/null +++ b/Christmas/2023/divide_recipe.R @@ -0,0 +1,87 @@ +divide_recipe <- function(recipe) { + + beta_recipe <- list(Description = recipe$Description, + background = NULL, + tree = NULL, + balls = NULL, + snow = NULL, + star = NULL, + fileout = paste0(dirname(recipe$fileout), + "/santas_workshop/", + basename(recipe$fileout))) + + all_recipes <- rep(list(beta_recipe), length(recipe$background)) + for (col in 1:length(recipe$background)) { + all_recipes[[col]]$background <- recipe$background[[col]] + } + + for (col in 1:length(recipe$tree)) { + for (reci in 1:length(all_recipes)) { + all_recipes[[reci]]$tree <- recipe$tree[[col]] + } + if (col == 1) { + recipes <- all_recipes + } else { + recipes <- append(recipes, all_recipes) + } + } + all_recipes <- recipes + + recipes <- list() + for (col in 1:length(recipe$balls)) { + for (reci in 1:length(all_recipes)) { + all_recipes[[reci]]$balls <- recipe$balls[[col]] + } + if (col == 1) { + recipes <- all_recipes + } else { + recipes <- append(recipes, all_recipes) + } + } + all_recipes <- recipes + + recipes <- list() + for (col in 1:length(recipe$snow)) { + for (reci in 1:length(all_recipes)) { + all_recipes[[reci]]$snow <- recipe$snow[[col]] + } + if (col == 1) { + recipes <- all_recipes + } else { + recipes <- append(recipes, all_recipes) + } + } + all_recipes <- recipes + + + recipes <- list() + for (col in 1:length(recipe$star)) { + for (reci in 1:length(all_recipes)) { + all_recipes[[reci]]$star <- recipe$star[[col]] + } + if (col == 1) { + recipes <- all_recipes + } else { + recipes <- append(recipes, all_recipes) + } + } + all_recipes <- recipes + + # Save all recipes in separate YAML files + for (reci in 1:length(all_recipes)) { + if (reci < 10) { + recipe_number <- paste0("0", reci) + } else { + recipe_number <- reci + } + all_recipes[[reci]]$recipe_number <- recipe_number + if (!dir.exists(paste0(dirname(recipe$fileout), "/santas_workshop/"))) { + dir.create(paste0(dirname(recipe$fileout), "/santas_workshop/"), + recursive = TRUE) + } + write_yaml(all_recipes[[reci]], + paste0(dirname(recipe$fileout), "/santas_workshop/atomic_recipe_", + recipe_number, ".yml")) + } + return(list(n_atomic_recipes = length(all_recipes))) +} diff --git a/Christmas/2023/plot_ChristmasTree.R b/Christmas/2023/plot_ChristmasTree.R new file mode 100755 index 0000000..f1bb422 --- /dev/null +++ b/Christmas/2023/plot_ChristmasTree.R @@ -0,0 +1,8 @@ +library(yaml) +#setwd('~/aho-testtest/ChristmasTree/') +source('ChristmasTree.R') +args <- commandArgs(trailingOnly = TRUE) +recipe <- read_yaml(args[1]) +options(bitmapType='cairo') +ChristmasTree(recipe) + diff --git a/Christmas/2023/plot_ChristmasTree.sh b/Christmas/2023/plot_ChristmasTree.sh new file mode 100755 index 0000000..d0a9cc1 --- /dev/null +++ b/Christmas/2023/plot_ChristmasTree.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +#SBATCH -J XMAS_TREE + +# Slurm directive description: +# -J: job name + +set -vx + +atomic_recipe=$1 + +module load R/4.1.2-foss-2019b + +Rscript plot_ChristmasTree.R ${atomic_recipe} diff --git a/Christmas/2023/read_ChristmasRecipe.R b/Christmas/2023/read_ChristmasRecipe.R new file mode 100755 index 0000000..fc82025 --- /dev/null +++ b/Christmas/2023/read_ChristmasRecipe.R @@ -0,0 +1,20 @@ +arguments <- commandArgs(trailingOnly = TRUE) +names(arguments) <- c("recipe", "tmpfile") + +library(yaml) +setwd("/esarchive/scratch/aho/git/aho-testtest/ChristmasTree2023/") +source('ChristmasTree.R') +source('divide_recipe.R') +source('decide_nice_layout.R') +recipe <- read_yaml(arguments[1]) +# recipe <- read_yaml("recipe_ChristmasTree_Vic.yml") +atomic_recipes <- divide_recipe(recipe) + +## TODO: Export necessary variables +layout <- decide_nice_layout(atomic_recipes$n_atomic_recipes) +sink(arguments[2], append = FALSE) +cat(paste0(layout[1]), "\n") +cat(paste0(layout[2]), "\n") +cat(paste0(dirname(recipe$fileout), "\n")) +cat(recipe$fileout) +sink() diff --git a/Christmas/2023/recipe_ChristmasTree_template.yml b/Christmas/2023/recipe_ChristmasTree_template.yml new file mode 100755 index 0000000..0970a6f --- /dev/null +++ b/Christmas/2023/recipe_ChristmasTree_template.yml @@ -0,0 +1,30 @@ +Description: + Title: + author: BSCES # Your name + text: All I want for Christmas is... # A merry message + color: 'white' # One random color for text +background: + - {color: lightblue} # One random color, e.g., 'lightblue', '#612794' + - {color: navy} + - {color: gold} +tree: +# leaves: One of the following: 'green', 'blue', 'red', 'yellow', 'grey' +# trunk: One random color, e.g., 'darkgoldenrod4', '#5829C4' + - {leaves: green, trunk: darkgoldenrod4} + - {leaves: blue, trunk: grey} +balls: +# Multiple random colors + - {color: oldlace lightcyan lightgoldenrod1} + - {color: lightcyan golden pink} +snow: +# level: 'none', 'below_normal', 'normal', 'above_normal' +# color: Multiple random colors + - {level: below_normal, color: ghostwhite lightsteelblue1} +star: +# Emoji name. Suggestions: 'heart', 'smile', 'smirk', 'blush', 'prank' + - {shape: heart} + - {shape: blush} + - {shape: smile} +# A file path under /esarchive/scratch/ +fileout: '/esarchive/scratch//myXmasCard2023.png' + -- GitLab From 5fc42a6b58a38028e74033e788892cfc2eb87f15 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Nov 2023 15:54:30 +0100 Subject: [PATCH 3/5] syntax fix --- Christmas/2022/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Christmas/2022/README.md b/Christmas/2022/README.md index 8a6e972..240f808 100644 --- a/Christmas/2022/README.md +++ b/Christmas/2022/README.md @@ -12,10 +12,11 @@ Plot your own Christmas tree by R base functions and spice up with an emoji twis - https://www.rapidtables.com/web/color/RGB_Color.html - https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/ -[Steps] -0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2022/ -1. Modify the recipe -2. Run plot_ChristmasTree.R -3. Share your tree with us! +**[Steps]** + +1. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2022/ +2. Modify the recipe +3. Run plot_ChristmasTree.R +4. Share your tree with us! Note that saving into a file is faster than plotting in a pop-up window. -- GitLab From afdd09b98ceb0a3fa45ad58933c79311b7bb2f8d Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Nov 2023 15:56:42 +0100 Subject: [PATCH 4/5] syntax fix --- Christmas/2023/README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Christmas/2023/README.md b/Christmas/2023/README.md index f6821cd..b68c8a9 100644 --- a/Christmas/2023/README.md +++ b/Christmas/2023/README.md @@ -8,18 +8,20 @@ Following the last Christmas activity (check it [here](Christmas/2022)), we're g We can put multiple options in the recipe, and several atomic recipes will be created. Then, submit jobs on Nord3, one job for one atomic recipe. In the end, use `montage` to combine all the plots together into one Christmas card. -[Steps] -0. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2023/. Put them somewhere in Nord3, e.g., `/esarchive/scratch/`. -1. Modify the recipe. -2. ssh to Nord3, move to the directory that you saved the code. -3. Run this command: `bash ParallelChristmas.sh .yml` +**[Steps]** + +1. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2023/. Put them somewhere in Nord3, e.g., `/esarchive/scratch/`. +2. Modify the recipe. +3. ssh to Nord3, move to the directory that you saved the code. +4. Run this command: `bash ParallelChristmas.sh .yml` 5. A PNG file will be generated where you specify in the recipe `$fileout`. You can also find the logs in slum_logs/ and atomic recipes and plots under, at the same level of `$fileout`. -4. Share your Christmas card with us! +6. Share your Christmas card with us! Note that emoji (i.e., `$star` in the recipe) may or may not show properly depending on your environment. Currently on Nord3, the following ones can be shown: -heart, smile, smirk, sun, sparkle, angry, sad, cat, crush, cry, blush, sweat, disappointed, grin, frown, haha, ill, meh, wink, oops, green, prank, relieved, silly, wow, victory,radioactive, biohazard, warning,yin_yang, aries, taurus, gemini, cancer, leo, virgo, libra, scorpius, sagittarius, capricorn, aquarius, pisces, medical_symbol... + +> heart, smile, smirk, sun, sparkle, angry, sad, cat, crush, cry, blush, sweat, disappointed, grin, frown, haha, ill, meh, wink, oops, green, prank, relieved, silly, wow, victory,radioactive, biohazard, warning,yin_yang, aries, taurus, gemini, cancer, leo, virgo, libra, scorpius, sagittarius, capricorn, aquarius, pisces, medical_symbol, ... -- GitLab From 0ccf672d6d229113b081af79ae6705ba5cec22ae Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Nov 2023 16:28:42 +0100 Subject: [PATCH 5/5] Add card example. Clean code. --- Christmas/2023/README.md | 9 ++++++--- Christmas/2023/myXmasCard2023.png | Bin 0 -> 2284831 bytes Christmas/2023/plot_ChristmasTree.R | 1 - Christmas/2023/read_ChristmasRecipe.R | 2 -- .../2023/recipe_ChristmasTree_template.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 Christmas/2023/myXmasCard2023.png diff --git a/Christmas/2023/README.md b/Christmas/2023/README.md index b68c8a9..b6ad3b2 100644 --- a/Christmas/2023/README.md +++ b/Christmas/2023/README.md @@ -12,17 +12,20 @@ We can put multiple options in the recipe, and several atomic recipes will be cr 1. Get all the code and recipe from Rsenal GitLab repo https://earth.bsc.es/gitlab/es/rsenal/-/tree/main/Christmas/2023/. Put them somewhere in Nord3, e.g., `/esarchive/scratch/`. 2. Modify the recipe. -3. ssh to Nord3, move to the directory that you saved the code. +3. ssh to Nord3v2, move to the directory that you saved the code. 4. Run this command: `bash ParallelChristmas.sh .yml` -5. A PNG file will be generated where you specify in the recipe `$fileout`. You can also find the logs in slum_logs/ and atomic recipes and plots under, at the same level of `$fileout`. +5. A PNG file will be generated where you specify in the recipe `$fileout`. You can also find the logs in `slum_logs/` and atomic recipes and plots under `santas_workshop/`, at the same level of `$fileout`. 6. Share your Christmas card with us! -Note that emoji (i.e., `$star` in the recipe) may or may not show properly depending on your environment. Currently on Nord3, the following ones can be shown: +**[Notes]** +* emoji (i.e., `$star` in the recipe) may or may not show properly depending on your environment. Currently on Nord3, the following ones can be shown: > heart, smile, smirk, sun, sparkle, angry, sad, cat, crush, cry, blush, sweat, disappointed, grin, frown, haha, ill, meh, wink, oops, green, prank, relieved, silly, wow, victory,radioactive, biohazard, warning,yin_yang, aries, taurus, gemini, cancer, leo, virgo, libra, scorpius, sagittarius, capricorn, aquarius, pisces, medical_symbol, ... +* If the plots are not complete, check logs to see if the recipe has wrong items. +* Remember to clean `santas_workshop/` before having a new run, so the script won't take the old plots into the card. diff --git a/Christmas/2023/myXmasCard2023.png b/Christmas/2023/myXmasCard2023.png new file mode 100644 index 0000000000000000000000000000000000000000..f622900a15928f676c316e2acbde49ba1e7f697a GIT binary patch literal 2284831 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≺w8yrOA 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 z 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