summaryrefslogtreecommitdiff
path: root/issues/genenetwork1/gn1-pairscan.gmi
blob: b944a138a1c6e1b8da32f5c52bdf9a55ceee2e31 (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
# GN1 Pairscan

Pair scan is not working because of an import issue.


```
Here is the error I get trying to run pair-scan.
Traceback (most recent call last):
File "/gnshare/gn/web/webqtl/cmdLine/webqtlCmdLine.py", line 79, in ?
from pairScan import DirectPlotPage
File "/gnshare/gn/web/webqtl/cmdLine/../pairScan/DirectPlotPage.py", line 32,
in ?
import direct
ImportError: No module named direct
```

# Tags

* type: bug
* priority: critical
* keywords: missing dependency, binary blob, GN1
* assigned: pjotrp
* status: closed

# Notes

Where 'direct' is an imported module. Interestingly it looks like we import the wrong one!

I plugged in the direct.so binary blob and set the LD_LIBRARY_PATH. That gets it running, but we need the source code for the future(!)

Efraim included the module and wrote

```
from the traceback it looks like it's in production.

from my gn1-python24-site-packages folder from lily there's a direct.so{,.bak} file so I'll start hunting around to see what I can make of it.
```

and a fix in guix-bioinformatics:

```
gn: Add python24-direct-gn
```

it is not on Tux01, so let's update from

```
guix-past 4f5856f85578a04991dc646a06279d51f85973bf
guix-bioinformatics b08410a9944e677ef71267410b235ba869f3935f
```

and

```
gn1@tux01:~$ ~/opt/guix/bin/guix --version
guix (GNU Guix) 1.2.0-12.dffc918
```

First update guix with

```
gn1@tux01:~$ ~/opt/guix/bin/guix pull -p ~/opt/guix-latest
```

followed by the git repos above.

The error changed into

```
Traceback (most recent call last):
  File "/gnshare/gn/web/webqtl/cmdLine/webqtlCmdLine.py", line 81, in ?
    page = DirectPlotPage.DirectPlotPage(fd)
  File "/gnshare/gn/web/webqtl/cmdLine/../pairScan/DirectPlotPage.py", line 141, in __init__
    ResultFull, ResultInteract, ResultAdd = direct.permu(webqtlConfig.GENODIR, _vals, _strains, genofile + ".geno", 500) #XZ, 08/14/2008: add module name webqtlConfig
AttributeError: 'module' object has no attribute 'permu'
```

Turns out we are using the wrong direct.so. I made it work by adding the binary blob with LD_LIBRARY_PATH (also required libstdc++.so.6)

* assigned: efraimf

I just fixed pairscan with a bad hack. You can enjoy the production
machine. Note it will disappear on a restart right now of GN1. Efraim,
it works if direct.so and libstdc++.so.6 are visible. Maybe you can
add the binary blob to GN1 and we pray it keeps working?

With gn1.genenetwork.org test by selecting the hippocampus dataset,
look for 'shh' gene, click 'pair scan' on the mapping page and
'compute'.

# Update from Efraim

I have copied the previous version of direct.so to IPFS, it is available
at QmYUZiuAP6DJeubu69JqvRWSsn53qCZCS3FkRWgTowtWkA. Note that it is direct.so
itself. As of commit

```
gn: Use known good binary version of direct.so for genenetwork1
```

we are now using that for genenetwork1. Patchelf makes it refer to the correct
libstdc++.so.6 (namely one provided by Guix) so we don't need to worry about it
being specifically propagated. I'm having trouble actually running the
genenetwork1 container so Pjotr said he'd test it out.

# Testing

The direct.so binary is now on files.genenetwork.org.

=> https://files.genenetwork.org/software/

and part of deployment in guix-bioinformatics. Works on production.