[chimerax-users] ChimeraX tool installationg
Yongcheng MU
ymu004 at odu.edu
Thu Feb 4 19:58:04 PST 2021
Please forget the previous email that was misunderstood. Sorry for the
confusion.
Good night,
Yongcheng
On Thu, Feb 4, 2021 at 9:45 PM Yongcheng MU <ymu004 at odu.edu> wrote:
> Hi Eric and Anthony,
>
> Thank you so much for the reply and help.
>
> I modified the files following your instruction. And now it shows me "No
> atoms match given atom specifier". I wonder if this means everything is
> good now.
>
> Best regards,
> Yongcheng
> [image: Screen Shot 2021-02-04 at 9.41.03 PM.png]
>
> On Thu, Feb 4, 2021 at 8:15 PM Eric Pettersen <pett at cgl.ucsf.edu> wrote:
>
>> Tony's right. Since you explicitly ask for api_version 1,
>> register_command gets the three arguments he mentions (I should have
>> checked that!). You could follow his advice about how to handle those, or
>> you could change to api_version 0, which corresponds to your current
>> declaration (command name and logger). Since api_version 0 is the default,
>> you could just eliminate setting it at all if you want to use version 0.
>>
>> --Eric
>>
>> On Feb 4, 2021, at 5:05 PM, Anthony James Schaefer <tony.schaefer at uga.edu>
>> wrote:
>>
>> Yongcheng,
>>
>> I think there are some other issues than what Eric mentioned. The
>> register_command method of BundleAPI's should take three arguments: bundle
>> info, command info, and a logger. Your register_command only has 2
>> arguments (CL_Tensorflow, and logger). You'll have to add an argument to
>> your function.
>>
>> You might also want to check the variable names you're using. When you
>> call register:
>>
>> from chimerax.core.commands import register
>> register(CL_Tensorflow, desc, cmd.CL_Tensorflow)
>>
>> The first argument here should be a string (the name of the command). But
>> you've got CL_Tensorflow as an argument in your BundleAPI's
>> register_command definition. None of the arguments that get passed to the
>> BundleAPI's register_command are strings. I think you can change that by
>> setting api_version = 0, but I'm not sure. You might want something more
>> like:
>>
>> class CL_Tensorflow(BundleAPI):
>> api_version = 1
>>
>> @statismethod
>> def register_command(bundle_info, command_info, logger):
>> # I'm going to skip importing the command function and
>> # description because I don't know what your code looks like
>> # let's just say your CmdDesc was imported as 'desc' and the
>> function was
>> # imported as 'func'
>> # you'll have to fill that in yourself
>>
>> from chimerax.core.commands import register
>> # use the command_info variable given to register_command to
>> specify
>> # the name of the command
>> register(command_info.name, desc, func)
>>
>> Best,
>>
>> Tony
>> ------------------------------
>> *From:* ChimeraX-users <chimerax-users-bounces at cgl.ucsf.edu> on behalf
>> of Yongcheng MU <ymu004 at odu.edu>
>> *Sent:* Thursday, February 4, 2021 5:51 PM
>> *To:* ChimeraX Users Help <chimerax-users at cgl.ucsf.edu>
>> *Subject:* Re: [chimerax-users] ChimeraX tool installationg
>>
>> [EXTERNAL SENDER - PROCEED CAUTIOUSLY]
>>
>> Hi Eric,
>>
>> I really appreciate your quick response. It really helps me a lot to
>> understand it. But I have another question, following your instructions, I
>> modified the _init_.py file but it still holds an error. I attached some
>> related information below.
>>
>> Thank you for your time and help.
>>
>> Best regards,
>> Yongcheng
>>
>> On Thu, Feb 4, 2021 at 4:09 PM Eric Pettersen <pett at cgl.ucsf.edu> wrote:
>>
>> Hi Yongcheng,
>> You probably know this, but in order to avoid registering all commands at
>> startup, which would involve executing the code from dozens of bundles and
>> make startup really slow, ChimeraX uses information from the Toolshed to
>> know which bundles implement which commands and only when the time comes to
>> actually execute a command does it invoke the bundle's code that fully
>> registers the command, which then allows ChimeraX to know what arguments
>> and keywords the command allows and what function the command executes so
>> that it can parse the command text and call that function.
>> So all that error text you got is indicating that there is an error in
>> your command-registration function. ChimeraX asks you to register your
>> command by calling the register_command() method of your BundleAPI
>> subclass. Does the implementation of register_command() in your
>> __init__.py look something like this?:
>>
>> from chimerax.core.toolshed import BundleAPI
>>
>> class CL_TensorFlowAPI(BundleAPI):
>>
>> @staticmethod
>> def register_command(command_name, logger):
>> from . import cmd
>> cmd.register_command(command_name, logger)
>>
>> If it does, then the problem is that you have no cmd.py file in your
>> bundle, producing the error:
>>
>> cannot import name 'cmd' from 'chimerax.CL_Tensorflow'
>> (/Users/jackmu/Library/Application
>> Support/ChimeraX/1.1/site-packages/chimerax/CL_Tensorflow/__init__.py))
>>
>> Let me know if you need further clarification.
>>
>> --Eric
>>
>> Eric Pettersen
>> UCSF Computer Graphics Lab
>>
>> On Feb 4, 2021, at 10:45 AM, Yongcheng MU <ymu004 at odu.edu> wrote:
>>
>> Hello,
>>
>> Hope you are doing well. This is Yongcheng. I am writing this email
>> because I am trying to install a Deep learning tool in ChimeraX, but I have
>> some issues about it.
>>
>> I built and installed my code following the steps on the Chimera Guide
>> website. I installed my code successfully, but when I run using command
>> that I created, it hold some errors:
>>
>> *"RuntimeError: delayed command registration for 'CL_Tensorflow' failed
>> (register_command() failed for command CL_Tensorflow in bundle
>> ChimeraX-CL-Tensorflow:*
>>
>>
>>
>> *cannot import name 'cmd' from 'chimerax.CL_Tensorflow'
>> (/Users/jackmu/Library/Application
>> Support/ChimeraX/1.1/site-packages/chimerax/CL_Tensorflow/__init__.py))
>> File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/core/commands/cli.py",
>> line 2142, in lazy_register *
>> *raise RuntimeError("delayed command registration for %r failed (%s)" %
>> (cmd_name, e))"*
>>
>> *"During handling of the above exception, another exception occurred:*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *Traceback (most recent call last): File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/cmd_line/tool.py",
>> line 275, in execute cmd.run(cmd_text) File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/core/commands/cli.py",
>> line 2746, in run self._find_command_name(final,
>> used_aliases=_used_aliases) File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/core/commands/cli.py",
>> line 2489, in _find_command_name what.lazy_register(cmd_name) File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/core/commands/cli.py",
>> line 2142, in lazy_register raise RuntimeError("delayed command
>> registration for %r failed (%s)" % (cmd_name, e))RuntimeError: delayed
>> command registration for 'CL_Tensorflow' failed (register_command() failed
>> for command CL_Tensorflow in bundle ChimeraX-CL-Tensorflow:cannot import
>> name 'cmd' from 'chimerax.CL_Tensorflow' (/Users/jackmu/Library/Application
>> Support/ChimeraX/1.1/site-packages/chimerax/CL_Tensorflow/__init__.py))RuntimeError:
>> delayed command registration for 'CL_Tensorflow' failed (register_command()
>> failed for command CL_Tensorflow in bundle ChimeraX-CL-Tensorflow:cannot
>> import name 'cmd' from 'chimerax.CL_Tensorflow'
>> (/Users/jackmu/Library/Application
>> Support/ChimeraX/1.1/site-packages/chimerax/CL_Tensorflow/__init__.py))File
>> "/Users/jackmu/Desktop/ChimeraX-1.1.1.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chimerax/core/commands/cli.py",
>> line 2142, in lazy_register*
>> *raise RuntimeError("delayed command registration for %r failed (%s)" %
>> (cmd_name, e))"*
>>
>> I wonder if you know what's going on here, and how to fix it. Thank you
>> so much for your time.
>>
>> Best regards,
>> Yongcheng
>> _______________________________________________
>> ChimeraX-users mailing list
>> ChimeraX-users at cgl.ucsf.edu
>> Manage subscription:
>> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
>>
>>
>> _______________________________________________
>> ChimeraX-users mailing list
>> ChimeraX-users at cgl.ucsf.edu
>> Manage subscription:
>> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210204/cc15eede/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2021-02-04 at 9.41.03 PM.png
Type: image/png
Size: 26950 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210204/cc15eede/attachment.png>
More information about the ChimeraX-users
mailing list