Search results for query "look through"
- 520 messages

Re: [phenixbb] Geometry Restraints - Anisotropic truncation
by Terwilliger, Thomas C
Hi Kendall,
This could work. You could define a fixed set of test reflections, and never touch these, and never include them in refinement, and always use this fixed set to calculate a free R. Then you could do whatever you want, throw away some work reflections, etc, refine, and evaluate how things are working with the fixed free R set.
All the best,
Tom T
________________________________________
From: phenixbb-bounces(a)phenix-online.org [phenixbb-bounces(a)phenix-online.org] on behalf of Kendall Nettles [knettles(a)scripps.edu]
Sent: Thursday, May 03, 2012 7:05 AM
To: PHENIX user mailing list
Subject: Re: [phenixbb] Geometry Restraints - Anisotropic truncation
Hi Pavel,
Could you use a similar approach to figuring out where to cut your data in general? Could you compare the effects of throwing out reflections in different bins, based on I/sigma, for example, and use this to determine what is truly noise? I might predict that as you throw out "noise" reflections you will see a larger drop in Rfree than from throwing out "signal" reflections, which should converge as you approach the "true" resolution. While we don't use I/sigma exclusively, we do to tend towards cutting most of our data sets at the same i/sigma, around 1.5. It would be great if there was a more scientific approach.
Best,
Kendall
On May 3, 2012, at 7:45 AM, Pavel Afonine wrote:
> Hi Kendall,
>
> removing same amount of data randomly gives Rwork/Rfree ~ 30/35%.
>
> Pavel
>
> On 5/3/12 4:13 AM, Kendall Nettles wrote:
>> Hi Pavel,
>> What happens if you throw out that many reflections that have signal? Can you take out a random set of the same size?
>> Best,
>> Kendall
>>
>> On May 3, 2012, at 2:41 AM, "Pavel Afonine"<pafonine(a)lbl.gov> wrote:
>>
>>> Hi Kendall,
>>>
>>> I just did this quick test: calculated R-factors using original and
>>> anisotropy-corrected Mike Sawaya's data (*)
>>>
>>> Original:
>>> r_work : 0.3026
>>> r_free : 0.3591
>>> number of reflections: 26944
>>>
>>> Truncated:
>>> r_work : 0.2640
>>> r_free : 0.3178
>>> number of reflections: 18176
>>>
>>> The difference in R-factors is not too surprising given how many
>>> reflections was removed (about 33%).
>>>
>>> Pavel
>>>
>>> (*) Note, the data available in PDB is anisotropy corrected. The
>>> original data set was kindly provided to me by the author.
>>>
>>>
>>> On 5/2/12 5:25 AM, Kendall Nettles wrote:
>>>> I didnt think the structure was publishable with Rfree of 33% because I was expecting the reviewers to complain.
>>>>
>>>> We have tested a number of data sets on the UCLA server and it usually doesn't make much difference. I wouldn't expect truncation alone to change Rfree by 5%, and it usually doesn't. The two times I have seen dramatic impacts on the maps ( and Rfree ), the highly anisotrophic sets showed strong waves of difference density as well, which was fixed by throwing out the noise. We have moved to using loose data cutoffs for most structures, but I do think anisotropic truncation can be helpful in rare cases.
>>>>
>>>> Kendall
>>>>
>>>> On May 1, 2012, at 3:07 PM, "Dale Tronrud"<det102(a)uoxray.uoregon.edu> wrote:
>>>>
>>>>> While philosophically I see no difference between a spherical resolution
>>>>> cutoff and an elliptical one, a drop in the free R can't be the justification
>>>>> for the switch. A model cannot be made more "publishable" simply by discarding
>>>>> data.
>>>>>
>>>>> We have a whole bunch of empirical guides for judging the quality of this
>>>>> and that in our field. We determine the resolution limit of a data set (and
>>>>> imposing a "limit" is another empirical choice made) based on Rmrg, or Rmes,
>>>>> or Rpim getting too big or I/sigI getting too small and there is no agreement
>>>>> on how "too big/small" is too "too big/small".
>>>>>
>>>>> We then have other empirical guides for judging the quality of the models
>>>>> we produce (e.g. Rwork, Rfree, rmsds of various sorts). Most people seem to
>>>>> recognize that the these criteria need to be applied differently for different
>>>>> resolutions. A lower resolution model is allowed a higher Rfree, for example.
>>>>>
>>>>> Isn't is also true that a model refined to data with a cutoff of I/sigI of
>>>>> 1 would be expected to have a free R higher than a model refined to data with
>>>>> a cutoff of 2? Surely we cannot say that the decrease in free R that results
>>>>> from changing the cutoff criteria from 1 to 2 reflects an improved model. It
>>>>> is the same model after all.
>>>>>
>>>>> Sometimes this shifting application of empirical criteria enhances the
>>>>> adoption of new technology. Certainly the TLS parametrization of atomic
>>>>> motion has been widely accepted because it results in lower working and free
>>>>> Rs. I've seen it knock 3 to 5 percent off, and while that certainly means
>>>>> that the model fits the data better, I'm not sure that the quality of the
>>>>> hydrogen bond distances, van der Waals distances, or maps are any better.
>>>>> The latter details are what I really look for in a model.
>>>>>
>>>>> On the other hand, there has been good evidence through the years that
>>>>> there is useful information in the data beyond an I/sigI of 2 or an
>>>>> Rmeas> 100% but getting people to use this data has been a hard slog. The
>>>>> reason for this reluctance is that the R values of the resulting models
>>>>> are higher. Of course they are higher! That does not mean the models
>>>>> are of poorer quality, only that data with lower signal/noise has been
>>>>> used that was discarded in the models you used to develop your "gut feeling"
>>>>> for the meaning of R.
>>>>>
>>>>> When you change your criteria for selecting data you have to discard
>>>>> your old notions about the acceptable values of empirical quality measures.
>>>>> You either have to normalize your measure, as Phil Jeffrey recommends, by
>>>>> ensuring that you calculate your R's with the same reflections, or by
>>>>> making objective measures of map quality.
>>>>>
>>>>> Dale Tronrud
>>>>>
>>>>> P.S. It is entirely possible that refining a model to a very optimistic
>>>>> resolution cutoff and calculating the map to a lower resolution might be
>>>>> better than throwing out the data altogether.
>>>>>
>>>>> On 5/1/2012 10:34 AM, Kendall Nettles wrote:
>>>>>> I have seen dramatic improvements in maps and behavior during refinement following use of the UCLA anisotropy server in two different cases. For one of them the Rfree went from 33% to 28%. I don't think it would have been publishable otherwise.
>>>>>> Kendall
>>>>>>
>>>>>> On May 1, 2012, at 11:10 AM, Bryan Lepore wrote:
>>>>>>
>>>>>>> On Mon, Apr 30, 2012 at 4:22 AM, Phil Evans<pre(a)mrc-lmb.cam.ac.uk> wrote:
>>>>>>>> Are anisotropic cutoff desirable?
>>>>>>> is there a peer-reviewed publication - perhaps from Acta
>>>>>>> Crystallographica - which describes precisely why scaling or
>>>>>>> refinement programs are inadequate to ameliorate the problem of
>>>>>>> anisotropy, and argues why the method applied in Strong, et. al. 2006
>>>>>>> satisfies this need?
>>>>>>>
>>>>>>> -Bryan
>>> _______________________________________________
>>> phenixbb mailing list
>>> phenixbb(a)phenix-online.org
>>> http://phenix-online.org/mailman/listinfo/phenixbb
>> _______________________________________________
>> phenixbb mailing list
>> phenixbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/phenixbb
>
> _______________________________________________
> phenixbb mailing list
> phenixbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/phenixbb
_______________________________________________
phenixbb mailing list
phenixbb(a)phenix-online.org
http://phenix-online.org/mailman/listinfo/phenixbb
13 years, 2 months

