crisporWebsite icon indicating copy to clipboard operation
crisporWebsite copied to clipboard

Local Instalation

Open DaniPaulo opened this issue 1 year ago • 12 comments

Hi, I'm trying to install the local version of CRISPOR, but getting the following error. Can you help me?

python crispor.py sacCer3 sampleFiles/in/sample.sacCer3.fa sampleFiles/mine/sample.sacCer3.tsv -o sampleFiles/mine/sample.sacCer3.mine.offs.tsv INFO:root: * running on sequence 'testSeq', guideLen=20, seqLen=182 INFO:root:Progress x50sPGMoTvUagv3zWjGg - bwasw - Searching genome for one 100% identical match to input sequence [bsw2_aln] read 1 sequences/pairs (182 bp) ... [main] Version: 0.7.9a-r786 [main] CMD: /Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Darwin/bwa bwasw -b 100 -q 100 -T 20 /Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/genomes/sacCer3/sacCer3.fa /var/tmp/primer3In6eca1vkx.txt [main] Real time: 0.007 sec; CPU: 0.010 sec INFO:root:Progress x50sPGMoTvUagv3zWjGg - effScores - Calculating guide efficiency scores /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/base.py:347: InconsistentVersionWarning: Trying to unpickle estimator DummyRegressor from version 1.1.1 when using version 1.3.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to: https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations warnings.warn( Traceback (most recent call last): File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 8824, in main() File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 8821, in main mainCommandLine() File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 8621, in mainCommandLine getOfftargets(seq, org, pamPat, batchId, startDict, ConsQueue()) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 4643, in getOfftargets processSubmission(faFname, org, pamDesc, otBedFname, batchBase, batchId, queue) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 4165, in processSubmission createBatchEffScoreTable(batchId, queue) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 3767, in createBatchEffScoreTable guideRows = calcSaveEffScores(batchId, seq, extSeq, pam, queue) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crispor.py", line 3704, in calcSaveEffScores effScores = crisporEffScores.calcAllScores(longSeqs, enzyme=enz, scoreNames=scoreNames) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crisporEffScores.py", line 922, in calcAllScores scores["fusi"] = calcAziScore(trimSeqs(seqs, -24, 6)) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/crisporEffScores.py", line 1167, in calcAziScore score = azimuth.model_comparison.predict(numpy.array([seq]), None, None, pam_audit=False)[0] File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/azimuth/model_comparison.py", line 544, in predict model, learn_options = pickle.load(f) File "sklearn/tree/_tree.pyx", line 714, in sklearn.tree._tree.Tree.setstate File "sklearn/tree/_tree.pyx", line 1418, in sklearn.tree._tree._check_node_ndarray ValueError: node array from the pickle has an incompatible dtype:

  • expected: {'names': ['left_child', 'right_child', 'feature', 'threshold', 'impurity', 'n_node_samples', 'weighted_n_node_samples', 'missing_go_to_left'], 'formats': ['<i8', '<i8', '<i8', '<f8', '<f8', '<i8', '<f8', 'u1'], 'offsets': [0, 8, 16, 24, 32, 40, 48, 56], 'itemsize': 64}
  • got : [('left_child', '<i8'), ('right_child', '<i8'), ('feature', '<i8'), ('threshold', '<f8'), ('impurity', '<f8'), ('n_node_samples', '<i8'), ('weighted_n_node_samples', '<f8')]

DaniPaulo avatar Aug 26 '23 21:08 DaniPaulo

Oh, forgot to say. This is what I get when trying to retrain azimuth:

python model_comparison.py /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): Received option CV=False, so I'm training using all of the data running AdaBoost, order 2 for final MKL not available, so I'm not adjusting the number of threads Launching 8 jobs with 1 MKL threads each /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): Loaded 149 samples for gene CCDC101 total number of samples: 149 Loaded 924 samples for gene MED12 total number of samples: 1073 Loaded 190 samples for gene TADA2B total number of samples: 1263 Loaded 109 samples for gene TADA1 total number of samples: 1372 Loaded 64 samples for gene HPRT1 total number of samples: 1436 Loaded 154 samples for gene CUL3 total number of samples: 1590 Loaded 736 samples for gene NF1 total number of samples: 2326 Loaded 223 samples for gene NF2 total number of samples: 2549 Loaded 924 samples for gene MED12 total number of samples: 3473 range of y_all is [0.001082, 1.000000] filename = V3AdaBoostRegressor.order2score_drug_gene_rank.gene.spearman Cross-validating genes... using multiprocessing with 1 procs--one for each fold working on fold 0 of 1, with 5304 train and 5304 test multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/multiprocessing/pool.py", line 125, in worker result = (True, func(*args, **kwds)) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/./azimuth/models/ensembles.py", line 42, in adaboost_on_fold clf.fit(X[train], y[train].flatten()) File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/base.py", line 1144, in wrapper estimator._validate_params() File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/base.py", line 637, in _validate_params validate_parameter_constraints( File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/utils/_param_validation.py", line 95, in validate_parameter_constraints raise InvalidParameterError( sklearn.utils._param_validation.InvalidParameterError: The 'loss' parameter of GradientBoostingRegressor must be a str among {'quantile', 'absolute_error', 'squared_error', 'huber'}. Got 'ls' instead. """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 612, in save_final_model_V3(filename='saved_models/V3_model_nopos.pickle', include_position=False) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 498, in save_final_model_V3 results, all_learn_options = run_models(["AdaBoost"], orders=[2], adaboost_learning_rates=[0.1], File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 359, in run_models results[model_string] = pd.cross_validate(Y, feature_sets, learn_options=learn_options_model, TEST=test, CV=CV) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/./azimuth/predict.py", line 292, in cross_validate y_pred, m[i] = jobs[i].get() File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/multiprocessing/pool.py", line 771, in get raise self._value sklearn.utils._param_validation.InvalidParameterError: The 'loss' parameter of GradientBoostingRegressor must be a str among {'quantile', 'absolute_error', 'squared_error', 'huber'}. Got 'ls' instead.

DaniPaulo avatar Aug 26 '23 21:08 DaniPaulo

This is a version problem. I guess you’re using Python 3.x and Sklearn some version… ? You’ll need the same version that I tested or patch your way forwards …

On Sat, Aug 26, 2023 at 23:34 DaniPaulo @.***> wrote:

Oh, forgot to say. This is what I get when trying to retrain azimuth:

python model_comparison.py /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): Received option CV=False, so I'm training using all of the data running AdaBoost, order 2 for final MKL not available, so I'm not adjusting the number of threads Launching 8 jobs with 1 MKL threads each /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/openpyxl/worksheet/_read_only.py:81: UserWarning: Unknown extension is not supported and will be removed for idx, row in parser.parse(): Loaded 149 samples for gene CCDC101 total number of samples: 149 Loaded 924 samples for gene MED12 total number of samples: 1073 Loaded 190 samples for gene TADA2B total number of samples: 1263 Loaded 109 samples for gene TADA1 total number of samples: 1372 Loaded 64 samples for gene HPRT1 total number of samples: 1436 Loaded 154 samples for gene CUL3 total number of samples: 1590 Loaded 736 samples for gene NF1 total number of samples: 2326 Loaded 223 samples for gene NF2 total number of samples: 2549 Loaded 924 samples for gene MED12 total number of samples: 3473 range of y_all is [0.001082, 1.000000] filename = V3AdaBoostRegressor.order2score_drug_gene_rank.gene.spearman Cross-validating genes... using multiprocessing with 1 procs--one for each fold working on fold 0 of 1, with 5304 train and 5304 test multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/multiprocessing/pool.py", line 125, in worker result = (True, func(*args, **kwds)) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/./azimuth/models/ensembles.py", line 42, in adaboost_on_fold clf.fit(X[train], y[train].flatten()) File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/base.py", line 1144, in wrapper estimator._validate_params() File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/base.py", line 637, in _validate_params validate_parameter_constraints( File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/site-packages/sklearn/utils/_param_validation.py", line 95, in validate_parameter_constraints raise InvalidParameterError( sklearn.utils._param_validation.InvalidParameterError: The 'loss' parameter of GradientBoostingRegressor must be a str among {'quantile', 'absolute_error', 'squared_error', 'huber'}. Got 'ls' instead. """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 612, in save_final_model_V3(filename='saved_models/V3_model_nopos.pickle', include_position=False) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 498, in save_final_model_V3 results, all_learn_options = run_models(["AdaBoost"], orders=[2], adaboost_learning_rates=[0.1], File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/model_comparison.py", line 359, in run_models results[model_string] = pd.cross_validate(Y, feature_sets, learn_options=learn_options_model, TEST=test, CV=CV) File "/Users/fisher21/Desktop/CRISPR_Physalia_workshop/test/crisporWebsite/bin/Azimuth-2.0/./azimuth/predict.py", line 292, in cross_validate y_pred, m[i] = jobs[i].get() File "/opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python3.9/multiprocessing/pool.py", line 771, in get raise self._value sklearn.utils._param_validation.InvalidParameterError: The 'loss' parameter of GradientBoostingRegressor must be a str among {'quantile', 'absolute_error', 'squared_error', 'huber'}. Got 'ls' instead.

— Reply to this email directly, view it on GitHub https://github.com/maximilianh/crisporWebsite/issues/68#issuecomment-1694505956, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACL4TOY47B7IR4FV2DANELXXJTXTANCNFSM6AAAAAA372XUXI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

maximilianh avatar Aug 27 '23 20:08 maximilianh

Thank you so much for replying Max.

I'm using Python 3.9.17, because that's what is in the manual ("Crispor pretty much requires Python 3.9 now since V5.2"). But I guess I also need Python 3.6 to run the other programs? ("That being said, everything else works with Python 3.6")

Where can I find the exact version of each program (e.g., Sklearn)? I created a Conda environment to run CRISPOR locally. Is there a CRISPOR version for Conda?

Thank you again for your help. I've used CRISPOR locally before (back in 2017-18) with no issues, and I need to use it again (as it is the best program–in my opinion–to design sgRNAs) for some non-model species. We have genome and transcriptomic sequences, but they're not yet available. That being said, I'm also having some trouble with "crisporAddGenome"; but maybe one step at the time.

Cheers, Dani.

DaniPaulo avatar Aug 28 '23 07:08 DaniPaulo

Crispor is moving to Python3, but i'm short on time this summer, so it's all a huge mess. The biggest problem is that I didn't know that some of these scores cannot and will never work on Python3, so this will be a mixed Python3/Python2 program, probably the only one on the internet that you know. Academic software sucks.

Various options:

  1. you can check out the version for python2 by going back a few commits in the history, there is a tag for the last version that run on python2, just a few weeks ago. it comes with install instructions in the README
  2. you can use the virtual machine. http://crispor.tefor.net/downloads/
  3. I can try to convert the virtual machine to a docker container
  4. you can get the python3 version to run, it's currently running on crispor.gi.ucsc.edu so I know that that works (mostly). I'm using python 3.9.5 and for keras/tensorflow/h5py, I'm using 2.1.5, 1.7.0 and 2.7.1. For sklearn, I'm using 0.24.2. The first thing I'd try is to downgrade your sklearn to 0.24.2

The warning message that you're getting could indicate that I won't be able to run the Azimuth scores in the future anymore with more recent sklearn versions. Grrr.....

On Mon, Aug 28, 2023 at 9:53 AM DaniPaulo @.***> wrote:

Thank you so much for replying Max.

I'm using Python 3.9.17, because that's what is in the manual ("Crispor pretty much requires Python 3.9 now since V5.2"). But I guess I also need Python 3.6 to run the other programs? ("That being said, everything else works with Python 3.6")

Where can I find the exact version of each program? I created a Conda environment to run CRISPOR locally. Is there a CRISPOR version for Conda?

I've used CRISPOR locally before (back in 2017-18), and I need to use it again (as it is the best program–in my opinion–to design sgRNAs) for non-model species. We have genome and transcriptomic sequences, but they're not yet available.

— Reply to this email directly, view it on GitHub https://github.com/maximilianh/crisporWebsite/issues/68#issuecomment-1695210728, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACL4TN5SSY6I3ZYZRLX5YTXXRE6FANCNFSM6AAAAAA372XUXI . You are receiving this because you commented.Message ID: @.***>

maximilianh avatar Aug 28 '23 08:08 maximilianh

Thank you for your consideration Max. Indeed installing software is the worst part of bioinformatics, specially for a newbie like me. Compatibility is definitely an issue here. Anyway, I try the following today:

Using CRISPOR version for Python 2.7 in macOS conda env:

Set up

git clone --branch crispor5-py27 https://github.com/maximilianh/crisporWebsite.git conda create -n crispor python=2.7 pip=20 bwa matplotlib --yes conda activate crispor pip install biopython==1.76 numpy==1.16 scikit-learn==0.16.1 pandas==0.24 twobitreader keras h5py ./crispor.py

I got the following error:

"Python interpreter path: /opt/homebrew/Caskroom/miniconda/base/envs/crispor/bin/python2 These python modules were not found: matplotlib,scipy,pytabix To install all requirements in one line, run: sudo pip install biopython numpy scikit-learn==0.16.1 pandas twobitreader"

But I can see that all modules are correctly installed at: /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python2.7/site-packages/

It seems CRISPOR is correctly identifying python 2.7 from conda env, but unable to use the modules. Also, pip install tensorflow does not work, I got several error lines.

Using CRISPOR version for Python 3 (crisporWebsite_py39) in a virtual Ubuntu:

I create a virtual Ubuntu (20.04.2 ARM64) with Parallels desktop (17.1.7), then:

sudo apt upgrade sudo apt upgrade sudo apt install git git clone https://github.com/maximilianh/crisporWebsite.git mv crisporWebsite crisporWebsite_py39 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.9 sudo apt install python3.9-venv sudo apt-get install bwa python3-pip python3-matplotlib pip install --upgrade pip pip install wheel python3.9 -m venv venv . venv/bin/activate sudo pip install biopython numpy==1.22.4 scikit-learn pandas==1.4.2 twobitreader xlwt keras tensorflow h5py rs3 pytabix matplotlib lmdbm ./crispor.py

Got the same error as before:

"Python interpreter path: /home/parallels/crisporWebsite_py39/venv/bin/python3 These python modules were not found: pandas,matplotlib,scipy,pytabix To install all requirements in one line, run: sudo pip install biopython numpy scikit-learn==0.16.1 pandas twobitreader"

So I removed the “shebang” and the following comment line from crispor.py, and deactivate a virtual environment "venv". I ran the script ./crispor.py again and it worked this time! So I followed the installation instructions:

mv ./genomes.sample/ ./genomes mkdir -p sampleFiles/mine/ sudo crispor.py sacCer3 sampleFiles/in/sample.sacCer3.fa sampleFiles/mine/sample.sacCer3.tsv -o sampleFiles/mine/sample.sacCer3.mine.offs.tsv

and got a similar error:

"/bin/bash: /home/parallels/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error ERROR:root:Error: could not run command set -o pipefail; true x50sPGMoTvUagv3zWjGg noIp && /home/parallels/crisporWebsite_py39/bin/Linux/bwa bwasw -b 100 -q 100 -T 20 /home/parallels/crisporWebsite_py39/genomes/sacCer3/sacCer3.fa /var/tmp/primer3Ino496z5cn.txt > /var/tmp/primer3In437nk8md.txt."

It looks like crispor.py is looking at the wrong places, but I don't know how to fix it ...

DaniPaulo avatar Aug 29 '23 03:08 DaniPaulo

For the first error:

can you manually run /opt/homebrew/Caskroom/miniconda/base/envs/crispor/bin/python2 and try to import matplotlib or pandas or twobitreader? If any of the requirements mentioned doesn't load, that will trigger this error message.

for the python3 part:

all is working, the python code works. What doesn't work is bwa.

Can you try to run "/home/parallels/crisporWebsite_py39/bin/Linux/bwa" and see what error that outputs?

On Tue, Aug 29, 2023 at 5:52 AM DaniPaulo @.***> wrote:

Thank you for your consideration Max. Indeed installing software is the worst part of bioinformatics, specially for a newbie like me. Compatibility is definitely am issue here. Anyway, I try the following today: Using CRISPOR version for Python 2.7 in macOS conda env:

Set up

git clone --branch crispor5-py27 https://github.com/maximilianh/crisporWebsite.git conda create -n crispor python=2.7 pip=20 bwa matplotlib --yes conda activate crispor pip install biopython==1.76 numpy==1.16 scikit-learn==0.16.1 pandas==0.24 twobitreader keras h5py ./crispor.py

I got the following error:

Python interpreter path: /opt/homebrew/Caskroom/miniconda/base/envs/crispor/bin/python2

These python modules were not found: matplotlib,scipy,pytabix

To install all requirements in one line, run: sudo pip install biopython numpy scikit-learn==0.16.1 pandas twobitreader

But I can see that all modules are correctly installed at: /opt/homebrew/Caskroom/miniconda/base/envs/crispor/lib/python2.7/site-packages/

It seems CRISPOR is correctly identifying python 2.7 from conda env, but unable to use the modules. Also, pip install tensorflow does not work, I got several error lines. Using CRISPOR version for Python 3 (crisporWebsite_py39) in a virtual Ubuntu:

I create a virtual Ubuntu (20.04.2 ARM64) with Parallels desktop (17.1.7), then:

`sudo apt upgrade sudo apt upgrade sudo apt install git git clone https://github.com/maximilianh/crisporWebsite.git mv crisporWebsite crisporWebsite_py39

sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.9 sudo apt install python3.9-venv sudo apt-get install bwa python3-pip python3-matplotlib pip install --upgrade pip pip install wheel

python3.9 -m venv venv . venv/bin/activate

sudo pip install biopython numpy==1.22.4 scikit-learn pandas==1.4.2 twobitreader xlwt keras tensorflow h5py rs3 pytabix matplotlib lmdbm

./crispor.py`

Got the same error as before:

Python interpreter path: /home/parallels/crisporWebsite_py39/venv/bin/python3

These python modules were not found: pandas,matplotlib,scipy,pytabix

To install all requirements in one line, run: sudo pip install biopython numpy scikit-learn==0.16.1 pandas twobitreader

So I removed the “shebang” and the following comment line from crispor.py, and deactivate a virtual environment "venv". I ran the script ./crispor.py again and it worked this time! So I followed the installation instructions:

mv ./genomes.sample/ ./genomes mkdir -p sampleFiles/mine/ sudo crispor.py sacCer3 sampleFiles/in/sample.sacCer3.fa sampleFiles/mine/sample.sacCer3.tsv -o sampleFiles/mine/sample.sacCer3.mine.offs.tsv

and got a similar error:

/bin/bash: /home/parallels/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error ERROR:root:Error: could not run command set -o pipefail; true x50sPGMoTvUagv3zWjGg noIp && /home/parallels/crisporWebsite_py39/bin/Linux/bwa bwasw -b 100 -q 100 -T 20 /home/parallels/crisporWebsite_py39/genomes/sacCer3/sacCer3.fa /var/tmp/primer3Ino496z5cn.txt > /var/tmp/primer3In437nk8md.txt.

It looks like crispor.py is looking at the wrong places, but I don't know how to fix it ...

— Reply to this email directly, view it on GitHub https://github.com/maximilianh/crisporWebsite/issues/68#issuecomment-1696726448, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACL4TIPW6DIAQ7AVME4OQLXXVRQHANCNFSM6AAAAAA372XUXI . You are receiving this because you commented.Message ID: @.***>

maximilianh avatar Aug 29 '23 12:08 maximilianh

Thank you for the suggestions. Following what I got

CRISPOR py27 in macOS conda env:

I ran the following:

/opt/homebrew/Caskroom/miniconda/base/envs/crispor/bin/python2.7

>>> import matplotlib
>>> import pandas
>>> import twobitreader

No errors. Then I checked which versions were loaded:

>>> import matplotlib; print(matplotlib.__version__)
>>> 2.2.5
>>> import pandas; print(pandas.__version__)
>>> 0.24.0

Those are in fact the versions that I installed with conda. For twobitreader I got AttributeError: 'module' object has no attribute 'version' after print(twobitreader.__version__), but I guess its fine ...

CRISPOR py39 in a virtual Ubuntu (Parallels desktop):

I forget to mention before, and not sure if matters. I was first getting the error: "bash: ./crispor.py: /venv/bin/python3: bad interpreter: No such file or directory" So I changed the first line to #!/home/parallels/Documents/crisporWebsite_py39/venv/bin/python3 That lead to the msg: "These python modules were not found ..."

Back to where we stopped: After removing the first “shebang” and the comment line from crispor.py, and deactivate a virtual environment "venv", I got the error:

"/bin/bash: /home/parallels/Documents/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error"

Note that I've installed bwa during the set up (command line: sudo apt-get install bwa python3-pip python3-matplotlib). It looks like the bwa that I've installed worked, since it initiates when I call the program with bwa. But this is what I get when try to run /home/parallels/crisporWebsite_py39/bin/Linux/bwa:

"bash: /home/parallels/Documents/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error"

DaniPaulo avatar Aug 31 '23 22:08 DaniPaulo

Sorry was out of office.

Yes, getting software to work on other people's machines is hard. Would you prefer a docker image?

Those are in fact the versions that I installed with conda.

For twobitreader I got AttributeError: 'module' object has no attribute 'version' after print(twobitreader.version), but I guess its fine ...

Yes, looks all fine, should work now.

After removing the first “shebang” and the comment line from crispor.py, and deactivate a virtual environment "venv", I got the error:

Great, yes, I must do something about this shebang line...

"/bin/bash: /home/parallels/Documents/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error"

Note that I've installed bwa during the set up (command line: sudo apt-get install bwa python3-pip python3-matplotlib). It looks like the bwa that I've installed worked, since it initiates when I call the program with bwa. But this is what I get when try to run /home/parallels/crisporWebsite_py39/bin/Linux/bwa:

"bash: /home/parallels/Documents/crisporWebsite_py39/bin/Linux/bwa: cannot execute binary file: Exec format error"

For some unknown reason, my bwa executable is not working in your machine. I don't know why, can you copy your bwa (see "which bwa") over /home/parallels/crisporWebsite_py39/bin/Linux/bwa and try again?

maximilianh avatar Sep 06 '23 08:09 maximilianh

I previously succesfully used the virtualmachine version to find guides for our Cas9 based DNA sensor (in combi with this simple little tool: https://github.com/harmveer/LUNAS_CRISPOR_tool), but now also wanted to install a local version within WSL Ubuntu. I had a similar issue, that was fixed by using scikit-learn version 1.1.1. (@DaniPaulo your first output also hints at this: InconsistentVersionWarning: Trying to unpickle estimator DummyRegressor from version 1.1.1 when using version 1.3.0. This might lead to breaking code or invalid results. ).

Another version issue I had was with lightgbm, giving me this output:

/home/harm/CRISPOR/crisporWebsite-master/bin/Azimuth-2.0/azimuth/features/featurization.py:423: FutureWarning: Returning a DataFrame from Series.apply when the supplied function returns a Series is deprecated and will be removed in a future version. feat_pd = seq_data_frame.apply(nucleotide_features, args=(order, max_index_to_use, prefix, 'pos_dependent')) /home/harm/CRISPOR/crisporWebsite-master/bin/Azimuth-2.0/azimuth/features/featurization.py:424: FutureWarning: Returning a DataFrame from Series.apply when the supplied function returns a Series is deprecated and will be removed in a future version. feat_pi = seq_data_frame.apply(nucleotide_features, args=(order, max_index_to_use, prefix, 'pos_independent')) Calculating sequence-based features 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1973/1973 [00:04<00:00, 470.10it/s] Traceback (most recent call last): File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 8824, in main() File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 8821, in main mainCommandLine() File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 8621, in mainCommandLine getOfftargets(seq, org, pamPat, batchId, startDict, ConsQueue()) File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 4643, in getOfftargets processSubmission(faFname, org, pamDesc, otBedFname, batchBase, batchId, queue) File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 4165, in processSubmission createBatchEffScoreTable(batchId, queue) File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 3767, in createBatchEffScoreTable guideRows = calcSaveEffScores(batchId, seq, extSeq, pam, queue) File "/home/harm/CRISPOR/crisporWebsite-master/crispor.py", line 3704, in calcSaveEffScores effScores = crisporEffScores.calcAllScores(longSeqs, enzyme=enz, scoreNames=scoreNames) File "/home/harm/CRISPOR/crisporWebsite-master/crisporEffScores.py", line 926, in calcAllScores scores["rs3"] = calcRs3Scores(trimSeqs(seqs, -24, 6)) File "/home/harm/CRISPOR/crisporWebsite-master/crisporEffScores.py", line 1150, in calcRs3Scores scores = predict_seq(seqs, sequence_tracr='Hsu2013') File "/home/harm/miniconda3/envs/CRISPOR/lib/python3.9/site-packages/rs3/seq.py", line 53, in predict_seq seq_predictions = model.predict(featurized_sgrnas) File "/home/harm/miniconda3/envs/CRISPOR/lib/python3.9/site-packages/lightgbm/sklearn.py", line 899, in predict predict_params = self._process_params(stage="predict") File "/home/harm/miniconda3/envs/CRISPOR/lib/python3.9/site-packages/lightgbm/sklearn.py", line 674, in _process_params if self._n_classes > 2: TypeError: '>' not supported between instances of 'NoneType' and 'int'

In the end this was fixed by downgrading lightgbm from version 4.0.0 to 3.3.3. Everything I use it for now appears to work with python 3.9, including crisporAddGenome. In the latter I changed the last line to cmd = "cd ~/CRISPOR/crisporWebsite-master/genomes && ~/CRISPOR/crisporWebsite-master/makeGenomeInfo" to avoid an error thrown by the original.

harmveer avatar Sep 12 '23 20:09 harmveer

In the end this was fixed by downgrading lightgbm from version 4.0.0 to 3.3.3

Oh, this is great to know!! Thanks!!

Message ID: @.***>

maximilianh avatar Sep 13 '23 08:09 maximilianh

Hi, sorry I was super busy this week and just now had the time to go through your messages.

I have ZERO experience with docker (I think Conda spoiled me), but I’m up to try if (1) it would work on both macOS (M1) and Ubuntu, and (2) I would be able to run crisporAddGenome, which is why I’m trying to install CRISPOR locally.

CRISPOR py39 in a virtual Ubuntu (Parallels desktop)

Ok, so I went to /home/parallels/Documents/crisporWebsite_py39/bin/Linux, and the command which bwa gives me /usr/bin/bwa. Then I tried to run BWA with ./bwa and get the following error:

bash: ./bwa: cannot execute binary file: Exec format error

What’s weird is that I can execute BWA (by just typing bwa) from anywhere, so I guess it’s somehow installed correctly on my machine and it’s on my PATH.

Thank you for your suggestions @harmveer. I changed the version of scikit-learn: sudo pip install scikit-learn==1.1.1 . But the same BWA error appears when I run CRISPOR. I think this has to be fixed first.

DaniPaulo avatar Sep 16 '23 04:09 DaniPaulo

Can you try this command?

cp which bwa /home/parallels/Documents/crisporWebsite_py39/bin/Linux/

This will overwrite Crispor's own bwa which you cannot run with your bwa.

On Sat, Sep 16, 2023 at 6:55 AM DaniPaulo @.***> wrote:

Hi, sorry I was super busy this week and just now had the time to go through your messages.

I have ZERO experience with docker (I think Conda spoiled me), but I’m up to try if (1) it would work on both macOS (M1) and Ubuntu, and (2) I would be able to run crisporAddGenome, which is why I’m trying to install CRISPOR locally.

CRISPOR py39 in a virtual Ubuntu (Parallels desktop)

Ok, so I went to /home/parallels/Documents/crisporWebsite_py39/bin/Linux, and the command which bwa gives me /usr/bin/bwa. Then I tried to run BWA with ./bwa and get the following error:

bash: ./bwa: cannot execute binary file: Exec format error

What’s weird is that I can execute BWA (by just typing bwa) from anywhere, so I guess it’s somehow installed correctly on my machine and it’s on my PATH.

Thank you for your suggestions @harmveer https://github.com/harmveer. I changed the version of scikit-learn: sudo pip install scikit-learn==1.1.1 . But the same BWA error appears when I run CRISPOR. I think this has to be fixed first.

— Reply to this email directly, view it on GitHub https://github.com/maximilianh/crisporWebsite/issues/68#issuecomment-1722135188, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACL4TOWKVZXRUXWYMBBGK3X2UWN3ANCNFSM6AAAAAA372XUXI . You are receiving this because you commented.Message ID: @.***>

maximilianh avatar Sep 16 '23 21:09 maximilianh