# 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.