Re: [cctbxbb] Boost Python 1.56
by Billy Poon
Hi James,
I agree with Graeme's tests and I would add
cctbx_regression.test_nightly
That command is a shortcut for running the test modules for libtbx,
boost_adaptbx, scitbx, cctbx, iotbx, dxtbx, and smtbx. The mmtbx module is
also tested if chem_data is available. Should we add rstbx to the shortcut
(cctbx_project/cctbx/command_line/cctbx_test_nightly.py)?
--
Billy K. Poon
Research Scientist, Molecular Biophysics and Integrated Bioimaging
Lawrence Berkeley National Laboratory
1 Cyclotron Road, M/S 33R0345
Berkeley, CA 94720
Tel: (510) 486-5709
Fax: (510) 486-5909
Web: https://phenix-online.org
On Thu, Apr 6, 2017 at 1:37 AM, <richard.gildea(a)diamond.ac.uk> wrote:
> I've made a start on transcribing this document here:
>
> https://github.com/cctbx/cctbx_project/wiki/cctbx-Developer-Guidance
>
> It probably still needs cleaning up a bit (e.g. I couldn't figure out
> quickly how to do 3-level list nesting, 1.a.i etc.) and updating to reflect
> current practice (e.g. git not svn).
>
> Cheers,
>
> Richard
>
> Dr Richard Gildea
> Data Analysis Scientist
> Tel: +441235 77 8078
>
> Diamond Light Source Ltd.
> Diamond House
> Harwell Science & Innovation Campus
> Didcot
> Oxfordshire
> OX11 0DE
>
> ________________________________________
> From: cctbxbb-bounces(a)phenix-online.org [cctbxbb-bounces(a)phenix-online.org]
> on behalf of Pavel Afonine [pafonine(a)lbl.gov]
> Sent: 06 April 2017 09:07
> To: cctbx mailing list
> Subject: Re: [cctbxbb] Boost Python 1.56
>
> Hi Graeme,
>
> hm.. this is a good question. We've been through back-and-forth
> iterations of editing this file and I think the latest I have is from
> Paul. But I can't find a non-PDF version of it. Paul: do you have an
> editable version of this file?
>
> Thanks,
> Pavel
>
> On 4/6/17 13:45, Graeme.Winter(a)diamond.ac.uk wrote:
> > Hi Pavel
> >
> > These all seem sensible
> >
> > If you have the original non pdf document it may be easier to transcribe
> this over..
> >
> > I also note that it lacks the actual detail on how to run tests! However
> would be happy to add this once on wiki
> >
> > Best wishes Graeme
> >
> > On 6 Apr 2017, at 04:00, Pavel Afonine <pafonine(a)lbl.gov<mailto:pafon
> ine(a)lbl.gov>> wrote:
> >
> > Not sure if that answers your questions but once upon a time we here at
> Berkeley tried to write a some sort of document that was supposed to answer
> questions like this. Attached. By no means it is complete, up-to-date, etc,
> but it might be worth reading for anyone who contributes to cctbx. (Even
> not sure if I'm sending the latest version).
> > Unfortunately, nobody bothered to put it in some central place.
> >
> > Pavel
> >
> > On 4/6/17 10:51, James Holton wrote:
> > Hey Billy,
> >
> > On a related note. How do I run these regression tests before committing
> something into Git? Is there a document on dials regression testing I can't
> find?
> >
> > -James
> >
> > On Apr 5, 2017, at 3:38 PM, Billy Poon <bkpoon(a)lbl.gov<mailto:bkpoon@
> lbl.gov>> wrote:
> >
> > Hi all,
> >
> > I tested Boost 1.56 on our buildbot servers and got some new test
> failures with
> >
> > cctbx_project/scitbx/array_family/boost_python/tst_flex.py
> > cctbx_project/scitbx/random/tests/tst_random.py
> >
> > The full log for CentOS 6 can be found at
> >
> > http://cci-vm-6.lbl.gov:8010/builders/phenix-nightly-intel-
> linux-2.6-x86_64-centos6/builds/601/steps/test%20cctbx_
> regression.test_nightly/logs/stdio
> >
> > It looks like the errors are related to random number generation. For a
> given seed, would the sequence of numbers change when Boost is changed? I
> did a diff between Boost 1.56 and the current Boost and could not see any
> changes that immediately stood out as being related to random numbers.
> >
> > Are these tests failing for others as well?
> >
> > --
> > Billy K. Poon
> > Research Scientist, Molecular Biophysics and Integrated Bioimaging
> > Lawrence Berkeley National Laboratory
> > 1 Cyclotron Road, M/S 33R0345
> > Berkeley, CA 94720
> > Tel: (510) 486-5709
> > Fax: (510) 486-5909
> > Web: https://phenix-online.org<https://phenix-online.org/>
> >
> > On Wed, Apr 5, 2017 at 8:12 AM, Charles Ballard <
> charles.ballard(a)stfc.ac.uk<mailto:[email protected]>> wrote:
> > FYI, we (CCP4) have been using 1.56 for building cctbx/phaser/dials for
> the last while with no issues. Don't know about 1.60, but 1.59 causes
> issues with the boost python make_getter and make_setter (initialisation of
> none const reference if the passed type is a temporary).
> >
> > Charles
> >
> > On 3 Apr 2017, at 14:31, Luc Bourhis wrote:
> >
> > Hi all,
> >
> > everybody seemed to agree but then it was proposed to move straight to
> Boost 1.60, and this caused troubles. Could we consider again to move to at
> least 1.56? As far as I can tell, this does not cause any issue and as
> stated one year ago, it would help me and Olex 2.
> >
> > Thanks,
> >
> > Luc
> >
> > On 10 Feb 2016, at 15:17, Nicholas Sauter <nksauter(a)lbl.gov<mailto:nksau
> ter(a)lbl.gov>> wrote:
> >
> > Nigel, Billy & Aaron,
> >
> > I completely endorse this move to Boost 1.56. Can we update our build?
> >
> > Nick
> >
> > Nicholas K. Sauter, Ph. D.
> > Computer Staff Scientist, Molecular Biophysics and Integrated Bioimaging
> Division
> > Lawrence Berkeley National Laboratory
> > 1 Cyclotron Rd., Bldg. 33R0345
> > Berkeley, CA 94720
> > (510) 486-5713<tel:%28510%29%20486-5713>
> >
> > On Wed, Feb 10, 2016 at 2:41 PM, Luc Bourhis <luc_j_bourhis(a)mac.com
> <mailto:[email protected]>> wrote:
> > Hi,
> >
> > I have improvements to the smtbx on their way to be committed which
> require Boost version 1.56. This is related to Boost.Threads, whose support
> I re-activated a few months ago on Nick’s request. I need the function
> boost::thread::physical_concurrency which returns the number of physical
> cores on the machine, as opposed to virtual cores when hyperthreading is
> enabled (which it is by default on any Intel machine). That function is not
> available in Boost 1.55 which is the version currently used in the nightly
> tests: it appeared in 1.56.
> >
> > So, would it be possible to move to Boost 1.56? Otherwise, I will need
> to backport that function. Not too difficult but not thrilling.
> >
> > Best wishes,
> >
> > Luc
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> > <cctbx-developer-guidance-08-2015.pdf>_____________________
> __________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org<mailto:[email protected]>
> > http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
> --
> This e-mail and any attachments may contain confidential, copyright and or
> privileged material, and are for the use of the intended addressee only. If
> you are not the intended addressee or an authorised recipient of the
> addressee please notify us of receipt by returning the e-mail and do not
> use, copy, retain, distribute or disclose the information in or attached to
> the e-mail.
> Any opinions expressed within this e-mail are those of the individual and
> not necessarily of Diamond Light Source Ltd.
> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
> attachments are free from viruses and we cannot accept liability for any
> damage which you may sustain as a result of software viruses which may be
> transmitted in or with the message.
> Diamond Light Source Limited (company no. 4375679). Registered in England
> and Wales with its registered office at Diamond House, Harwell Science and
> Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
8 years, 2 months

Re: [cctbxbb] some thoughts on cctbx and pip
by Luc Bourhis
Hi Tristan,
cctbx could be built to use your ChimeraX python, now that cctbx is moving to Python 3. The option —with-python is there for that with the bootstrap script. The specific environment setup boil down to setting two environment variable LIBTBX_BUILD and either LD_LIBRARY_PATH on Linux, PATH on Win32, or DYLIB_LIBRARY_PATH on MacOS. If you work within a framework such as ChimeraX, that should not be difficult to ensure those two variables are set.
Best wishes,
Luc
> On 23 Aug 2019, at 19:02, Tristan Croll <tic20(a)cam.ac.uk> wrote:
>
> To add my two cents on this: probably the second-most common question I've had about ISOLDE's implementation is, "why didn't you use CCTBX?". The honest answer to that is, "I didn't know how."
>
> Still don't, really - although the current developments are rather promising. The problem I've faced is that CCTBX was designed as its own self-contained Python (2.7, until very recently) environment, with its own interpreter and a lot of very specific environment setup. Meanwhile I'm developing ISOLDE in ChimeraX, which is *also* its own self-contained Python (3.7) environment. To plug one into the other in that form... well, I don't think I'm a good enough programmer to really know where to start.
>
> The move to Conda and a more modular CCTBX architecture should make a lot more possible in that direction. Pip would be even better for me personally (ChimeraX can install directly from the PyPI, but doesn't interact with Conda) - but I understand pretty well the substantial challenge that would amount to (not least being that the PyPI imposes a limit - around 100MB from memory? - on the size of an individual package).
>
> Best regards,
>
> Tristan
>
> On 2019-08-23 09:28, Luc Bourhis wrote:
>> Hi Graeme,
>> Yes, I know. But “black" is a program doing a very particular task
>> (code formatting from the top of my head). Requiring to use a wrapper
>> for python itself is another level. But ok, I think I am mellowing to
>> the idea after all! Talking with people around me, and extrapolating,
>> I would bet that, right now, a great majority of people interested by
>> cctbx in pip have already used the cctbx, so they know about the
>> Python wrapper, and they would not be too sanguine about that. My
>> concern is for the future, when pip will be the first time some people
>> use cctbx. Big fat warning notices on PyPI page and a better error
>> message when cctbx fails because LIBTBX_BUILD is not set would be
>> needed but that could be all right.
>> If we do a pip installer, we should aim at a minimal install: cctbx,
>> iotbx and their dependencies, and that’s it.
>> Best wishes,
>> Luc
>>> On 23 Aug 2019, at 07:17, Graeme.Winter(a)Diamond.ac.uk <Graeme.Winter(a)diamond.ac.uk> wrote:
>>> Without discussing the merits of this or whether we _choose_ to make the move to supporting PIP, I am certain it would be _possible_ - many other packages make dispatcher scripts when you pip install them e.g.
>>> Silver-Surfer rescale_f2 :) $ which black; cat $(which black)
>>> /Library/Frameworks/Python.framework/Versions/3.6/bin/black
>>> #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
>>> # -*- coding: utf-8 -*-
>>> import re
>>> import sys
>>> from black import main
>>> if __name__ == '__main__':
>>> sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
>>> sys.exit(main())
>>> So we _could_ work around the absence of LIBTBX_BUILD etc. in the system. Whether or not we elect to do the work is a different question, and it seems clear that here are very mixed opinions on this.
>>> Best wishes Graeme
>>> On 23 Aug 2019, at 01:21, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>>> Hi,
>>> Even if we managed to ship our the boost dynamic libraries with pip, it would still not be pip-like, as we would still need our python wrappers to set LIBTBX_BUILD and LD_LIBRARY_PATH. Normal pip packages work with the standard python exe. LD_LIBRARY_PATH, we could get around that by changing the way we compile, using -Wl,-R, which is the runtime equivalent of build time -L. That’s a significant change that would need to be tested. But there is no way around setting LIBTBX_BUILD right now. Leaving that to the user is horrible. Perhaps there is a way to hack libtbx/env_config.py so that we can hardwire LIBTBX_BUILD in there when pip installs?
>>> Best wishes,
>>> Luc
>>> On 16 Aug 2019, at 22:47, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>>> Hi,
>>> I did look into that many years ago, and even toyed with building a pip installer. What stopped me is the exact conclusion you reached too: the user would not have the pip experience he expects. You are right that it is a lot of effort but is it worth it? Considering that remark, I don’t think so. Now, Conda was created specifically to go beyond pip pure-python-only support. Since cctbx has garnered support for Conda, the best avenue imho is to go the extra length to have a package on Anaconda.org<http://anaconda.org/>, and then to advertise it hard to every potential user out there.
>>> Best wishes,
>>> Luc
>>> On 16 Aug 2019, at 21:45, Aaron Brewster <asbrewster(a)lbl.gov<mailto:[email protected]>> wrote:
>>> Hi, to avoid clouding Dorothee's documentation email thread, which I think is a highly useful enterprise, here's some thoughts about putting cctbx into pip. Pip doesn't install non-python dependencies well. I don't think boost is available as a package on pip (at least the package version we use). wxPython4 isn't portable through pip (https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython…). MPI libraries are system dependent. If cctbx were a pure python package, pip would be fine, but cctbx is not.
>>> All that said, we could build a manylinux1 version of cctbx and upload it to PyPi (I'm just learning about this). For a pip package to be portable (which is a requirement for cctbx), it needs to conform to PEP513, the manylinux1 standard (https://www.python.org/dev/peps/pep-0513/). For example, numpy is built according to this standard (see https://pypi.org/project/numpy/#files, where you'll see the manylinux1 wheel). Note, the manylinux1 standard is built with Centos 5.11 which we no longer support.
>>> There is also a manylinux2010 standard, which is based on Centos 6 (https://www.python.org/dev/peps/pep-0571/). This is likely a more attainable target (note though by default C++11 is not supported on Centos 6).
>>> If we built a manylinuxX version of cctbx and uploaded it to PyPi, the user would need all the non-python dependencies. There's no way to specify these in pip. For example, cctbx requires boost 1.63 or better. The user will need to have it in a place their python can find it, or we could package it ourselves and supply it, similar to how the pip h5py package now comes with an hd5f library, or how the pip numpy package includes an openblas library. We'd have to do the same for any packages we depend on that aren't on pip using the manylinux standards, such as wxPython4.
>>> Further, we need to think about how dials and other cctbx-based packages interact. If pip install cctbx is set up, how does pip install dials work, such that any dials shared libraries can find the cctbx libraries? Can shared libraries from one pip package link against libraries in another pip package? Would each package need to supply its own boost? Possibly this is well understood in the pip field, but not by me :)
>>> Finally, there's the option of providing a source pip package. This would require the full compiler toolchain for any given platform (macOS, linux, windows). These are likely available for developers, but not for general users.
>>> Anyway, these are some of the obstacles. Not saying it isn't possible, it's just a lot of effort.
>>> Thanks,
>>> -Aaron
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>> --
>>> This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
>>> Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
>>> Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
>>> Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb(a)phenix-online.org
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
5 years, 10 months

Re: [cctbxbb] some thoughts on cctbx and pip
by Gergely Katona
Dear Billy,
Thank you for this update and for your efforts! I found a solution and
indeed most things already work in anaconda3. The steps I took (even
if these instructions will have short expiry date):
Modified .condarc with:
channels:
- cctbx
- conda-forge
- defaults
run
conda conda install cctbx_dependencies python=3.6
I expect this will work without python=3.6 in the near future.
Then compiling cctbx with anaconda3 python went without any problem
when using these flags:
python bootstrap.py --use-conda --python3 --nproc=12
Then I probably did the unorthodox thing and sourced these directories:
setenv LIBTBX_BUILD /home/gergely/cctbx/build
setenv PATH ${PATH}:/home/gergely/cctbx/build/bin
setenv PYTHONPATH
/home/gergely/cctbx/modules/cctbx_project:/home/gergely/cctbx/modules:/home/gergely/cctbx/modules/cctbx_project/boost_adaptbx:/home/gergely/cctbx/build/lib:/home/gergely/cctbx/conda_base/lib/python3.6/site-packages:$PYTHONPATH
setenv LD_LIBRARY_PATH
/home/gergely/cctbx/conda_base/lib:/home/gergely/cctbx/build/lib:$LD_LIBRARY_PATH
There is probably a better way to put this into conda environment.
With these steps I could run one of my scripts depending on cctbx. The
only problem I found is that hdf5 library had conflict with another
package in conda, but I does not find this as a showstopper.
Best wishes,
Gergely
On Fri, Dec 13, 2019 at 7:23 PM Billy Poon <BKPoon(a)lbl.gov> wrote:
>
> Hi Gergely,
>
> It's still a work in progress. I'm sorting out some Windows issues right now. I can probably build a test package on a separate channel for people that want to test it (let's say next week?). I'll provide instructions, but basically, the test conda package will be in its own separate channel and the dependencies will be pulled from the conda-forge channel. I want most things to be working correctly on Python 2.7, 3.6, 3.7, and 3.8 on all 3 platforms.
>
> Thanks!
>
> --
> Billy K. Poon
> Research Scientist, Molecular Biophysics and Integrated Bioimaging
> Lawrence Berkeley National Laboratory
> 1 Cyclotron Road, M/S 33R0345
> Berkeley, CA 94720
> Tel: (510) 486-5709
> Fax: (510) 486-5909
> Web: https://phenix-online.org
>
>
> On Fri, Dec 13, 2019 at 5:44 AM Gergely Katona <gkatona(a)gmail.com> wrote:
>>
>> Dear Billy,
>>
>> This sounds very promising and exciting. I am not sure if cctbx is
>> already functional as a conda package in anaconda3 (Linux) or this is
>> still work in progress. My technical expertise does not allow me to
>> tell the difference. What I tried:
>>
>> Fresh install of anaconda3. Adding - cctbx and - conda-forge to
>> .condarc . Installing pyside2 with conda. Running conda install
>> conda_dependencies . I get a lot package version conflict, and I
>> cannot import cctbx or iotbx to anaconda python. Am I following the
>> right instructions? Or it is too early to expect that cctbx works when
>> installed through conda?
>>
>> Best wishes,
>>
>> Gergely
>>
>> On Wed, Nov 27, 2019 at 3:56 PM Billy Poon <BKPoon(a)lbl.gov> wrote:
>> >
>> > Hi all,
>> >
>> > For a brief update, I have submitted a recipe for cctbxlite to conda-forge (https://github.com/conda-forge/staged-recipes/pull/10021) and support for Python 3.7 and 3.8 is being added (https://github.com/cctbx/cctbx_project/pull/409). With some fixes for Windows (https://github.com/cctbx/cctbx_project/pull/416), all platforms (macOS, linux, and Windows) can build for Python 2.7, 3.6, 3.7, and 3.8. Some additional changes will be needed to get Windows to work with Python 3 and for tests to pass with Boost 1.70.0. That will enable the conda-forge recipe to build for all platforms and for all supported versions of Python.
>> >
>> > Currently, the conda-forge recipe will install into the conda python and cctbx imports can be done without sourcing the environment scripts. It looks like a lot of the environment variables being set in the dispatchers can be removed since the Python files and C++ extensions are in the right places. I'll update the libtbx_env file so that commands that load the environment can work correctly.
>> >
>> > --
>> > Billy K. Poon
>> > Research Scientist, Molecular Biophysics and Integrated Bioimaging
>> > Lawrence Berkeley National Laboratory
>> > 1 Cyclotron Road, M/S 33R0345
>> > Berkeley, CA 94720
>> > Tel: (510) 486-5709
>> > Fax: (510) 486-5909
>> > Web: https://phenix-online.org
>> >
>> >
>> > On Sun, Aug 25, 2019 at 2:33 PM Tristan Croll <tic20(a)cam.ac.uk> wrote:
>> >>
>> >> Hi Luc,
>> >>
>> >> That sounds promising. From there, I’d need to work out how to make a fully-packaged installer (basically a modified wheel file) for the ChimeraX ToolShed - the aim is for the end user to not have to worry about any of this. That adds a couple of complications - e.g. $LIBTBX_BUILD would need to be set dynamically before first import - but doesn’t seem insurmountable.
>> >>
>> >> Thanks,
>> >>
>> >> Tristan
>> >>
>> >>
>> >>
>> >> Tristan Croll
>> >> Research Fellow
>> >> Cambridge Institute for Medical Research
>> >> University of Cambridge CB2 0XY
>> >>
>> >>
>> >>
>> >>
>> >> > On 25 Aug 2019, at 18:31, Luc Bourhis <luc_j_bourhis(a)mac.com> wrote:
>> >> >
>> >> > Hi Tristan,
>> >> >
>> >> > cctbx could be built to use your ChimeraX python, now that cctbx is moving to Python 3. The option —with-python is there for that with the bootstrap script. The specific environment setup boil down to setting two environment variable LIBTBX_BUILD and either LD_LIBRARY_PATH on Linux, PATH on Win32, or DYLIB_LIBRARY_PATH on MacOS. If you work within a framework such as ChimeraX, that should not be difficult to ensure those two variables are set.
>> >> >
>> >> > Best wishes,
>> >> >
>> >> > Luc
>> >> >
>> >> >
>> >> >> On 23 Aug 2019, at 19:02, Tristan Croll <tic20(a)cam.ac.uk> wrote:
>> >> >>
>> >> >> To add my two cents on this: probably the second-most common question I've had about ISOLDE's implementation is, "why didn't you use CCTBX?". The honest answer to that is, "I didn't know how."
>> >> >>
>> >> >> Still don't, really - although the current developments are rather promising. The problem I've faced is that CCTBX was designed as its own self-contained Python (2.7, until very recently) environment, with its own interpreter and a lot of very specific environment setup. Meanwhile I'm developing ISOLDE in ChimeraX, which is *also* its own self-contained Python (3.7) environment. To plug one into the other in that form... well, I don't think I'm a good enough programmer to really know where to start.
>> >> >>
>> >> >> The move to Conda and a more modular CCTBX architecture should make a lot more possible in that direction. Pip would be even better for me personally (ChimeraX can install directly from the PyPI, but doesn't interact with Conda) - but I understand pretty well the substantial challenge that would amount to (not least being that the PyPI imposes a limit - around 100MB from memory? - on the size of an individual package).
>> >> >>
>> >> >> Best regards,
>> >> >>
>> >> >> Tristan
>> >> >>
>> >> >>> On 2019-08-23 09:28, Luc Bourhis wrote:
>> >> >>> Hi Graeme,
>> >> >>> Yes, I know. But “black" is a program doing a very particular task
>> >> >>> (code formatting from the top of my head). Requiring to use a wrapper
>> >> >>> for python itself is another level. But ok, I think I am mellowing to
>> >> >>> the idea after all! Talking with people around me, and extrapolating,
>> >> >>> I would bet that, right now, a great majority of people interested by
>> >> >>> cctbx in pip have already used the cctbx, so they know about the
>> >> >>> Python wrapper, and they would not be too sanguine about that. My
>> >> >>> concern is for the future, when pip will be the first time some people
>> >> >>> use cctbx. Big fat warning notices on PyPI page and a better error
>> >> >>> message when cctbx fails because LIBTBX_BUILD is not set would be
>> >> >>> needed but that could be all right.
>> >> >>> If we do a pip installer, we should aim at a minimal install: cctbx,
>> >> >>> iotbx and their dependencies, and that’s it.
>> >> >>> Best wishes,
>> >> >>> Luc
>> >> >>>> On 23 Aug 2019, at 07:17, Graeme.Winter(a)Diamond.ac.uk <Graeme.Winter(a)diamond.ac.uk> wrote:
>> >> >>>> Without discussing the merits of this or whether we _choose_ to make the move to supporting PIP, I am certain it would be _possible_ - many other packages make dispatcher scripts when you pip install them e.g.
>> >> >>>> Silver-Surfer rescale_f2 :) $ which black; cat $(which black)
>> >> >>>> /Library/Frameworks/Python.framework/Versions/3.6/bin/black
>> >> >>>> #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
>> >> >>>> # -*- coding: utf-8 -*-
>> >> >>>> import re
>> >> >>>> import sys
>> >> >>>> from black import main
>> >> >>>> if __name__ == '__main__':
>> >> >>>> sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
>> >> >>>> sys.exit(main())
>> >> >>>> So we _could_ work around the absence of LIBTBX_BUILD etc. in the system. Whether or not we elect to do the work is a different question, and it seems clear that here are very mixed opinions on this.
>> >> >>>> Best wishes Graeme
>> >> >>>> On 23 Aug 2019, at 01:21, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>> >> >>>> Hi,
>> >> >>>> Even if we managed to ship our the boost dynamic libraries with pip, it would still not be pip-like, as we would still need our python wrappers to set LIBTBX_BUILD and LD_LIBRARY_PATH. Normal pip packages work with the standard python exe. LD_LIBRARY_PATH, we could get around that by changing the way we compile, using -Wl,-R, which is the runtime equivalent of build time -L. That’s a significant change that would need to be tested. But there is no way around setting LIBTBX_BUILD right now. Leaving that to the user is horrible. Perhaps there is a way to hack libtbx/env_config.py so that we can hardwire LIBTBX_BUILD in there when pip installs?
>> >> >>>> Best wishes,
>> >> >>>> Luc
>> >> >>>> On 16 Aug 2019, at 22:47, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>> >> >>>> Hi,
>> >> >>>> I did look into that many years ago, and even toyed with building a pip installer. What stopped me is the exact conclusion you reached too: the user would not have the pip experience he expects. You are right that it is a lot of effort but is it worth it? Considering that remark, I don’t think so. Now, Conda was created specifically to go beyond pip pure-python-only support. Since cctbx has garnered support for Conda, the best avenue imho is to go the extra length to have a package on Anaconda.org<http://anaconda.org/>, and then to advertise it hard to every potential user out there.
>> >> >>>> Best wishes,
>> >> >>>> Luc
>> >> >>>> On 16 Aug 2019, at 21:45, Aaron Brewster <asbrewster(a)lbl.gov<mailto:[email protected]>> wrote:
>> >> >>>> Hi, to avoid clouding Dorothee's documentation email thread, which I think is a highly useful enterprise, here's some thoughts about putting cctbx into pip. Pip doesn't install non-python dependencies well. I don't think boost is available as a package on pip (at least the package version we use). wxPython4 isn't portable through pip (https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython…). MPI libraries are system dependent. If cctbx were a pure python package, pip would be fine, but cctbx is not.
>> >> >>>> All that said, we could build a manylinux1 version of cctbx and upload it to PyPi (I'm just learning about this). For a pip package to be portable (which is a requirement for cctbx), it needs to conform to PEP513, the manylinux1 standard (https://www.python.org/dev/peps/pep-0513/). For example, numpy is built according to this standard (see https://pypi.org/project/numpy/#files, where you'll see the manylinux1 wheel). Note, the manylinux1 standard is built with Centos 5.11 which we no longer support.
>> >> >>>> There is also a manylinux2010 standard, which is based on Centos 6 (https://www.python.org/dev/peps/pep-0571/). This is likely a more attainable target (note though by default C++11 is not supported on Centos 6).
>> >> >>>> If we built a manylinuxX version of cctbx and uploaded it to PyPi, the user would need all the non-python dependencies. There's no way to specify these in pip. For example, cctbx requires boost 1.63 or better. The user will need to have it in a place their python can find it, or we could package it ourselves and supply it, similar to how the pip h5py package now comes with an hd5f library, or how the pip numpy package includes an openblas library. We'd have to do the same for any packages we depend on that aren't on pip using the manylinux standards, such as wxPython4.
>> >> >>>> Further, we need to think about how dials and other cctbx-based packages interact. If pip install cctbx is set up, how does pip install dials work, such that any dials shared libraries can find the cctbx libraries? Can shared libraries from one pip package link against libraries in another pip package? Would each package need to supply its own boost? Possibly this is well understood in the pip field, but not by me :)
>> >> >>>> Finally, there's the option of providing a source pip package. This would require the full compiler toolchain for any given platform (macOS, linux, windows). These are likely available for developers, but not for general users.
>> >> >>>> Anyway, these are some of the obstacles. Not saying it isn't possible, it's just a lot of effort.
>> >> >>>> Thanks,
>> >> >>>> -Aaron
>> >> >>>> _______________________________________________
>> >> >>>> cctbxbb mailing list
>> >> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> >> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >>>> _______________________________________________
>> >> >>>> cctbxbb mailing list
>> >> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> >> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >>>> _______________________________________________
>> >> >>>> cctbxbb mailing list
>> >> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> >> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >>>> --
>> >> >>>> This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
>> >> >>>> Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
>> >> >>>> Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
>> >> >>>> Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
>> >> >>>> _______________________________________________
>> >> >>>> cctbxbb mailing list
>> >> >>>> cctbxbb(a)phenix-online.org
>> >> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >>> _______________________________________________
>> >> >>> cctbxbb mailing list
>> >> >>> cctbxbb(a)phenix-online.org
>> >> >>> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> cctbxbb mailing list
>> >> >> cctbxbb(a)phenix-online.org
>> >> >> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > cctbxbb mailing list
>> >> > cctbxbb(a)phenix-online.org
>> >> > http://phenix-online.org/mailman/listinfo/cctbxbb
>> >>
>> >>
>> >> _______________________________________________
>> >> cctbxbb mailing list
>> >> cctbxbb(a)phenix-online.org
>> >> http://phenix-online.org/mailman/listinfo/cctbxbb
>> >
>> > _______________________________________________
>> > cctbxbb mailing list
>> > cctbxbb(a)phenix-online.org
>> > http://phenix-online.org/mailman/listinfo/cctbxbb
>>
>>
>>
>> --
>> Gergely Katona, PhD
>> Associate Professor
>> Department of Chemistry and Molecular Biology, University of Gothenburg
>> Box 462, 40530 Göteborg, Sweden
>> Tel: +46-31-786-3959 / M: +46-70-912-3309 / Fax: +46-31-786-3910
>> Web: http://katonalab.eu, Email: gergely.katona(a)gu.se
>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
--
Gergely Katona, PhD
Associate Professor
Department of Chemistry and Molecular Biology, University of Gothenburg
Box 462, 40530 Göteborg, Sweden
Tel: +46-31-786-3959 / M: +46-70-912-3309 / Fax: +46-31-786-3910
Web: http://katonalab.eu, Email: gergely.katona(a)gu.se
5 years, 6 months

Re: [phenixbb] help with phenix.ligand_identification
by Li-Wei Hung
Hi Ed,
Sorry for problems in ligand_identification. The default is to use
LigandFit processes (slower, but more thorough), so the search center
syntax will be under ligandfit.search_target.search_center. You can on
the other hand use the faster ligand_id process with
use_ligandfit=False, the your search_center should work. I noticed that
you are using map coefficients so mtz_type=diffmap should be set. I
short, you can either
phenix.ligand_identification mtz_in=sqr2803or13_031.mtz
input_labels="2FOFCWT PH2FOFCWT" mtz_type=diffmap\
model=sqr2803or13_031.pdb ligandfit.search_target.ligand_near_chain=S
ligandfit.search_target.ligand_near_res=2063 nproc=2 ....
(the two ligandfit.search_targets.ligand_near_xxx, and be replaced by
ligandfit.search_target.search_center="n.n n.n n.n")
or
phenix.ligand_identification mtz_in=sqr2803or13_031.mtz
input_labels="2FOFCWT PH2FOFCWT" mtz_type=diffmap\
model=sqr2803or13_031.pdb use_ligandfit=false ligand_near_res="chain S
and resid 2063" (or search_center="n.n n.n n.n" )nproc=2
If you have further problems or questions on ligand_identification,
please do not hesitates to email me with input files (off list), and
I'll help straighten problems.
In any event, I will update the documentation to add examples, and
probably change one of the search_center keywords to make things clearer.
Best regards,
Li-Wei
Edward A. Berry wrote:
> Ligandfit itself has more helpful error message:
> Sorry the string 'S2063' cannot be interpreted as a residue number?
> (Duh!)
> and does actually place the ligand in the requested blob with
> "search_center="
> So I can run ligandfit in a foreach loop with each of the 180 ligands
> left by ligand_identification
> =================
>
> On 09/26/2017 03:32 PM, Edward A. Berry wrote:
>> I'm having some problems using ligand_identification.
>> I would like to restrict the search to a specific density peak, even
>> if it is not the highest unmodeled peak or the highest Fo-Fc peak in
>> the map.
>> I tried using options:
>> search_center="67.5 18.3 11.8"
>> or
>> ligand_near_res=S2063,
>> Will the search be restricted to that region, or if a particuar
>> ligand doesn't fit that blob,
>> will it search through the rest of the map? If it is restricted, in
>> what radius?
>> Is this radius affected by the "search_dist" or "local_search"
>> parameters?
>> and local_search = True is default?
>> Is there a threshold level for density level, below which building a
>> ligand in a blob will not be attempted?
>>
>> I've tried with both search_center= and ligand_near_res=, and
>> something gets
>> built far away from that site. But there were errors, so I may have
>> something wrong:
>>
>>
>> phenix.ligand_identification mtz_in=sqr2803or13_031.mtz
>> input_labels="2FOFCWT PH2FOFCWT" \
>> model=sqr2803or13_031.pdb ligand_near_res=S2063 nproc=2
>>
>> After preparing the ligand library, then:
>> Running LigandFit process 1...
>>
>> Number of atoms in ligand suc.pdb is 23
>> Running job sequence 1, ligand 2, in
>> /tb/sb/usr20c/berry/ref/sqrdep/sqr2803dep2/phenix2/Temp_1...
>> Evaluating all ligands in ligand-lib now...and placing fittedligand
>> ### in resolve_ligand_###.pdb
>>
>> Number of atoms in ligand 2pe.pdb is 28
>> Running job sequence 0, ligand 1, in
>> /tb/sb/usr20c/berry/ref/sqrdep/sqr2803dep2/phenix2/Temp_0...
>> Process Process-2:
>> Traceback (most recent call last):
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 258, in _bootstrap
>> self.run()
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 114, in run
>> self._target(*self._args, **self._kwargs)
>> File
>> "/sw/lnx/phenix-1.12-2829/build/../modules/phenix/phenix/command_line/ligand_identification.py",
>> line 1382, in RunLigandFit
>> shutil.rmtree(ligandfit_dir)
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 247, in rmtree
>> rmtree(fullname, ignore_errors, onerror)
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 256, in rmtree
>> onerror(os.rmdir, path, sys.exc_info())
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 254, in rmtree
>> os.rmdir(path)
>> OSError: [Errno 39] Directory not empty:
>> '/tb/sb/usr20c/berry/ref/sqrdep/sqr2803dep2/phenix2/Temp_1/LigandFit_run_1_/TEMP0'
>> Process Process-1:
>> Traceback (most recent call last):
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 258, in _bootstrap
>> self.run()
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 114, in run
>> self._target(*self._args, **self._kwargs)
>> File
>> "/sw/lnx/phenix-1.12-2829/build/../modules/phenix/phenix/command_line/ligand_identification.py",
>> line 1382, in RunLigandFit
>> shutil.rmtree(ligandfit_dir)
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 247, in rmtree
>> rmtree(fullname, ignore_errors, onerror)
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 256, in rmtree
>> onerror(os.rmdir, path, sys.exc_info())
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 254, in rmtree
>> os.rmdir(path)
>> OSError: [Errno 39] Directory not empty:
>> '/tb/sb/usr20c/berry/ref/sqrdep/sqr2803dep2/phenix2/Temp_0/LigandFit_run_1_/TEMP0'
>>
>> Evaluating LigandFit results ...
>>
>> The run continues, but it does not test any more ligands after those
>> first two but goes on to evaluate the results.
>> With nproc = 1, only 1 ligand gets tested. In all cases the first
>> ligand in the library (2PE.pdb) is evaluated as the best.
>> It is placed in density, but density that has already been built out
>> with (and looks more like) a string of water molecules.
>> And this is far from the selected residue or coordinates specified.
>>
>> The directory that raised the error when attempting to be deleted
>> does eventually get removed: after the run there is no TEMP_N in the
>> parent directory.
>>
>> Any suggestions would be welcome.
>> Ed
>>
>> P.S.
>> - running with .eff file:
>>
>>
>> ['--show_defaults']
>> ligand_identification {
>> mtz_in = sqr2803or13_031.mtz
>> mtz_type = *F diffmap
>> model = sqr2803or13_031.pdb
>> ncpu = 1
>> n_indiv_tries_min = 30
>> n_indiv_tries_max = 300
>> n_group_search = 4
>> search_dist = 10
>> local_search = True
>> search_center = "67.5 18.3 11.8"
>> # ligand_near_res = S2063
>> verbose = False
>> debug = False
>> use_ligandfit = True
>> search_mode = *default LigandFit
>> temp_dir = Auto
>> dry_run = False
>> # number_of_ligands = 1
>> cc_min = 0.75
>> open_in_coot = False
>> non_bonded = True
>> keep_all_files = False
>> # cif_def_file_list =
>> real_space_target_weight = 10
>> # job_title = None
>> ligandfit {
>> }
>> }
>>
>> gives:
>>
>> [['2pe.pdb', 'suc.pdb', . . . 'upl.pdb']]
>>
>> /tb/sb/usr20c/berry/ref/sqrdep/sqr2803dep2/phenix2
>>
>> *******************************************************************************
>>
>>
>> Sorry, the protein model file None does not seem to exist?
>>
>> *******************************************************************************
>>
>>
>>
>> Running LigandFit process 0...
>>
>> Process Process-1:
>> Traceback (most recent call last):
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 258, in _bootstrap
>> self.run()
>> File
>> "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/multiprocessing/process.py",
>> line 114, in run
>> self._target(*self._args, **self._kwargs)
>> File
>> "/sw/lnx/phenix-1.12-2829/build/../modules/phenix/phenix/command_line/ligand_identification.py",
>> line 1122, in RunLigandFit
>> shutil.copyfile(mtz_in,data_local)
>> File "/sw/lnx/phenix-1.12-2829/base/lib/python2.7/shutil.py", line
>> 82, in copyfile
>> with open(src, 'rb') as fsrc:
>> IOError: [Errno 2] No such file or directory: 'None'
>>
>> Evaluating LigandFit results ...
>>
>> Lig_seq Placed/total cc_all cc cc_adj score Code HBscore
>>
>> Cannot find overall_ligand_scores.log0. This could mean that none of
>> that (sub)set of ligand fitted well.
>>
>>
>>
>> None of the ligand fit the difference desity well enough. Please try
>> the following --
>> 1) if you input a custom library, try to use the default library (no
>> extra keywords needed), or
>> 2) if you used the default library already, ususlly this means that
>> the density is too small (> 6 atome or more is needed.)
>> Exiting ......
>>
>>
>>
>> No good ligand found.
>>
>>
>> _______________________________________________
>> phenixbb mailing list
>> phenixbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/phenixbb
>> Unsubscribe: phenixbb-leave(a)phenix-online.org
>>
> _______________________________________________
> phenixbb mailing list
> phenixbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/phenixbb
> Unsubscribe: phenixbb-leave(a)phenix-online.org
7 years, 9 months

Re: [cctbxbb] some thoughts on cctbx and pip
by Tristan Croll
To add my two cents on this: probably the second-most common question
I've had about ISOLDE's implementation is, "why didn't you use CCTBX?".
The honest answer to that is, "I didn't know how."
Still don't, really - although the current developments are rather
promising. The problem I've faced is that CCTBX was designed as its own
self-contained Python (2.7, until very recently) environment, with its
own interpreter and a lot of very specific environment setup. Meanwhile
I'm developing ISOLDE in ChimeraX, which is *also* its own
self-contained Python (3.7) environment. To plug one into the other in
that form... well, I don't think I'm a good enough programmer to really
know where to start.
The move to Conda and a more modular CCTBX architecture should make a
lot more possible in that direction. Pip would be even better for me
personally (ChimeraX can install directly from the PyPI, but doesn't
interact with Conda) - but I understand pretty well the substantial
challenge that would amount to (not least being that the PyPI imposes a
limit - around 100MB from memory? - on the size of an individual
package).
Best regards,
Tristan
On 2019-08-23 09:28, Luc Bourhis wrote:
> Hi Graeme,
>
> Yes, I know. But “black" is a program doing a very particular task
> (code formatting from the top of my head). Requiring to use a wrapper
> for python itself is another level. But ok, I think I am mellowing to
> the idea after all! Talking with people around me, and extrapolating,
> I would bet that, right now, a great majority of people interested by
> cctbx in pip have already used the cctbx, so they know about the
> Python wrapper, and they would not be too sanguine about that. My
> concern is for the future, when pip will be the first time some people
> use cctbx. Big fat warning notices on PyPI page and a better error
> message when cctbx fails because LIBTBX_BUILD is not set would be
> needed but that could be all right.
>
> If we do a pip installer, we should aim at a minimal install: cctbx,
> iotbx and their dependencies, and that’s it.
>
> Best wishes,
>
> Luc
>
>
>> On 23 Aug 2019, at 07:17, Graeme.Winter(a)Diamond.ac.uk
>> <Graeme.Winter(a)diamond.ac.uk> wrote:
>>
>> Without discussing the merits of this or whether we _choose_ to make
>> the move to supporting PIP, I am certain it would be _possible_ - many
>> other packages make dispatcher scripts when you pip install them e.g.
>>
>> Silver-Surfer rescale_f2 :) $ which black; cat $(which black)
>> /Library/Frameworks/Python.framework/Versions/3.6/bin/black
>> #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
>>
>> # -*- coding: utf-8 -*-
>> import re
>> import sys
>>
>> from black import main
>>
>> if __name__ == '__main__':
>> sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
>> sys.exit(main())
>>
>> So we _could_ work around the absence of LIBTBX_BUILD etc. in the
>> system. Whether or not we elect to do the work is a different
>> question, and it seems clear that here are very mixed opinions on
>> this.
>>
>> Best wishes Graeme
>>
>>
>> On 23 Aug 2019, at 01:21, Luc Bourhis
>> <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>>
>> Hi,
>>
>> Even if we managed to ship our the boost dynamic libraries with pip,
>> it would still not be pip-like, as we would still need our python
>> wrappers to set LIBTBX_BUILD and LD_LIBRARY_PATH. Normal pip packages
>> work with the standard python exe. LD_LIBRARY_PATH, we could get
>> around that by changing the way we compile, using -Wl,-R, which is the
>> runtime equivalent of build time -L. That’s a significant change that
>> would need to be tested. But there is no way around setting
>> LIBTBX_BUILD right now. Leaving that to the user is horrible. Perhaps
>> there is a way to hack libtbx/env_config.py so that we can hardwire
>> LIBTBX_BUILD in there when pip installs?
>>
>> Best wishes,
>>
>> Luc
>>
>>
>> On 16 Aug 2019, at 22:47, Luc Bourhis
>> <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
>>
>> Hi,
>>
>> I did look into that many years ago, and even toyed with building a
>> pip installer. What stopped me is the exact conclusion you reached
>> too: the user would not have the pip experience he expects. You are
>> right that it is a lot of effort but is it worth it? Considering that
>> remark, I don’t think so. Now, Conda was created specifically to go
>> beyond pip pure-python-only support. Since cctbx has garnered support
>> for Conda, the best avenue imho is to go the extra length to have a
>> package on Anaconda.org<http://anaconda.org/>, and then to advertise
>> it hard to every potential user out there.
>>
>> Best wishes,
>>
>> Luc
>>
>>
>> On 16 Aug 2019, at 21:45, Aaron Brewster
>> <asbrewster(a)lbl.gov<mailto:[email protected]>> wrote:
>>
>> Hi, to avoid clouding Dorothee's documentation email thread, which I
>> think is a highly useful enterprise, here's some thoughts about
>> putting cctbx into pip. Pip doesn't install non-python dependencies
>> well. I don't think boost is available as a package on pip (at least
>> the package version we use). wxPython4 isn't portable through pip
>> (https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython…).
>> MPI libraries are system dependent. If cctbx were a pure python
>> package, pip would be fine, but cctbx is not.
>>
>> All that said, we could build a manylinux1 version of cctbx and upload
>> it to PyPi (I'm just learning about this). For a pip package to be
>> portable (which is a requirement for cctbx), it needs to conform to
>> PEP513, the manylinux1 standard
>> (https://www.python.org/dev/peps/pep-0513/). For example, numpy is
>> built according to this standard (see
>> https://pypi.org/project/numpy/#files, where you'll see the manylinux1
>> wheel). Note, the manylinux1 standard is built with Centos 5.11 which
>> we no longer support.
>>
>> There is also a manylinux2010 standard, which is based on Centos 6
>> (https://www.python.org/dev/peps/pep-0571/). This is likely a more
>> attainable target (note though by default C++11 is not supported on
>> Centos 6).
>>
>> If we built a manylinuxX version of cctbx and uploaded it to PyPi, the
>> user would need all the non-python dependencies. There's no way to
>> specify these in pip. For example, cctbx requires boost 1.63 or
>> better. The user will need to have it in a place their python can
>> find it, or we could package it ourselves and supply it, similar to
>> how the pip h5py package now comes with an hd5f library, or how the
>> pip numpy package includes an openblas library. We'd have to do the
>> same for any packages we depend on that aren't on pip using the
>> manylinux standards, such as wxPython4.
>>
>> Further, we need to think about how dials and other cctbx-based
>> packages interact. If pip install cctbx is set up, how does pip
>> install dials work, such that any dials shared libraries can find the
>> cctbx libraries? Can shared libraries from one pip package link
>> against libraries in another pip package? Would each package need to
>> supply its own boost? Possibly this is well understood in the pip
>> field, but not by me :)
>>
>> Finally, there's the option of providing a source pip package. This
>> would require the full compiler toolchain for any given platform
>> (macOS, linux, windows). These are likely available for developers,
>> but not for general users.
>>
>> Anyway, these are some of the obstacles. Not saying it isn't
>> possible, it's just a lot of effort.
>>
>> Thanks,
>> -Aaron
>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>
>>
>> --
>> This e-mail and any attachments may contain confidential, copyright
>> and or privileged material, and are for the use of the intended
>> addressee only. If you are not the intended addressee or an authorised
>> recipient of the addressee please notify us of receipt by returning
>> the e-mail and do not use, copy, retain, distribute or disclose the
>> information in or attached to the e-mail.
>> Any opinions expressed within this e-mail are those of the individual
>> and not necessarily of Diamond Light Source Ltd.
>> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
>> attachments are free from viruses and we cannot accept liability for
>> any damage which you may sustain as a result of software viruses which
>> may be transmitted in or with the message.
>> Diamond Light Source Limited (company no. 4375679). Registered in
>> England and Wales with its registered office at Diamond House, Harwell
>> Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United
>> Kingdom
>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
5 years, 10 months

Re: [phenixbb] AUTOSOL for MAD data with error message-'Need a symfile for solve'
by Frank von Delft
Um, this one has been hacked to death on ccp4bb: there is in fact
nothing wrong or "non-standard" with that setting. If the program won't
handle it, email the authors and ask them to fix it.
Reindexing is an almighty pain in the butt.
That said: it sounds like you may be pointing at an out-of-date
symmetry operator file; I forget which environment variable it is,
check the manual, but point it to an up-to-date ccp4 installation, and I
suspect it will be fine.
phx
On 02/02/2010 13:49, Graeme Winter wrote:
> Hi Mohan,
>
> P22121 is not the standard setting for this spacegroup - in
> International Tables the convention is to have the spacegroup's unique
> axis as C, e.g. P21212 in this case. If you run this reflection file
> through reindex as follows:
>
> reindex hklin in.mtz hklout out.mtz<< eof
> reindex k,l,h
> eof
>
> Then it should work just fine. An alternative would be to compose a
> solve "symm" file and put this in the right place. This would look
> something like:
>
> 4 Equiv positions, P22121 SG # 3018
> X,Y,Z
> X,-Y,-Z
> -X,1/2+Y,1/2-Z
> -X,1/2-Y,1/2+Z
>
> (copied from spacegroup #3018 in the CCP4 symop.lib) which would need to go in
>
> phenix-1.6-289/solve_resolve/ext_ref_files
>
> On balance, reindexing is probably easiest!
>
> Best wishes,
>
> Graeme
>
> On 2 February 2010 13:38,<m.b.rajasekaran(a)reading.ac.uk> wrote:
>
>>
>> Dear all,
>> I have a query regarding the Autosol option in the
>> PHENIX-1.6-289 version. We are trying to process a MAD data for a zinc bound
>> protein crystal with AuTOSOL. We uploaded the scaled files, sequence and all
>> other details and started running AUTOSOL. But the program stopped with the
>> following error message pasted below mentioning some missing of symfile. We
>> were not able to locate any parameters file on the installation directory.
>> It would be helpful if we get some useful suggestions on this.
>>
>> Thanks in advance,
>> Mohan
>> ***********************************************************
>>
>> PHENIX AutoSol Tue Feb 2 12:37:41 2010
>>
>> ************************************************************
>>
>> Working directory: /home/sar06mbr/30JanDiamondI02/107/107_php22121
>> PHENIX VERSION: 1.6 of 29-01-2010 PHENIX RELEASE_TAG : 289 PHENIX MTYPE :
>> intel-linux-2.6 PHENIX MVERSION : suse AutoSol_start AutoSol Run 2 Tue Feb 2
>> 12:37:41 2010 INPUT FILE LIST:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_4_P22121_scala2.mtz']
>>
>> Copied /home/sar06mbr/30JanDiamondI02/107/107_php22121/result.seq to
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/AutoSol_run_2_/sequence_autosol.dat
>>
>> Setting chain_type to PROTEIN Setting defaults for data_quality moderate
>> Setting thorough_denmod to Yes Settin fix_xyz_after_denmod to False Setting
>> max_ha_iterations to 2 Setting fixscattfactors to No Settin defaults for
>> thoroughness quick Setting best_of_n_hyss_always to 1 Setting
>> max_extra_unique_solutions to 0 Settin ha_iteration to No Setting
>> max_choices to 1 Setting number_of_models to 1 Setting number_of_builds to 1
>> Setting test_mask_type to No Setting n_cycle_build to 0 Setting
>> thorough_loop_fit to Setting create_scoring_table to No Not truncating ha
>> sites at start of resolve as this is not PHASER SAD phasing
>>
>> Trying to guess refinement file for later use from
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_4_P22121_scala2.mtz']
>>
>> Choosing guess of refinement file for later use from all files:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz',
>> '/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_4_P22121_scala2.mtz']
>>
>> FILE TYPE ccp4_mtz
>>
>> COLUMN LABELS: ['H', 'K', 'L', 'FreeR_flag', 'F_107_2re', 'SIGF_107_2re',
>> 'F_107_2re(+)', 'SIGF_107_2re(+)', 'F_107_2re(-)', 'SIGF_107_2re(-)',
>> 'DANO_107_2re', 'SIGDANO_107_2re', 'IMEAN_107_2re', 'SIGIMEAN_107_2re',
>> 'I_107_2re(+)', 'SIGI_107_2re(+)', 'I_107_2re(-)', 'SIGI_107_2re(-)']
>>
>> GUESS FILE TYPE MERGE TYPE mtz premerged TARGET LABELS ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1'] Unit cell: (34.79, 108.92, 134.88, 90, 90, 90) Space
>> group: P 2 21 21 (No. 18) CONTENTS:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz',
>> 'mtz', 'premerged', 'P 2 21 21', [34.790000915527344, 108.92009735107422,
>> 134.8800048828125, 90.0, 90.0, 90.0], 2.4890566908055836, ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1']]
>>
>> File
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz
>> RES: 2.5
>>
>> FILE TYPE ccp4_mtz COLUMN LABELS: ['H', 'K', 'L', 'FreeR_flag', 'F_107_3re',
>> 'SIGF_107_3re', 'F_107_3re(+)', 'SIGF_107_3re(+)', 'F_107_3re(-)',
>> 'SIGF_107_3re(-)', 'DANO_107_3re', 'SIGDANO_107_3re', 'IMEAN_107_3re',
>> 'SIGIMEAN_107_3re', 'I_107_3re(+)', 'SIGI_107_3re(+)', 'I_107_3re(-)',
>> 'SIGI_107_3re(-)']
>>
>> GUESS FILE TYPE MERGE TYPE mtz premerged TARGET LABELS ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1'] Unit cell: (34.85, 109.18, 135.27, 90, 90, 90) Space
>> group: P 2 21 21 (No. 18) CONTENTS:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz',
>> 'mtz', 'premerged', 'P 2 21 21', [34.849998474121094, 109.18000030517578,
>> 135.26980590820312, 90.0, 90.0, 90.0], 2.4889952912293629, ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1']]
>>
>> File
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz
>> RES: 2.5
>>
>> FILE TYPE ccp4_mtz COLUMN LABELS: ['H', 'K', 'L', 'FreeR_flag', 'F_107_4re',
>> 'SIGF_107_4re', 'F_107_4re(+)', 'SIGF_107_4re(+)', 'F_107_4re(-)',
>> 'SIGF_107_4re(-)', 'DANO_107_4re', 'SIGDANO_107_4re', 'IMEAN_107_4re',
>> 'SIGIMEAN_107_4re', 'I_107_4re(+)', 'SIGI_107_4re(+)', 'I_107_4re(-)',
>> 'SIGI_107_4re(-)']
>>
>> GUESS FIL TARGET LABELS ['F1', 'SIGF1', 'DANO1', 'SIGDANO1'] Unit cell:
>> (34.87, 109.2, 135.33, 90, 90, 90) Space group: P 2 21 21 (No. 18) CONTENTS:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_4_P22121_scala2.mtz',
>> 'mtz', 'premerged', 'P 2 21 21', [34.869998931884766, 109.19999694824219,
>> 135.32989501953125, 90.0, 90.0, 90.0], 2.4890134311310943, ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1']]
>>
>> File
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_4_P22121_scala2.mtz
>> RES: 2.5
>>
>> Guess of datafile for refinement:
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz
>>
>> Using
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz
>> for refinement
>>
>> Specify
>> input_refinement_file=/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_3_P22121_scala2.mtz
>> to change this
>>
>> HKLIN ENTRY:
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz
>>
>> FILE TYPE ccp4_mtz
>>
>> COLUMN LABELS: ['H', 'K', 'L', 'FreeR_flag', 'F_107_2re', 'SIGF_107_2re',
>> 'F_107_2re(+)', 'SIGF_107_2re(+)', 'F_107_2re(-)', 'SIGF_107_2re(-)',
>> 'DANO_107_2re', 'SIGDANO_107_2re', 'IMEAN_107_2re', 'SIGIMEAN_107_2re',
>> 'I_107_2re(+)', 'SIGI_107_2re(+)', 'I_107_2re(-)', 'SIGI_107_2re(-)']
>>
>> GUESS FILE TYPE MERGE TYPE mtz premerged TARGET LABELS ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1'] Unit cell: (34.79, 108.92, 134.88, 90, 90, 90) Space
>> group: P 2 21 21 (No. 18) CONTENTS:
>> ['/home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz',
>> 'mtz', 'premerged', 'P 2 21 21', [34.790000915527344, 108.92009735107422,
>> 134.8800048828125, 90.0, 90.0, 90.0], 2.4890566908055836, ['F1', 'SIGF1',
>> 'DANO1', 'SIGDANO1']]
>>
>> Inverse hand of space group: P 2 21 21 Creating sg entry from
>> /home/sar06mbr/30JanDiamondI02/107/107_php22121/M75_Zn_107_2_P22121_scala2.mtz
>> Unit cell: (34.79, 108.92, 134.88, 90, 90, 90) Space group: P 2 21 21 (No.
>> 18) Space group name is: P 2 21 21 symbol is: p22121
>>
>> ****************************************
>>
>> AutoSol Input failed
>>
>> Need a symfile for solve
>>
>> ****************************************
>>
>> _______________________________________________
>> phenixbb mailing list
>> phenixbb(a)phenix-online.org
>> http://phenix-online.org/mailman/listinfo/phenixbb
>>
>>
> _______________________________________________
> phenixbb mailing list
> phenixbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/phenixbb
>
15 years, 5 months

Re: [cctbxbb] some thoughts on cctbx and pip
by Billy Poon
Hi all,
For a brief update, I have submitted a recipe for cctbxlite to conda-forge (
https://github.com/conda-forge/staged-recipes/pull/10021) and support for
Python 3.7 and 3.8 is being added (
https://github.com/cctbx/cctbx_project/pull/409). With some fixes for
Windows (https://github.com/cctbx/cctbx_project/pull/416), all platforms
(macOS, linux, and Windows) can build for Python 2.7, 3.6, 3.7, and 3.8.
Some additional changes will be needed to get Windows to work with Python 3
and for tests to pass with Boost 1.70.0. That will enable the conda-forge
recipe to build for all platforms and for all supported versions of Python.
Currently, the conda-forge recipe will install into the conda python and
cctbx imports can be done without sourcing the environment scripts. It
looks like a lot of the environment variables being set in the dispatchers
can be removed since the Python files and C++ extensions are in the right
places. I'll update the libtbx_env file so that commands that load the
environment can work correctly.
--
Billy K. Poon
Research Scientist, Molecular Biophysics and Integrated Bioimaging
Lawrence Berkeley National Laboratory
1 Cyclotron Road, M/S 33R0345
Berkeley, CA 94720
Tel: (510) 486-5709
Fax: (510) 486-5909
Web: https://phenix-online.org
On Sun, Aug 25, 2019 at 2:33 PM Tristan Croll <tic20(a)cam.ac.uk> wrote:
> Hi Luc,
>
> That sounds promising. From there, I’d need to work out how to make a
> fully-packaged installer (basically a modified wheel file) for the ChimeraX
> ToolShed - the aim is for the end user to not have to worry about any of
> this. That adds a couple of complications - e.g. $LIBTBX_BUILD would need
> to be set dynamically before first import - but doesn’t seem insurmountable.
>
> Thanks,
>
> Tristan
>
>
>
> Tristan Croll
> Research Fellow
> Cambridge Institute for Medical Research
> University of Cambridge CB2 0XY
>
>
>
>
> > On 25 Aug 2019, at 18:31, Luc Bourhis <luc_j_bourhis(a)mac.com> wrote:
> >
> > Hi Tristan,
> >
> > cctbx could be built to use your ChimeraX python, now that cctbx is
> moving to Python 3. The option —with-python is there for that with the
> bootstrap script. The specific environment setup boil down to setting two
> environment variable LIBTBX_BUILD and either LD_LIBRARY_PATH on Linux, PATH
> on Win32, or DYLIB_LIBRARY_PATH on MacOS. If you work within a framework
> such as ChimeraX, that should not be difficult to ensure those two
> variables are set.
> >
> > Best wishes,
> >
> > Luc
> >
> >
> >> On 23 Aug 2019, at 19:02, Tristan Croll <tic20(a)cam.ac.uk> wrote:
> >>
> >> To add my two cents on this: probably the second-most common question
> I've had about ISOLDE's implementation is, "why didn't you use CCTBX?". The
> honest answer to that is, "I didn't know how."
> >>
> >> Still don't, really - although the current developments are rather
> promising. The problem I've faced is that CCTBX was designed as its own
> self-contained Python (2.7, until very recently) environment, with its own
> interpreter and a lot of very specific environment setup. Meanwhile I'm
> developing ISOLDE in ChimeraX, which is *also* its own self-contained
> Python (3.7) environment. To plug one into the other in that form... well,
> I don't think I'm a good enough programmer to really know where to start.
> >>
> >> The move to Conda and a more modular CCTBX architecture should make a
> lot more possible in that direction. Pip would be even better for me
> personally (ChimeraX can install directly from the PyPI, but doesn't
> interact with Conda) - but I understand pretty well the substantial
> challenge that would amount to (not least being that the PyPI imposes a
> limit - around 100MB from memory? - on the size of an individual package).
> >>
> >> Best regards,
> >>
> >> Tristan
> >>
> >>> On 2019-08-23 09:28, Luc Bourhis wrote:
> >>> Hi Graeme,
> >>> Yes, I know. But “black" is a program doing a very particular task
> >>> (code formatting from the top of my head). Requiring to use a wrapper
> >>> for python itself is another level. But ok, I think I am mellowing to
> >>> the idea after all! Talking with people around me, and extrapolating,
> >>> I would bet that, right now, a great majority of people interested by
> >>> cctbx in pip have already used the cctbx, so they know about the
> >>> Python wrapper, and they would not be too sanguine about that. My
> >>> concern is for the future, when pip will be the first time some people
> >>> use cctbx. Big fat warning notices on PyPI page and a better error
> >>> message when cctbx fails because LIBTBX_BUILD is not set would be
> >>> needed but that could be all right.
> >>> If we do a pip installer, we should aim at a minimal install: cctbx,
> >>> iotbx and their dependencies, and that’s it.
> >>> Best wishes,
> >>> Luc
> >>>> On 23 Aug 2019, at 07:17, Graeme.Winter(a)Diamond.ac.uk <
> Graeme.Winter(a)diamond.ac.uk> wrote:
> >>>> Without discussing the merits of this or whether we _choose_ to make
> the move to supporting PIP, I am certain it would be _possible_ - many
> other packages make dispatcher scripts when you pip install them e.g.
> >>>> Silver-Surfer rescale_f2 :) $ which black; cat $(which black)
> >>>> /Library/Frameworks/Python.framework/Versions/3.6/bin/black
> >>>> #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
> >>>> # -*- coding: utf-8 -*-
> >>>> import re
> >>>> import sys
> >>>> from black import main
> >>>> if __name__ == '__main__':
> >>>> sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
> >>>> sys.exit(main())
> >>>> So we _could_ work around the absence of LIBTBX_BUILD etc. in the
> system. Whether or not we elect to do the work is a different question, and
> it seems clear that here are very mixed opinions on this.
> >>>> Best wishes Graeme
> >>>> On 23 Aug 2019, at 01:21, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:
> luc_j_bourhis(a)mac.com>> wrote:
> >>>> Hi,
> >>>> Even if we managed to ship our the boost dynamic libraries with pip,
> it would still not be pip-like, as we would still need our python wrappers
> to set LIBTBX_BUILD and LD_LIBRARY_PATH. Normal pip packages work with the
> standard python exe. LD_LIBRARY_PATH, we could get around that by changing
> the way we compile, using -Wl,-R, which is the runtime equivalent of build
> time -L. That’s a significant change that would need to be tested. But
> there is no way around setting LIBTBX_BUILD right now. Leaving that to the
> user is horrible. Perhaps there is a way to hack libtbx/env_config.py so
> that we can hardwire LIBTBX_BUILD in there when pip installs?
> >>>> Best wishes,
> >>>> Luc
> >>>> On 16 Aug 2019, at 22:47, Luc Bourhis <luc_j_bourhis(a)mac.com<mailto:
> luc_j_bourhis(a)mac.com>> wrote:
> >>>> Hi,
> >>>> I did look into that many years ago, and even toyed with building a
> pip installer. What stopped me is the exact conclusion you reached too: the
> user would not have the pip experience he expects. You are right that it is
> a lot of effort but is it worth it? Considering that remark, I don’t think
> so. Now, Conda was created specifically to go beyond pip pure-python-only
> support. Since cctbx has garnered support for Conda, the best avenue imho
> is to go the extra length to have a package on Anaconda.org<
> http://anaconda.org/>, and then to advertise it hard to every potential
> user out there.
> >>>> Best wishes,
> >>>> Luc
> >>>> On 16 Aug 2019, at 21:45, Aaron Brewster <asbrewster(a)lbl.gov<mailto:
> asbrewster(a)lbl.gov>> wrote:
> >>>> Hi, to avoid clouding Dorothee's documentation email thread, which I
> think is a highly useful enterprise, here's some thoughts about putting
> cctbx into pip. Pip doesn't install non-python dependencies well. I don't
> think boost is available as a package on pip (at least the package version
> we use). wxPython4 isn't portable through pip (
> https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython…).
> MPI libraries are system dependent. If cctbx were a pure python package,
> pip would be fine, but cctbx is not.
> >>>> All that said, we could build a manylinux1 version of cctbx and
> upload it to PyPi (I'm just learning about this). For a pip package to be
> portable (which is a requirement for cctbx), it needs to conform to PEP513,
> the manylinux1 standard (https://www.python.org/dev/peps/pep-0513/). For
> example, numpy is built according to this standard (see
> https://pypi.org/project/numpy/#files, where you'll see the manylinux1
> wheel). Note, the manylinux1 standard is built with Centos 5.11 which we
> no longer support.
> >>>> There is also a manylinux2010 standard, which is based on Centos 6 (
> https://www.python.org/dev/peps/pep-0571/). This is likely a more
> attainable target (note though by default C++11 is not supported on Centos
> 6).
> >>>> If we built a manylinuxX version of cctbx and uploaded it to PyPi,
> the user would need all the non-python dependencies. There's no way to
> specify these in pip. For example, cctbx requires boost 1.63 or better.
> The user will need to have it in a place their python can find it, or we
> could package it ourselves and supply it, similar to how the pip h5py
> package now comes with an hd5f library, or how the pip numpy package
> includes an openblas library. We'd have to do the same for any packages we
> depend on that aren't on pip using the manylinux standards, such as
> wxPython4.
> >>>> Further, we need to think about how dials and other cctbx-based
> packages interact. If pip install cctbx is set up, how does pip install
> dials work, such that any dials shared libraries can find the cctbx
> libraries? Can shared libraries from one pip package link against
> libraries in another pip package? Would each package need to supply its
> own boost? Possibly this is well understood in the pip field, but not by
> me :)
> >>>> Finally, there's the option of providing a source pip package. This
> would require the full compiler toolchain for any given platform (macOS,
> linux, windows). These are likely available for developers, but not for
> general users.
> >>>> Anyway, these are some of the obstacles. Not saying it isn't
> possible, it's just a lot of effort.
> >>>> Thanks,
> >>>> -Aaron
> >>>> _______________________________________________
> >>>> cctbxbb mailing list
> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>>> _______________________________________________
> >>>> cctbxbb mailing list
> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>>> _______________________________________________
> >>>> cctbxbb mailing list
> >>>> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>>> --
> >>>> This e-mail and any attachments may contain confidential, copyright
> and or privileged material, and are for the use of the intended addressee
> only. If you are not the intended addressee or an authorised recipient of
> the addressee please notify us of receipt by returning the e-mail and do
> not use, copy, retain, distribute or disclose the information in or
> attached to the e-mail.
> >>>> Any opinions expressed within this e-mail are those of the individual
> and not necessarily of Diamond Light Source Ltd.
> >>>> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
> attachments are free from viruses and we cannot accept liability for any
> damage which you may sustain as a result of software viruses which may be
> transmitted in or with the message.
> >>>> Diamond Light Source Limited (company no. 4375679). Registered in
> England and Wales with its registered office at Diamond House, Harwell
> Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
> >>>> _______________________________________________
> >>>> cctbxbb mailing list
> >>>> cctbxbb(a)phenix-online.org
> >>>> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>> _______________________________________________
> >>> cctbxbb mailing list
> >>> cctbxbb(a)phenix-online.org
> >>> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>
> >>
> >> _______________________________________________
> >> cctbxbb mailing list
> >> cctbxbb(a)phenix-online.org
> >> http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org
> > http://phenix-online.org/mailman/listinfo/cctbxbb
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
5 years, 7 months

Re: [phenixbb] phenix.refine crash -- other error
by Petrus H Zwart
Hi Ulrich,
As far as I understand, you have solved the problem by sourcing the proper version of cci_apps.
The files you send me look (actually glancing) fine and were not the issue.
Cheers
Peter
----- Original Message -----
From: Ulrich Baumann <ulrich.baumann(a)ibc.unibe.ch>
Date: Monday, March 19, 2007 9:29 am
Subject: Re: [phenixbb] phenix.refine crash -- other error
To: PHENIX user mailing list <phenixbb(a)phenix-online.org>
> Files are attached -- hope I got the right ones....
>
> Quoting Petrus H Zwart <PHZwart(a)lbl.gov>:
>
> > This is very surprising. Not sure what happens actually.
> >
> > Can you please go to the directory where you have the cci_apps
> sources> located, specifically, this file:
> >
> > /usr/local/cci_apps/cci_apps_sources/cctbx/cctbx/crystal/__init__.py
> >
> > and grep for
> >
> > select_crystal_symmetry
> >
> > Can you send me the build tag/version of cci_apps you installed?
> That might
> > make it easier for me to find out exactly what is going on ...
> >
> > or send me these files:
> > /usr/local/cci_apps/cci_apps_sources/cctbx/cctbx/crystal/__init__.py
> > /usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/examples/reindex.py
> >
> > Sorry for this,
> >
> > Peter
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: Ulrich Baumann <ulrich.baumann(a)ibc.unibe.ch>
> > Date: Friday, March 16, 2007 4:15 am
> > Subject: Re: [phenixbb] phenix.refine crash -- other error
> > To: PHENIX user mailing list <phenixbb(a)phenix-online.org>
> >
> > > Hi Peter,
> > >
> > > I hate to bother you guys with this but ....
> > >
> > > dcb-macbeth:[lip3] > phenix.python
> > >
> /usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/examples/reindex.py> > data.file=lip_r3_1.8A.mtz model.file=in.pdb action=reindex
> > > standard_laws=niggli#phil __OFF__
> > > =================
> > > REINDEX
> > > A reindexing tool
> > > =================
> > >
> > > Traceback (most recent call last):
> > > File
> > >
> "/usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/examples/reindex.py",line> 468, in ?
> > > reindex_utils(sys.argv[1:])
> > > File
> > >
> "/usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/examples/reindex.py",line> 260, in reindex_utils
> > > combined_xs = crystal.select_crystal_symmetry(
> > > AttributeError: 'module' object has no attribute
> > > 'select_crystal_symmetry'
> > >
> > > I seem to hae to set a spacegroup? Sorry, I could not find a
> > > documentation for
> > > the reindex utility.
> > >
> > > Many thanks,
> > >
> > > Ulrich
> > >
> > > Quoting Peter Zwart <PHZwart(a)lbl.gov>:
> > >
> > > > Hi Ulrich,
> > > >
> > > > You could try refining your structure in a primitive setting,
> > > this might
> > > > alleviate memory usage a bit (not sure though).
> > > >
> > > > try
> > > >
> > > > phenix.python $MMTBX_DIST/mmtbx/examples/reindex.py
> > > data.file=mydata.mtz
> > > > model.file=mymodel.pdb action=reindex standard_laws=niggli
> > > >
> > > > You will get a new mtz file and a new pdb file.
> Unfortunately,
> > > the free
> > > > flags are not copied over, so you would have to reindex those
> > > separately
> > > > using iotbx.reflection_file_converter and read that file in
> > > separately
> > > > in phenix.refine.
> > > >
> > > > This might be a bit criptic, if so, let me know and I will
> post
> > > more
> > > > details.
> > > >
> > > > I am not sure this does the trick though, I hope Ralf or
> Pavel
> > > can give
> > > > some suggestions.
> > > >
> > > > Cheers
> > > >
> > > > Peter
> > > >
> > > >
> > > >
> > > >
> > > > Ulrich Baumann wrote:
> > > > > Hi there,
> > > > >
> > > > > if you remove the ANISOU card from the input pdb file,
> phenix
> > > will run
> > > > fine
> > > > > ....sometimes not.
> > > > >
> > > > > phenix.refine ( Version: 2007_01_24_2154) crashed for me as
> > > well: we have
> > > > a
> > > > > rather large unit cell and good resolution. The program
> crashes> > > reproducibly
> > > > > (see below) when using resolution limits better than 3 A,
> although> > > sometimes
> > > > > this only occurs in the 2nd macrocycle.
> > > > >
> > > > > Working crystal symmetry after inspecting all inputs:
> > > > > Unit cell: (202.401, 202.401, 317.731, 90, 90, 120)
> > > > > Space group: R 3 :H (No. 146)
> > > > >
> > > > >
> > > > > We have 2 GB memory and could stuff in more but maybe we
> can
> > > limit the
> > > > memeory
> > > > > use in a different way?
> > > > >
> > > > >
> > > > > Thanks a lot for your help,
> > > > >
> > > > > Ulrich
> > > > >
> > > > >
> > > > > ============================= ml refinement start
> > > > =============================
> > > > >
> > > > >
> > > > > ----------structure factors based statistics (before
> > > > refinement)----------
> > > > >
> > > > > Traceback (most recent call last):
> > > > > File
> > > >
> > >
> "/usr/local/cci_apps/cci_apps_sources/phenix/phenix/command_line/refine.p>> > y", line 5, in <module>
> > > > > command_line.run(command_name="phenix.refine",
> > > args=sys.argv[1:])> > File
> > > >
> > >
> "/usr/local/cci_apps/cci_apps_sources/phenix/phenix/refinement/command_li>> > ne.py", line 75, in run
> > > > >
> > >
> call_back_after_monitor_collect=call_back_after_monitor_collect)>
> > > > File
> > > >
> > >
> "/usr/local/cci_apps/cci_apps_sources/phenix/phenix/refinement/driver.py">> > , line 1108, in run
> > > > > log = log)
> > > > > File
> > > >
> > >
> "/usr/local/cci_apps/cci_apps_sources/phenix/phenix/refinement/strategies>> > .py", line 174, in refinement_machine
> > > > > abcd = abcd)
> > > > > File
> > > "/usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/f_model.py",
> line> > > 185,
> > > > > in __init__
> > > > > b_cart = b_cart)
> > > > > File
> > > "/usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/f_model.py",
> line> > > 466,
> > > > > in update_xray_structure
> > > > > f_mask =
> bulk_solvent_mask_obj.structure_factors(miller_set=> > > self.f_obs)
> > > > > File
> > > "/usr/local/cci_apps/cci_apps_sources/mmtbx/mmtbx/masks.py", line
> > > > 97, in
> > > > > structure_factors
> > > > >
> > >
> flex.grid(fft_manager.m_real()).set_focus(fft_manager.n_real()))>
> > > > MemoryError
> > > > >
> > > > > ----------------------------------------------------------
> > > > > -------------------------------------------------------
> > > > > Quoting Pavel Afonine <pafonine(a)lbl.gov>:
> > > > >
> > > > >> Hi,
> > > > >>
> > > > >> this is known problem and it will be fixed ASAP; sorry for
> this.> > > >> This presumably happens because an atom selected to
> be
> > > refined as
> > > > >> individual anisotropic is included into a TLS group.
> > > > >> I will let you know once the fixed version of CCI Apps is
> > > available.> >>
> > > > >> Pavel.
> > > > >>
> > > > >>
> > > > >>
> > > > >> Jianghai Zhu wrote:
> > > > >>> Hi,
> > > > >>>
> > > > >>> I was using phenix.refine from the latest cci apps bundle
> to
> > > do
> > > > >>> tls+individual_sites+individual_adp refinement. The
> program
> > > crashed
> > > > >>> with the following error message.
> > > > >>>
> > > > >>> ----------Target weights (before refinement)-
> ---
> > > ------
> > > > >>>
> > > > >>>
> > > > >>> Traceback (most recent call last):
> > > > >>> File
> > > > >>>
> > >
> "/nfs/home/jzhu/cci_apps_sources/phenix/phenix/command_line/refine.py",
> > > > >>> line 5, in <module>
> > > > >>> command_line.run(command_name="phenix.refine",
> > > args=sys.argv[1:])> >>> File
> > > > >>>
> > > >
> > >
> >
> "/nfs/home/jzhu/cci_apps_sources/phenix/phenix/refinement/command_line.py",>> >>> line 75, in run
> > > > >>>
> > >
> call_back_after_monitor_collect=call_back_after_monitor_collect)>
> > > >>> File
> > > > >>>
> > >
> "/nfs/home/jzhu/cci_apps_sources/phenix/phenix/refinement/driver.py",
> > > > >>> line 1108, in run
> > > > >>> log = log)
> > > > >>> File
> > > > >>>
> > >
> "/nfs/home/jzhu/cci_apps_sources/phenix/phenix/refinement/strategies.py",>>
> > > > >>> line 245, in refinement_machine
> > > > >>> log = log)
> > > > >>> File
> > > > >>>
> > > > >>
> > > >
> > >
> >
> "/nfs/home/jzhu/cci_apps_sources/phenix/phenix/refinement/weight_xray_chem.py",>> >>
> > > > >>> line 222, in __init__
> > > > >>> compute_gradients = True)
> > > > >>> File
> > > "/nfs/home/jzhu/cci_apps_sources/mmtbx/mmtbx/restraints.py",
> > > > >>> line 144, in energies_adp_aniso
> > > > >>> xray_structure = xray_structure,
> > > > >>> File
> > > > >>>
> > >
> "/nfs/home/jzhu/cci_apps_sources/cctbx/cctbx/adp_restraints/__init__.py",>>
> > > > >>> line 109, in __init__
> > > > >>> self.check_flags(fl_i)
> > > > >>> File
> > > > >>>
> > >
> "/nfs/home/jzhu/cci_apps_sources/cctbx/cctbx/adp_restraints/__init__.py",>>
> > > > >>> line 177, in check_flags
> > > > >>> assert not fl.use_u_aniso()
> > > > >>> AssertionError
> > > > >>>
> > > > >>> Anyone has any idea what is happening? Thanks.
> > > > >>>
> > > > >>> Jianghai
> > > > >>>
> > > > >>> +++++++++++++++++++++++++++++++
> > > > >>> Jianghai Zhu, Ph.D
> > > > >>> CBR Institute for Biomedical Research
> > > > >>> Department of Pathology
> > > > >>> Harvard Medical School
> > > > >>> 200 Longwood Ave., Boston, MA 02115
> > > > >>> Ph: 617-278-3211
> > > > >>> Fx: 618-278-3232
> > > > >>> +++++++++++++++++++++++++++++++
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> ----------------------------------------------------------
> ---
> > > -----------
> > > > >>>
> > > > >>> _______________________________________________
> > > > >>> phenixbb mailing list
> > > > >>> phenixbb(a)phenix-online.org
> > > > >>> http://www.phenix-online.org/mailman/listinfo/phenixbb
> > > > >>>
> > > > >
> > > > >
> > > > _______________________________________________
> > > > phenixbb mailing list
> > > > phenixbb(a)phenix-online.org
> > > > http://www.phenix-online.org/mailman/listinfo/phenixbb
> > > >
> > >
> > >
> > > --
> > > ========================================
> > > Ulrich Baumann
> > > University of Berne
> > > ulrich.baumann(a)ibc.unibe.ch
> > > phone + 41 31 631 4320/4343
> > > fax + 41 31 631 4887
> > >
> > > ------------------------------------------------------
> > > This mail was sent through IMP at http://mail.unibe.ch
> > > _______________________________________________
> > > phenixbb mailing list
> > > phenixbb(a)phenix-online.org
> > > http://www.phenix-online.org/mailman/listinfo/phenixbb
> > >
> > _______________________________________________
> > phenixbb mailing list
> > phenixbb(a)phenix-online.org
> > http://www.phenix-online.org/mailman/listinfo/phenixbb
> >
>
>
> --
> ========================================
> Ulrich Baumann
> University of Berne
> ulrich.baumann(a)ibc.unibe.ch
> phone + 41 31 631 4320/4343
> fax + 41 31 631 4887
>
> ------------------------------------------------------
> This mail was sent through IMP at http://mail.unibe.ch
>
18 years, 3 months

