This repo contains the scripts to perform a small SciWIn-Client Demo. This instructions file will be updated to use new features when they are available. The commands stated below will perform the operations based on our hello world repo.
To check if SciWIn is available type s4n --version which should output something like s4n 1.0.0.
To begin the journey use s4n init to initialize a project in the current directory.
s4n initCreate a virtual environment
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtTo create the two CommandLineTools needed for the demo you just have to prefix the execution commands with s4n create.
To create the calculation.cwl tool run the following command:
s4n create python calculation.py --population population.csv --speakers speakers.csvwhich will output something like
📂 The current working directory is /home/ubuntu/sciwin_test
▶️ Executing command: python calculation.py --population population.csv --speakers speakers.csv
Total population: 7694245029
language speakers percentage
0 Bangla 300000000 3.899018
1 Egyptian Arabic 100542400 1.306722
2 English 1132366680 14.717060
3 German 134993040 1.754468
4 Indonesian 198996550 2.586304
5 Japanese 128000000 1.663581
6 Portuguese 475300000 6.177344
7 Punjabi 125000000 1.624591
8 Russian 154000000 2.001496
9 Standard Mandarin 1090951810 14.178803
📜 Found changes:
- results.csv
📄 Created CWL file workflows/calculation/calculation.cwl
The Plot tool will use the created results.csv. The creation command is
s4n create python plot.py --results results.csvwhich will lead to the following output:
📂 The current working directory is /home/ubuntu/sciwin_test
▶️ Executing command: python plot.py --results results.csv
📜 Found changes:
- results.svg
📄 Created CWL file workflows/plot/plot.cwl
To create a Workflow with name demo simply call. However this is optional as it will be executed automatically upon running the connect command the first time.
s4n create --name demowhich will output
📄 Created new Workflow file: workflows/demo/demo.cwl
To connect the steps in the workflow you need to call s4n connect a couple of times.
First we will connect the calculation tool to the input sockets. The tool has two inputs which we will connect to the speakers and pop input.
s4n connect demo --from @inputs/speakers --to calculation/speakers
s4n connect demo --from @inputs/pop --to calculation/populationAn example output looks like
➕ Added step calculation to workflow
➕ Added or updated connection from inputs.speakers to calculation/speakers in workflow
✔️ Updated Workflow workflows/demo/demo.cwl!
We now will connect the plot and the calculation tool. We will map results-output to results-input.
s4n connect demo --from calculation/results --to plot/resultsAn example output looks like
🔗 Found step calculation in workflow. Not changing that!
➕ Added step plot to workflow
✔️ Updated Workflow workflows/demo/demo.cwl!
To get the results file we will connect the result of the plot step to out.
s4n connect demo --from plot/o_results --to @outputs/outwhich outputs
➕ Added or updated connection from plot/results to outputs.out in workflow!
✔️ Updated Workflow workflows/demo/demo.cwl!
To commit a simple call is needed:
s4n save demoWe now have a full workflow which can be executed
s4n execute local workflows/demo/demo.cwl --pop population.csv --speakers speakers_revised.csvHowever we did not use Docker containers, so this will work only on our computer. take a look at the other examples to learn how to use Docker with s4n. https://github.com/fairagro/m4.4_sciwin_client_examples