willsheffler / worms Goto Github PK
View Code? Open in Web Editor NEWProtein Origami via Genetic Fusions
License: Other
Protein Origami via Genetic Fusions
License: Other
for @willsheffler and @natteruw.
Action Items before may 22
Longer term work goals
Misc
Hey, I was really interested in the WORMs work you've been doing so I tried to install and run some of the examples in the recent Science paper. I found there were some potential compatibility issues that can arise between the current versions of worms, Python, numba, and numpy.
Numba 0.54.0 (or similar) results in a jit error when the import worms command is called. This can be fixed by reverting numba to 0.47.0, as this earlier version doesn't have the issue and is compatible with Python 3.8 (which seems to be required by the current worms release due to the flake8 package). (Sorry, I failed to capture the error message for this one).
I also ran into a somewhat odd error when running the CLI for the first time. Apparently, there was an ABI change in numpy 1.20 which causes a dtype error message to be thrown during CLI execution. More details in this thread below:
numba/numba#6041
Error message below (error is thrown by one of the debugging lines I added, but it's representative of the one that occurs on line 159)
================== start job 0 ======================
output_prefix: ./worms
criteria: <worms.criteria.bounded.AxesIntersect object at 0x7fbe601257f0>
bbspec: [BBDir(bblockspec='fc_binder', direction='_C'), BBDir(bblockspec='connector', direction='NC'), BBDir(bblockspec='C3_N', direction='N_')]
precaching splices
reading pdb /Users/biedermann/test/antibody_cage_data/fc_binders/protein_a.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/fc_binders/dhr79.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR10.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR14.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR15.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR18.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR1.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR20.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR21.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR23.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR24.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR26.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR27.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR31.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR32.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR36.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR39.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR3.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR46.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR47.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR49.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR4.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR53.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR54.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR55.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR57.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR58.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR59.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR62.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR64.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR68.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR70.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR71.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR72.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR76.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR77.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR78.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR79.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR7.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR80.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR81.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR82.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR8.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/connectors/EXT6-DHR9.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/cyclic_oligomers/tj04C3_int5v2.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/cyclic_oligomers/tj18C3_V04.pdb
reading pdb /Users/biedermann/test/antibody_cage_data/cyclic_oligomers/2L6HC3_6_design.pdb
bblocks 0
<numba.jitclass.boxing._BBlock object at 0x7fbe507f4f70>
<class 'numba.jitclass.boxing._BBlock'>
Traceback (most recent call last):
File "/Users/biedermann/miniconda3.8/envs/bar/lib/python3.8/runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/Users/biedermann/miniconda3.8/envs/bar/lib/python3.8/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/biedermann/Dropbox (MIT)/01 Research/03 Code/worms/worms/__main__.py", line 7, in <module>
worms_main(sys.argv[1:])
File "/Users/biedermann/Dropbox (MIT)/01 Research/03 Code/worms/worms/app/main.py", line 43, in worms_main
raise e
File "/Users/biedermann/Dropbox (MIT)/01 Research/03 Code/worms/worms/app/main.py", line 39, in worms_main
worms_main2(criteria_list, kw)
File "/Users/biedermann/Dropbox (MIT)/01 Research/03 Code/worms/worms/app/main.py", line 65, in worms_main2
kw["bbs"] = simple_search_dag(criteria, merge_bblock=None, precache_only=True, pbar=True,
File "/Users/biedermann/Dropbox (MIT)/01 Research/03 Code/worms/worms/ssdag.py", line 162, in simple_search_dag
print(b.file)
TypeError: expected dtype object, got 'numpy.dtype[int8]'
Anyways, just wanted to flag these issues in case anyone else runs into them. Thanks for sharing the awesome code!
OpenBLAS blas_thread_init: RLIMIT_NPROC 512 current, 1031280 max
OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
fix with OPENBLAS_NUM_THREADS=x
or OMP_NUM_THREADS=1
. (?)
File name too long when saving PDBs:
<class 'OSError'>
Traceback (most recent call last):
File "/home/sheffler/src/worms_beta/worms/app.py", line 202, in worms_main_protocol
log += filter_and_output_results(criteria, ssdag, result3, **kw)
File "/home/sheffler/src/worms_beta/worms/output.py", line 260, in filter_and_output_results
with open(fname + '_asym.pdb', 'a') as out:
OSError: [Errno 36] File name too long: '/home/ajasja/projects/Worms/fibre_staples/04_call_worms_bridge/out/03/SID_10_18.3NNCCNN_mbb0028__0000_105-396-828-1137_N1_C2_2-E01_DR64_cryo.RK-05_2_RK-05_2_1na0_AB_A_0001_0002_RK-05_2_DHR49_BA_B_0001_0004.c_term.A_0001_0001.OUTER.SID_10_ex105_en460_HFuse_ZCON-131_2_2c_2a_1053_ex102_en498_HFuse_ZCON-13_2_2c_2a_1037_ex_ABAA_asym.pdb'
[Errno 36] File name too long: '/home/ajasja/projects/Worms/fibre_staples/04_call_worms_bridge/out/03/SID_10_18.3NNCCNN_mbb0028__0000_105-396-828-1137_N1_C2_2-E01_DR64_cryo.RK-05_2_RK-05_2_1na0_AB_A_0001_0002_RK-05_2_DHR49_BA_B_0001_0004.c_term.A_0001_0001.OUTER.SID_10_ex105_en460_HFuse_ZCON-131_2_2c_2a_1053_ex102_en498_HFuse_ZCON-13_2_2c_2a_1037_ex_ABAA_asym.pdb'
database
Vertex (was Segment)
Edge (pre-filter)
WormFilter aka criteria
search
auto reallocating accum array aka vector
pseudocode
ienter contiguous, add ienter to idxrange array
tree search for linear arrangements
topology configuration? Just start with linear? Recombination logic?
worms beta on digs
Running some bridge protocols
NDX0JB~U.ZIP
Traceback (most recent call last):
File "/home/sheffler/.conda/envs/worms/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/sheffler/.conda/envs/worms/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/sheffler/src/worms_beta/worms/__main__.py", line 5, in <module>
worms_main(sys.argv[1:])
File "/home/sheffler/src/worms_beta/worms/app.py", line 45, in worms_main
raise e
File "/home/sheffler/src/worms_beta/worms/app.py", line 41, in worms_main
worms_main2(criteria_list, kw)
File "/home/sheffler/src/worms_beta/worms/app.py", line 120, in worms_main2
kw['context_structure'] = ClashGrid(kw['context_structure'], **kw)
File "/home/sheffler/src/worms_beta/worms/clashgrid.py", line 17, in __init__
bbdb.savepose(pdbfile)
File "/home/sheffler/src/worms_beta/worms/database.py", line 474, in savepose
with open(fname, 'wb') as out:
OSError: [Errno 36] File name too long: '/home/ajasja/.worms/cache/poses/__home__ajasja__projects__Worms__fibre_staples__04_call_worms_bridge__out__N1_C2_2-E01_DR64_cryo.RK-05_2_RK-05_2_1na0_AB_A_0001_0002_RK-05_2_DHR49_BA_B_0001_0004.c_term.A_0001_0001__N1_C2_2-E01_DR64_cryo.RK-05_2_RK-05_2_1na0_AB_A_0001_0002_RK-05_2_DHR49_BA_B_0001_0004.c_term.A_0001_0001.CORE.pdb.gz.pickle'
In the flag file I had either
--bbconn
_C ajasjaA
NC Het:NC
NN Het:NC
NN Het:NN
C_ ajasjaB
or (don't remember exactly)
--bbconn
_C ajasjaA
NC Het:NN
NC Het:NN
NN Het:NN
C_ ajasjaB
And worms precalculated the splices up tp the incorrect connection before throwing an error.
Traceback (most recent call last):
File "/home/sheffler/.conda/envs/worms/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/sheffler/.conda/envs/worms/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/sheffler/src/worms_beta/worms/__main__.py", line 5, in <module>
worms_main(sys.argv[1:])
File "/home/sheffler/src/worms_beta/worms/app.py", line 203, in worms_main
raise e
File "/home/sheffler/src/worms_beta/worms/app.py", line 199, in worms_main
worms_main2(criteria_list, kw)
File "/home/sheffler/src/worms_beta/worms/app.py", line 264, in worms_main2
criteria, merge_bblock=0, print_edge_summary=True, **kw
File "/home/sheffler/src/worms_beta/worms/ssdag.py", line 290, in simple_search_dag
**kw
File "/home/sheffler/src/worms_beta/worms/edge.py", line 24, in Edge
u, ublks, v, vblks, verbosity=verbosity, **kw
File "/home/sheffler/src/worms_beta/worms/edge.py", line 88, in get_allowed_splices
assert (u.dirn[1] + v.dirn[0]) == 1, 'get_allowed_splices dirn mismatch'
AssertionError: get_allowed_splices dirn mismatch
maybe do what bcov did and make a "worms" github account
crap, github.com/worms is taken. new name, or something lame like proteinworms or something?
try to talk @natteruw into managing? what does that even mean? accepting pull requests, I guess.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.