Re: [cctbxbb] some thoughts on cctbx and pip
by Billy Poon
Hi all,
Sorry for the delayed response, I was getting the message digests to test
some bulletin board settings, so I wasn't getting the individual messages
for replying.
For a brief update on conda,
1) External Boost libraries can now be used to build on all platforms
(linux, macOS, Windows) and I'm testing updated environments with Boost
1.68 and 1.70. This is for Python 2.7, 3.6, and some initial testing on
3.7. Once 3.7 is ready, Azure Pipelines will be updated to also build 3.7.
I'll do the updated dependencies as a pull request since there will be
changes that stop the downloading of modules/boost. Mixing Boost versions
can cause seg faults or unexpected behavior. I also did some brief testing
with 1.65 since that is the minimum version that the latest versions of
CUDA require.
2) The next step, like Aaron mentioned, is to get our build system to put
things in more standard locations (e.g. dispatchers/binaries in
$PREFIX/bin, shared libraries in $PREFIX/lib, Python source/extension
modules in $PREFIX/lib/python<version>/site-packages) as a "make install"
command. conda on Windows has a similar hierarchy that's specific to conda,
so for Windows, this will be conda-specific.
3) Update the conda_compiler branch (
https://github.com/cctbx/cctbx_project/tree/conda_compiler). This lets the
build process use the standard compilers in conda's build system.
Then a CCTBX conda package can be built and added to the conda-forge
channel. The conda environments for building CCTBX are already based on
conda-forge dependencies.
4) With the ability to build a conda package, conda constructor (
https://github.com/conda/constructor) can be used for building our
installers. This would be the more official way of packaging CCTBX with
conda dependencies as a stand-alone installer. One of the roadblocks to
using conda constructor was supporting noarch packages. It looks like that
has been fixed (
https://www.anaconda.com/announcing-the-anaconda-2019-07-release/).
So a goal for this work with conda is to make CCTBX-based programs
installable as conda packages so that installing and running the software
is consistent across platforms and operating system versions while also
making it easier for users to add their tools to the software stack.
We do have a Phenix release coming up, so I won't be able to spend much
effort on this until later in September.
Tristan,
If ChimeraX is installable via pip, it can be installed into a conda
environment. And once 2) is complete, you would be able to access CCTBX
from ChimeraX. Also, this would make installing ChimeraX pretty easy for
Phenix. Interestingly, the latest open source PyMOL can be built with
dependencies from Schrodinger's conda channel, so it should be possible to
build a conda package for PyMOL that integrates with our conda environment.
--
Billy K. Poon
Research Scientist, Molecular Biophysics and Integrated Bioimaging
Lawrence Berkeley National Laboratory
1 Cyclotron Road, M/S 33R0345
Berkeley, CA 94720
Tel: (510) 486-5709
Fax: (510) 486-5909
Web: https://phenix-online.org
On Fri, Aug 23, 2019 at 10:03 AM Tristan Croll <tic20(a)cam.ac.uk> wrote:
> To add my two cents on this: probably the second-most common question
> I've had about ISOLDE's implementation is, "why didn't you use CCTBX?".
> The honest answer to that is, "I didn't know how."
>
> Still don't, really - although the current developments are rather
> promising. The problem I've faced is that CCTBX was designed as its own
> self-contained Python (2.7, until very recently) environment, with its
> own interpreter and a lot of very specific environment setup. Meanwhile
> I'm developing ISOLDE in ChimeraX, which is *also* its own
> self-contained Python (3.7) environment. To plug one into the other in
> that form... well, I don't think I'm a good enough programmer to really
> know where to start.
>
> The move to Conda and a more modular CCTBX architecture should make a
> lot more possible in that direction. Pip would be even better for me
> personally (ChimeraX can install directly from the PyPI, but doesn't
> interact with Conda) - but I understand pretty well the substantial
> challenge that would amount to (not least being that the PyPI imposes a
> limit - around 100MB from memory? - on the size of an individual
> package).
>
> Best regards,
>
> Tristan
>
> On 2019-08-23 09:28, Luc Bourhis wrote:
> > Hi Graeme,
> >
> > Yes, I know. But “black" is a program doing a very particular task
> > (code formatting from the top of my head). Requiring to use a wrapper
> > for python itself is another level. But ok, I think I am mellowing to
> > the idea after all! Talking with people around me, and extrapolating,
> > I would bet that, right now, a great majority of people interested by
> > cctbx in pip have already used the cctbx, so they know about the
> > Python wrapper, and they would not be too sanguine about that. My
> > concern is for the future, when pip will be the first time some people
> > use cctbx. Big fat warning notices on PyPI page and a better error
> > message when cctbx fails because LIBTBX_BUILD is not set would be
> > needed but that could be all right.
> >
> > If we do a pip installer, we should aim at a minimal install: cctbx,
> > iotbx and their dependencies, and that’s it.
> >
> > Best wishes,
> >
> > Luc
> >
> >
> >> On 23 Aug 2019, at 07:17, Graeme.Winter(a)Diamond.ac.uk
> >> <Graeme.Winter(a)diamond.ac.uk> wrote:
> >>
> >> Without discussing the merits of this or whether we _choose_ to make
> >> the move to supporting PIP, I am certain it would be _possible_ - many
> >> other packages make dispatcher scripts when you pip install them e.g.
> >>
> >> Silver-Surfer rescale_f2 :) $ which black; cat $(which black)
> >> /Library/Frameworks/Python.framework/Versions/3.6/bin/black
> >> #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
> >>
> >> # -*- coding: utf-8 -*-
> >> import re
> >> import sys
> >>
> >> from black import main
> >>
> >> if __name__ == '__main__':
> >> sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
> >> sys.exit(main())
> >>
> >> So we _could_ work around the absence of LIBTBX_BUILD etc. in the
> >> system. Whether or not we elect to do the work is a different
> >> question, and it seems clear that here are very mixed opinions on
> >> this.
> >>
> >> Best wishes Graeme
> >>
> >>
> >> On 23 Aug 2019, at 01:21, Luc Bourhis
> >> <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
> >>
> >> Hi,
> >>
> >> Even if we managed to ship our the boost dynamic libraries with pip,
> >> it would still not be pip-like, as we would still need our python
> >> wrappers to set LIBTBX_BUILD and LD_LIBRARY_PATH. Normal pip packages
> >> work with the standard python exe. LD_LIBRARY_PATH, we could get
> >> around that by changing the way we compile, using -Wl,-R, which is the
> >> runtime equivalent of build time -L. That’s a significant change that
> >> would need to be tested. But there is no way around setting
> >> LIBTBX_BUILD right now. Leaving that to the user is horrible. Perhaps
> >> there is a way to hack libtbx/env_config.py so that we can hardwire
> >> LIBTBX_BUILD in there when pip installs?
> >>
> >> Best wishes,
> >>
> >> Luc
> >>
> >>
> >> On 16 Aug 2019, at 22:47, Luc Bourhis
> >> <luc_j_bourhis(a)mac.com<mailto:[email protected]>> wrote:
> >>
> >> Hi,
> >>
> >> I did look into that many years ago, and even toyed with building a
> >> pip installer. What stopped me is the exact conclusion you reached
> >> too: the user would not have the pip experience he expects. You are
> >> right that it is a lot of effort but is it worth it? Considering that
> >> remark, I don’t think so. Now, Conda was created specifically to go
> >> beyond pip pure-python-only support. Since cctbx has garnered support
> >> for Conda, the best avenue imho is to go the extra length to have a
> >> package on Anaconda.org<http://anaconda.org/>, and then to advertise
> >> it hard to every potential user out there.
> >>
> >> Best wishes,
> >>
> >> Luc
> >>
> >>
> >> On 16 Aug 2019, at 21:45, Aaron Brewster
> >> <asbrewster(a)lbl.gov<mailto:[email protected]>> wrote:
> >>
> >> Hi, to avoid clouding Dorothee's documentation email thread, which I
> >> think is a highly useful enterprise, here's some thoughts about
> >> putting cctbx into pip. Pip doesn't install non-python dependencies
> >> well. I don't think boost is available as a package on pip (at least
> >> the package version we use). wxPython4 isn't portable through pip
> >> (
> https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython…).
>
> >> MPI libraries are system dependent. If cctbx were a pure python
> >> package, pip would be fine, but cctbx is not.
> >>
> >> All that said, we could build a manylinux1 version of cctbx and upload
> >> it to PyPi (I'm just learning about this). For a pip package to be
> >> portable (which is a requirement for cctbx), it needs to conform to
> >> PEP513, the manylinux1 standard
> >> (https://www.python.org/dev/peps/pep-0513/). For example, numpy is
> >> built according to this standard (see
> >> https://pypi.org/project/numpy/#files, where you'll see the manylinux1
> >> wheel). Note, the manylinux1 standard is built with Centos 5.11 which
> >> we no longer support.
> >>
> >> There is also a manylinux2010 standard, which is based on Centos 6
> >> (https://www.python.org/dev/peps/pep-0571/). This is likely a more
> >> attainable target (note though by default C++11 is not supported on
> >> Centos 6).
> >>
> >> If we built a manylinuxX version of cctbx and uploaded it to PyPi, the
> >> user would need all the non-python dependencies. There's no way to
> >> specify these in pip. For example, cctbx requires boost 1.63 or
> >> better. The user will need to have it in a place their python can
> >> find it, or we could package it ourselves and supply it, similar to
> >> how the pip h5py package now comes with an hd5f library, or how the
> >> pip numpy package includes an openblas library. We'd have to do the
> >> same for any packages we depend on that aren't on pip using the
> >> manylinux standards, such as wxPython4.
> >>
> >> Further, we need to think about how dials and other cctbx-based
> >> packages interact. If pip install cctbx is set up, how does pip
> >> install dials work, such that any dials shared libraries can find the
> >> cctbx libraries? Can shared libraries from one pip package link
> >> against libraries in another pip package? Would each package need to
> >> supply its own boost? Possibly this is well understood in the pip
> >> field, but not by me :)
> >>
> >> Finally, there's the option of providing a source pip package. This
> >> would require the full compiler toolchain for any given platform
> >> (macOS, linux, windows). These are likely available for developers,
> >> but not for general users.
> >>
> >> Anyway, these are some of the obstacles. Not saying it isn't
> >> possible, it's just a lot of effort.
> >>
> >> Thanks,
> >> -Aaron
> >>
> >> _______________________________________________
> >> cctbxbb mailing list
> >> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>
> >> _______________________________________________
> >> cctbxbb mailing list
> >> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>
> >> _______________________________________________
> >> cctbxbb mailing list
> >> cctbxbb(a)phenix-online.org<mailto:[email protected]>
> >> http://phenix-online.org/mailman/listinfo/cctbxbb
> >>
> >>
> >> --
> >> This e-mail and any attachments may contain confidential, copyright
> >> and or privileged material, and are for the use of the intended
> >> addressee only. If you are not the intended addressee or an authorised
> >> recipient of the addressee please notify us of receipt by returning
> >> the e-mail and do not use, copy, retain, distribute or disclose the
> >> information in or attached to the e-mail.
> >> Any opinions expressed within this e-mail are those of the individual
> >> and not necessarily of Diamond Light Source Ltd.
> >> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
> >> attachments are free from viruses and we cannot accept liability for
> >> any damage which you may sustain as a result of software viruses which
> >> may be transmitted in or with the message.
> >> Diamond Light Source Limited (company no. 4375679). Registered in
> >> England and Wales with its registered office at Diamond House, Harwell
> >> Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United
> >> Kingdom
> >>
> >> _______________________________________________
> >> cctbxbb mailing list
> >> cctbxbb(a)phenix-online.org
> >> http://phenix-online.org/mailman/listinfo/cctbxbb
> >
> >
> > _______________________________________________
> > cctbxbb mailing list
> > cctbxbb(a)phenix-online.org
> > http://phenix-online.org/mailman/listinfo/cctbxbb
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb(a)phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
5 years, 10 months