This is done on an Ubuntu docker image and after installing the necessary Python dependencies.
# ./crispor.py sacCer3 sampleFiles/in/sample.sacCer3.fa sampleFiles/mine/sample.sacCer3.tsv -o sample
Files/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
[M::bwa_idx_load_from_disk] read 0 ALT contigs
[bsw2_aln] read 1 sequences/pairs (182 bp) ...
[main] Version: 0.7.15-r1140
[main] CMD: /var/www/html/bin/Linux/bwa bwasw -T 20 /var/www/html/genomes/sacCer3/sacCer3.fa /tmp/crisporBestMatchaVjbG4.fa
[main] Real time: 0.538 sec; CPU: 0.044 sec
INFO:root:Progress x50sPGMoTvUagv3zWjGg - effScores - Calculating guide efficiency scores
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
File "./crispor.py", line 8293, in <module>
main()
File "./crispor.py", line 8291, in main
mainCommandLine()
File "./crispor.py", line 8100, in mainCommandLine
getOfftargets(seq, org, pamPat, batchId, startDict, ConsQueue())
File "./crispor.py", line 4295, in getOfftargets
processSubmission(faFname, org, pamDesc, otBedFname, batchBase, batchId, queue)
File "./crispor.py", line 3835, in processSubmission
createBatchEffScoreTable(batchId, queue)
File "./crispor.py", line 3454, in createBatchEffScoreTable
guideRows = calcSaveEffScores(batchId, seq, extSeq, pam, queue)
File "./crispor.py", line 3392, in calcSaveEffScores
effScores = crisporEffScores.calcAllScores(longSeqs, enzyme=enz, scoreNames=scoreNames)
File "/var/www/html/crisporEffScores.py", line 885, in calcAllScores
scores["fusi"] = calcAziScore(trimSeqs(seqs, -24, 6))
File "/var/www/html/crisporEffScores.py", line 1107, in calcAziScore
import azimuth.model_comparison
File "/var/www/html/bin/Azimuth-2.0/azimuth/model_comparison.py", line 1, in <module>
import azimuth.predict as pd
File "/var/www/html/bin/Azimuth-2.0/azimuth/predict.py", line 3, in <module>
from sklearn.metrics import roc_curve, auc
File "/usr/local/lib/python2.7/dist-packages/sklearn/metrics/__init__.py", line 7, in <module>
from .ranking import auc
File "/usr/local/lib/python2.7/dist-packages/sklearn/metrics/ranking.py", line 26, in <module>
from ..utils import check_consistent_length
File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/__init__.py", line 10, in <module>
from .murmurhash import murmurhash3_32
ImportError: numpy.core.multiarray failed to import
# pip install -U numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/1f/c7/198496417c9c2f6226616cff7dedf2115a4f4d0276613bab842ec8ac1e23/numpy-1.16.4-cp27-cp27mu-manylinux1_x86_64.whl (17.0MB)
100% |################################| 17.0MB 79kB/s
Installing collected packages: numpy
Found existing installation: numpy 1.11.2
Uninstalling numpy-1.11.2:
Successfully uninstalled numpy-1.11.2
Successfully installed numpy-1.16.4
# ./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
[M::bwa_idx_load_from_disk] read 0 ALT contigs
[bsw2_aln] read 1 sequences/pairs (182 bp) ...
[main] Version: 0.7.15-r1140
[main] CMD: /var/www/html/bin/Linux/bwa bwasw -T 20 /var/www/html/genomes/sacCer3/sacCer3.fa /tmp/crisporBestMatch01h687.fa
[main] Real time: 0.026 sec; CPU: 0.015 sec
INFO:root:Progress x50sPGMoTvUagv3zWjGg - effScores - Calculating guide efficiency scores
/usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
/usr/local/lib/python2.7/dist-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.
from numpy.core.umath_tests import inner1d
Traceback (most recent call last):
File "./crispor.py", line 8293, in <module>
main()
File "./crispor.py", line 8291, in main
mainCommandLine()
File "./crispor.py", line 8100, in mainCommandLine
getOfftargets(seq, org, pamPat, batchId, startDict, ConsQueue())
File "./crispor.py", line 4295, in getOfftargets
processSubmission(faFname, org, pamDesc, otBedFname, batchBase, batchId, queue)
File "./crispor.py", line 3835, in processSubmission
createBatchEffScoreTable(batchId, queue)
File "./crispor.py", line 3454, in createBatchEffScoreTable
guideRows = calcSaveEffScores(batchId, seq, extSeq, pam, queue)
File "./crispor.py", line 3392, in calcSaveEffScores
effScores = crisporEffScores.calcAllScores(longSeqs, enzyme=enz, scoreNames=scoreNames)
File "/var/www/html/crisporEffScores.py", line 885, in calcAllScores
scores["fusi"] = calcAziScore(trimSeqs(seqs, -24, 6))
File "/var/www/html/crisporEffScores.py", line 1117, in calcAziScore
score = azimuth.model_comparison.predict(numpy.array([seq]), None, None, pam_audit=False)
File "/var/www/html/bin/Azimuth-2.0/azimuth/model_comparison.py", line 559, in predict
feature_sets = feat.featurize_data(Xdf, learn_options, pandas.DataFrame(), gene_position, pam_audit=pam_audit, length_audit=length_audit)
File "/var/www/html/bin/Azimuth-2.0/azimuth/features/featurization.py", line 31, in featurize_data
get_all_order_nuc_features(data['30mer'], feature_sets, learn_options, learn_options["order"], max_index_to_use=30, quiet=quiet)
File "/var/www/html/bin/Azimuth-2.0/azimuth/features/featurization.py", line 153, in get_all_order_nuc_features
include_pos_independent=True, max_index_to_use=max_index_to_use, prefix=prefix)
File "/var/www/html/bin/Azimuth-2.0/azimuth/features/featurization.py", line 425, in apply_nucleotide_features
assert not np.any(np.isnan(feat_pd)), "nans here can arise from sequences of different lengths"
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 917, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().