comparison README.md @ 0:f895e266b37a draft

planemo upload for repository https://forgemia.inra.fr/nathalie.rousse/use/-/tree/gama/GAMA/galaxy-tools commit 67d85c013c62c16392b4796af86836b1334f2eef
author siwaa
date Tue, 04 Jun 2024 15:18:01 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f895e266b37a
1 # Galaxy tools for GAMA platform
2
3 Desc
4 ====
5
6 The **gama_tool.xml** tool runs a **GAMA Python client**
7 interacting with **gama-server (Headless server)**
8 concerning a **"Predator Prey" agent-based simulation**.
9 It relies on the **gama.simg** container.
10
11 See also :
12 [containers](../containers) from where container gama.simg comes ;
13 [use-containers](../use-containers) ;
14 [../../README.md](../../README.md)
15
16 The **gama_tool.xml** tool case has been written **from an existing example**
17 (*same example as in [use-containers](../use-containers)*) :
18
19 - example code of https://github.com/gitrdm/gama-client-python
20 project
21 - URL : https://github.com/gitrdm/gama-client-python?tab=readme-ov-file#example-code
22 - more : see [../../README.md](../../README.md)
23
24 The **gama_tool.xml** tool case is based on :
25
26 - A **"Predator Prey" agent-based model** of the **GAMA platform**.
27 - A **Python program** (*MY_sequential_example.py*) interacting with
28 the GAMA platform in headless mode, as a GAMA Python client to :
29 - **drive the experiment** : initialization, parameters settings,
30 running, pausing, running some more steps, stop.
31 - **observe the experiment** : getting information values such as :
32 cycle, nb_preys/nb_preys_init...
33
34 Sources
35 =======
36
37 The reused existing files have been copied
38 at **[src/originals](./src/originals)** folder so :
39
40 - **sequential_example.py**
41 from gama-client-python/examples/sequential_example.py :
42
43 ```
44 # examples
45 cd src/originals
46 mkdir TMP; cd TMP
47 git clone https://github.com/gitrdm/gama-client-python.git
48 cd ..
49 cp -fr TMP/gama-client-python/examples .
50 rm -fr TMP
51 ```
52
53 - **predatorPrey.gaml** and **gama-headless.sh** from gama-platform/headless
54 (gama-platform/headless/samples/predatorPrey/predatorPrey.gaml,
55 gama-platform/headless/gama-headless.sh)
56 by gama.simg :
57
58 ```
59 # headless
60 gama_SIMGPATH=../../../containers/gama.simg
61 cd src/originals
62 mkdir OPT
63 singularity exec --bind ./OPT:/OPT $gama_SIMGPATH bash -c "cp -fr /opt/gama-platform /OPT/."
64 cp -fr OPT/gama-platform/headless headless
65 rm -fr OPT
66 ```
67
68 Galaxy tool Inputs / Outputs
69 ============================
70
71 **[gama_tool.xml](./gama_tool.xml) Inputs** :
72
73 - **nb_preys_init** (integer)
74 - **nb_predators_init** (integer)
75 - **nb_more_steps** (integer)
76
77 **[gama_tool.xml](./gama_tool.xml) Outputs** :
78
79 - **results .txt file** produced while running the simulator
80 (cf 'reflex save_result' into MY_predatorPrey.gaml).
81 - **run_server .txt file** : gama-server screen display capture
82 - **run_client .txt file** : gama-client screen display capture
83
84 Galaxy tool Code
85 ================
86
87 The Galaxy tool **[src](./src) folder** contains :
88
89 - **[MY_sequential_example.py](./src/MY_sequential_example.py)** :
90 **Python code**
91
92 - created from [src/originals/examples/sequential_example.py](./src/originals/examples/sequential_example.py)
93 - modification : variables values for gama-server
94 (*MY_SERVER_URL, MY_SERVER_PORT, GAML_FILE_PATH_ON_SERVER*),
95 for experiment (*EXPERIMENT_NAME, MY_EXP_INIT_PARAMETERS*).
96 - modification : added some "print"
97
98 - **[MY_predatorPrey.gaml](./src/MY_predatorPrey.gaml)** :
99 **"Predator Prey" agent-based simulator** file
100
101 - created from [src/originals/headless/samples/predatorPrey/predatorPrey.gaml](./src/originals/headless/samples/predatorPrey/predatorPrey.gaml)
102 - modification : added **'reflex save_result'** to save some results data
103 into results.txt file.
104
105 - **[cmd_gama_headless.sh](./src/cmd_gama_headless.sh)** :
106 **commands file** (Shell script)
107 launching GAMA Headless gama-server *(by calling MY_gama-headless.sh)*
108
109 - **[cmd_python_client.sh](./src/cmd_python_client.sh)** :
110 **commands file** (Shell script)
111 launching Python program MY_sequential_example.py
112
113 - **[MY_gama-headless.sh](./src/MY_gama-headless.sh)** :
114
115 - created from [src/originals/headless/gama-headless.sh](./src/originals/headless/gama-headless.sh)
116 - modify : setting **java.io.tmpdir** property
117 (```-Djava.io.tmpdir=$MY_TEMP_DIR```),
118 because of gama_tool.xml running error :
119 ```
120 javax.imageio.IIOException: Can't create cache file!
121 at java.desktop/javax.imageio.ImageIO.createImageInputStream(ImageIO.java:361)
122 ....
123 Caused by: java.nio.file.FileSystemException: /tmp/imageio10268746820164254686.tmp: Read-only file system
124 ....
125 SLF4J: No SLF4J providers were found.
126 SLF4J: Defaulting to no-operation (NOP) logger implementation
127 SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
128 ```
129
130 *Default temporary directory for Linux is /tmp. The JVM automatically
131 sets the temporary directory path as a system property. It can be
132 changed by setting the java.io.tmpdir property to the desired
133 path when starting the JVM.*
134
135 Local run by 'planemo serve'
136 ============================
137
138 **Installs** :
139
140 - Install Singularity : singularity version 3.8.5
141
142 - Install Galaxy code :
143 ```
144 cd ~/DEVS
145 git clone https://github.com/galaxyproject/galaxy.git
146 ```
147
148 Note : Galaxy requiring at least singularity 3.7
149 (cf singularity exec : --no-mount option)
150
151 - Install Planemo into a Python virtualenv :
152 ```
153 pip3 install --upgrade pip wheel setuptools virtualenv
154 python3 -m venv _venv_planemo
155 source _venv_planemo/bin/activate
156
157 python3 -m pip install planemo
158 ```
159
160 **Use** :
161
162 ```
163 source _fab/_venv_planemo/bin/activate
164 ```
165
166 - Survey :
167 ```
168 htop
169 ```
170
171 - Check tool syntax :
172 ```
173 planemo lint --report_level all --fail_level error gama_tool.xml
174 ```
175
176 - Run tool :
177 ```
178 make serveGAMA
179 ```
180
181 => http://127.0.0.1:9090
182
183 Use those Galaxy tools
184 ======================
185
186 See [use-tools](../use-tools).
187
188