Mercurial > repos > siwaa > gama
view README.md @ 3:e3153cc69e41 draft
planemo upload for repository https://forgemia.inra.fr/nathalie.rousse/use/-/tree/gama/GAMA/galaxy-tools commit 67d85c013c62c16392b4796af86836b1334f2eef-dirty
author | siwaa |
---|---|
date | Fri, 07 Jun 2024 11:20:24 +0000 |
parents | f895e266b37a |
children |
line wrap: on
line source
# Galaxy tools for GAMA platform Desc ==== The **gama_tool.xml** tool runs a **GAMA Python client** interacting with **gama-server (Headless server)** concerning a **"Predator Prey" agent-based simulation**. It relies on the **gama.simg** container. See also : [containers](../containers) from where container gama.simg comes ; [use-containers](../use-containers) ; [../../README.md](../../README.md) The **gama_tool.xml** tool case has been written **from an existing example** (*same example as in [use-containers](../use-containers)*) : - example code of https://github.com/gitrdm/gama-client-python project - URL : https://github.com/gitrdm/gama-client-python?tab=readme-ov-file#example-code - more : see [../../README.md](../../README.md) The **gama_tool.xml** tool case is based on : - A **"Predator Prey" agent-based model** of the **GAMA platform**. - A **Python program** (*MY_sequential_example.py*) interacting with the GAMA platform in headless mode, as a GAMA Python client to : - **drive the experiment** : initialization, parameters settings, running, pausing, running some more steps, stop. - **observe the experiment** : getting information values such as : cycle, nb_preys/nb_preys_init... Sources ======= The reused existing files have been copied at **[src/originals](./src/originals)** folder so : - **sequential_example.py** from gama-client-python/examples/sequential_example.py : ``` # examples cd src/originals mkdir TMP; cd TMP git clone https://github.com/gitrdm/gama-client-python.git cd .. cp -fr TMP/gama-client-python/examples . rm -fr TMP ``` - **predatorPrey.gaml** and **gama-headless.sh** from gama-platform/headless (gama-platform/headless/samples/predatorPrey/predatorPrey.gaml, gama-platform/headless/gama-headless.sh) by gama.simg : ``` # headless gama_SIMGPATH=../../../containers/gama.simg cd src/originals mkdir OPT singularity exec --bind ./OPT:/OPT $gama_SIMGPATH bash -c "cp -fr /opt/gama-platform /OPT/." cp -fr OPT/gama-platform/headless headless rm -fr OPT ``` Galaxy tool Inputs / Outputs ============================ **[gama_tool.xml](./gama_tool.xml) Inputs** : - **nb_preys_init** (integer) - **nb_predators_init** (integer) - **nb_more_steps** (integer) **[gama_tool.xml](./gama_tool.xml) Outputs** : - **results .txt file** produced while running the simulator (cf 'reflex save_result' into MY_predatorPrey.gaml). - **run_server .txt file** : gama-server screen display capture - **run_client .txt file** : gama-client screen display capture Galaxy tool Code ================ The Galaxy tool **[src](./src) folder** contains : - **[MY_sequential_example.py](./src/MY_sequential_example.py)** : **Python code** - created from [src/originals/examples/sequential_example.py](./src/originals/examples/sequential_example.py) - modification : variables values for gama-server (*MY_SERVER_URL, MY_SERVER_PORT, GAML_FILE_PATH_ON_SERVER*), for experiment (*EXPERIMENT_NAME, MY_EXP_INIT_PARAMETERS*). - modification : added some "print" - **[MY_predatorPrey.gaml](./src/MY_predatorPrey.gaml)** : **"Predator Prey" agent-based simulator** file - created from [src/originals/headless/samples/predatorPrey/predatorPrey.gaml](./src/originals/headless/samples/predatorPrey/predatorPrey.gaml) - modification : added **'reflex save_result'** to save some results data into results.txt file. - **[cmd_gama_headless.sh](./src/cmd_gama_headless.sh)** : **commands file** (Shell script) launching GAMA Headless gama-server *(by calling MY_gama-headless.sh)* - **[cmd_python_client.sh](./src/cmd_python_client.sh)** : **commands file** (Shell script) launching Python program MY_sequential_example.py - **[MY_gama-headless.sh](./src/MY_gama-headless.sh)** : - created from [src/originals/headless/gama-headless.sh](./src/originals/headless/gama-headless.sh) - modify : setting **java.io.tmpdir** property (```-Djava.io.tmpdir=$MY_TEMP_DIR```), because of gama_tool.xml running error : ``` javax.imageio.IIOException: Can't create cache file! at java.desktop/javax.imageio.ImageIO.createImageInputStream(ImageIO.java:361) .... Caused by: java.nio.file.FileSystemException: /tmp/imageio10268746820164254686.tmp: Read-only file system .... SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. ``` *Default temporary directory for Linux is /tmp. The JVM automatically sets the temporary directory path as a system property. It can be changed by setting the java.io.tmpdir property to the desired path when starting the JVM.* Local run by 'planemo serve' ============================ **Installs** : - Install Singularity : singularity version 3.8.5 - Install Galaxy code : ``` cd ~/DEVS git clone https://github.com/galaxyproject/galaxy.git ``` Note : Galaxy requiring at least singularity 3.7 (cf singularity exec : --no-mount option) - Install Planemo into a Python virtualenv : ``` pip3 install --upgrade pip wheel setuptools virtualenv python3 -m venv _venv_planemo source _venv_planemo/bin/activate python3 -m pip install planemo ``` **Use** : ``` source _fab/_venv_planemo/bin/activate ``` - Survey : ``` htop ``` - Check tool syntax : ``` planemo lint --report_level all --fail_level error gama_tool.xml ``` - Run tool : ``` make serveGAMA ``` => http://127.0.0.1:9090 Use those Galaxy tools ====================== See [use-tools](../use-tools).