blob: 124aba0b8dff91b5606247ce051ca58aa1425cc8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
#+OPTIONS: ^:nil
# INSTALLATION
Other options for running this tool.
## GNU Guix
### Running the CLI uploader
Another way to install this tool is inside a [GNU Guix Environment](https://guix.gnu.org/manual/en/html_node/Invoking-guix-environment.html), which can handle installing dependencies for you
1. **Set up and enter a Guix environment with the necessary dependencies.** After installing Guix run:
```sh
guix environment -C guix --ad-hoc git python openssl python-pycurl nss-certs
```
2. **Install the tool.** From there you can follow the [user installation instructions](#installation-with-pip3---user). In brief:
```sh
pip3 install --user schema-salad arvados-python-client
```
Pip installed the following modules
```
arvados-python-client-2.0.1 ciso8601-2.1.3 future-0.18.2 google-api-python-client-1.6.7 httplib2-0.17.1 oauth2client-4.1.3 pyasn1-0.4.8 pyasn1-modules-0.2.8 rsa-4.0 ruamel.yaml-0.15.77 six-1.14.0 uritemplate-3.0.1 ws4py-0.5.1
```
3. Run the tool directly with
```sh
guix environment guix --ad-hoc git python openssl python-pycurl python-magic nss-certs python-pyshex -- python3 bh20sequploader/main.py example/maximum_metadata_example.yaml example/sequence.fasta
```
Note that python-pyshex is packaged in
http://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics
so you'll need it to the GUIX_PACKAGE_PATH - see the README in that
repository. E.g.
```sh
env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ ~/opt/guix/bin/guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml --network openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client --share=/export/tmp -- env TMPDIR=/export/tmp python3 bh20sequploader/main.py --help
```
Latest successful Guix run
```sh
env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-bioinformatics/ ~/opt/guix/bin/guix environment guix --ad-hoc git python openssl python-pycurl python-magic nss-certs python-pyshex python-arvados-python-client python-schema-salad minimap2 -- python3 bh20sequploader/main.py scripts/uthsc_samples/yaml/AL_UT14.yaml scripts/uthsc_samples/yaml/AL_UT14.fa
```
### Using the Web Uploader
To run the web uploader in a GNU Guix environment/container run it with something like
```
guix environment guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs --network openssl -- env FLASK_ENV=development PYTHONPATH=$PYTHONPATH:./bh20sequploader FLASK_APP=bh20simplewebuploader/main.py flask run
* Serving Flask app "bh20simplewebuploader/main.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
```
WIP: add gunicorn container
Currently the full webserver container deploy command looks like
```
penguin2:~/iwrk/opensource/code/vg/bh20-seq-resource$ env GUIX_PACKAGE_PATH=~/iwrk/opensource/guix/guix-oinformatics/ ~/iwrk/opensource/guix/guix/pre-inst-env guix environment -C guix --ad-hoc git python python-flask python-pyyaml python-pycurl python-magic nss-certs python-pyshex python-pyyaml --network openssl python-pyshex python-pyshexc minimap2 python-schema-salad python-arvados-python-client --share=/export/tmp -- env TMPDIR=/export/tmp FLASK_ENV=development FLASK_APP=bh20simplewebuploader/main.py flask run
```
Note: see above on GUIX_PACKAGE_PATH.
## Run country semantic enrichment script
cd bh20-seq-resource/scripts/db_enrichment
edit input_location.csv
guix environment guix --ad-hoc git python nss-certs python-rdflib -- python3 country_enrichment.py
## Run the tests
guix package -i python-requests python-pandas python-jinja2 python -p ~/opt/python-dev
. ~/opt/python-dev/etc/profile
## Run Virtuoso-ose
Guix has a package for virtuoso-ose we use
guix package -i virtuoso-ose -p ~/opt/virtuoso
Create a data dir
mkdir -p /export/virtuoso/var/lib/virtuoso/db
chown $USER /export/virtuoso/var/lib/virtuoso/db
Add an ini file
cp ~/opt/virtuoso/var/lib/virtuoso/db/virtuoso.ini .config/
And run from the data dir
cd /export/virtuoso/var/lib/virtuoso/db
guix environment --ad-hoc virtuoso-ose -- virtuoso-t -f
Visit http://localhost:8890/sparql
To update the turtle files do
guix environment -C guix --ad-hoc python python-requests raptor2 curl --network -- python3 ./scripts/update_virtuoso/check_for_updates.py cache.txt dba dba
where dba is the default password.
## Run the Auspice phylo-tree viewer
Auspice is developed by the Nextstrain team and we use it for
exploring the phylogenetic tree. It does not scale well beyond 5,000
SARS-CoV-2 virusses, so we need to limit the input set!
Auspice runs on a separate port.
Running on port 4001 using your repo:
Install node with Guix
~/.config/guix/current/bin/guix package -i node -p ~/opt/node
Load Guix environment variables
. ~/opt/node/etc/profile
Run server after fetching data in ./data
cd auspice
npm install --global --prefix node_modules .
env PORT=4001 ./node_modules/bin/auspice view --datasetDir ./data
|