servalcat 0.4.72__cp312-cp312-macosx_11_0_arm64.whl → 0.4.99__cp312-cp312-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of servalcat might be problematic. Click here for more details.
- servalcat/__init__.py +2 -2
- servalcat/ext.cpython-312-darwin.so +0 -0
- servalcat/refine/refine.py +152 -67
- servalcat/refine/refine_geom.py +32 -13
- servalcat/refine/refine_spa.py +70 -40
- servalcat/refine/refine_xtal.py +45 -13
- servalcat/refine/spa.py +15 -4
- servalcat/refine/xtal.py +147 -98
- servalcat/refmac/exte.py +7 -5
- servalcat/refmac/refmac_keywords.py +11 -9
- servalcat/refmac/refmac_wrapper.py +87 -60
- servalcat/spa/fofc.py +20 -3
- servalcat/spa/fsc.py +11 -11
- servalcat/spa/run_refmac.py +27 -12
- servalcat/spa/translate.py +2 -2
- servalcat/utils/commands.py +154 -4
- servalcat/utils/fileio.py +20 -10
- servalcat/utils/hkl.py +43 -29
- servalcat/utils/logger.py +25 -1
- servalcat/utils/maps.py +2 -2
- servalcat/utils/model.py +23 -10
- servalcat/utils/refmac.py +20 -1
- servalcat/utils/restraints.py +34 -25
- servalcat/utils/symmetry.py +5 -5
- servalcat/xtal/french_wilson.py +39 -31
- servalcat/xtal/sigmaa.py +382 -152
- servalcat/xtal/twin.py +121 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.99.dist-info}/METADATA +4 -4
- servalcat-0.4.99.dist-info/RECORD +45 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.99.dist-info}/WHEEL +1 -1
- servalcat-0.4.72.dist-info/RECORD +0 -44
- {servalcat-0.4.72.dist-info → servalcat-0.4.99.dist-info}/entry_points.txt +0 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.99.dist-info}/licenses/LICENSE +0 -0
servalcat/xtal/twin.py
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Author: "Keitaro Yamashita, Garib N. Murshudov"
|
|
3
|
+
MRC Laboratory of Molecular Biology
|
|
4
|
+
|
|
5
|
+
This software is released under the
|
|
6
|
+
Mozilla Public License, version 2.0; see LICENSE.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import absolute_import, division, print_function, generators
|
|
9
|
+
import argparse
|
|
10
|
+
import gemmi
|
|
11
|
+
import numpy
|
|
12
|
+
import pandas
|
|
13
|
+
from servalcat.utils import logger
|
|
14
|
+
from servalcat import utils
|
|
15
|
+
from servalcat import ext
|
|
16
|
+
|
|
17
|
+
def find_twin_domains_from_data(hkldata, max_oblique=5, min_alpha=0.05):
|
|
18
|
+
logger.writeln("Finding possible twin operators from data")
|
|
19
|
+
ops = gemmi.find_twin_laws(hkldata.cell, hkldata.sg, max_oblique, False)
|
|
20
|
+
logger.writeln(f" {len(ops)} possible twin operator(s) found")
|
|
21
|
+
#for op in ops:
|
|
22
|
+
# logger.writeln(f" {op.triplet()}")
|
|
23
|
+
if not ops:
|
|
24
|
+
return
|
|
25
|
+
twin_data = ext.TwinData()
|
|
26
|
+
twin_data.setup(hkldata.miller_array(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
|
|
27
|
+
if "I" in hkldata.df:
|
|
28
|
+
Io = hkldata.df.I.to_numpy()
|
|
29
|
+
else:
|
|
30
|
+
Io = hkldata.df.FP.to_numpy()**2
|
|
31
|
+
alphas = []
|
|
32
|
+
ccs, nums = [], []
|
|
33
|
+
for i_bin, bin_idxes in hkldata.binned():
|
|
34
|
+
ratios = [1.]
|
|
35
|
+
ccs.append([])
|
|
36
|
+
nums.append([])
|
|
37
|
+
for i_op, op in enumerate(ops):
|
|
38
|
+
ii = numpy.array(twin_data.pairs(i_op, i_bin))
|
|
39
|
+
val = numpy.all(numpy.isfinite(Io[ii]), axis=1)
|
|
40
|
+
if numpy.sum(val) == 0:
|
|
41
|
+
cc = numpy.nan
|
|
42
|
+
else:
|
|
43
|
+
cc = numpy.corrcoef(Io[ii][val].T)[0,1]
|
|
44
|
+
rr = (1 - numpy.sqrt(1 - cc**2)) / cc
|
|
45
|
+
ratios.append(rr)
|
|
46
|
+
ccs[-1].append(cc)
|
|
47
|
+
nums[-1].append(len(val))
|
|
48
|
+
alphas.append(numpy.array(ratios) / numpy.nansum(ratios))
|
|
49
|
+
alphas = numpy.maximum(0, numpy.mean(alphas, axis=0))
|
|
50
|
+
alphas /= numpy.nansum(alphas)
|
|
51
|
+
ccs = numpy.array(ccs)
|
|
52
|
+
nums = numpy.array(nums)
|
|
53
|
+
tmp = [{"Operator": gemmi.Op().triplet(),
|
|
54
|
+
"R_twin_obs": 0,
|
|
55
|
+
"CC_mean": 1,
|
|
56
|
+
"Alpha_from_CC": alphas[0]}]
|
|
57
|
+
for i_op, op in enumerate(ops):
|
|
58
|
+
ii = numpy.array(twin_data.pairs(i_op))
|
|
59
|
+
val = numpy.all(numpy.isfinite(Io[ii]), axis=1)
|
|
60
|
+
if numpy.sum(val) == 0:
|
|
61
|
+
r_obs = numpy.nan
|
|
62
|
+
else:
|
|
63
|
+
r_obs = numpy.sum(numpy.abs(Io[ii][val, 0] - Io[ii][val, 1])) / numpy.sum(Io[ii][val])
|
|
64
|
+
tmp.append({"Operator": op.triplet(),
|
|
65
|
+
"CC_mean": numpy.sum(nums[:,i_op] * ccs[:,i_op]) / numpy.sum(nums[:,i_op]),
|
|
66
|
+
"R_twin_obs": r_obs,
|
|
67
|
+
"Alpha_from_CC": alphas[i_op+1],
|
|
68
|
+
})
|
|
69
|
+
df = pandas.DataFrame(tmp)
|
|
70
|
+
logger.writeln(df.to_string(float_format="%.2f"))
|
|
71
|
+
|
|
72
|
+
sel_idxes = [i for i, a in enumerate(alphas) if i > 0 and a > min_alpha]
|
|
73
|
+
if not sel_idxes:
|
|
74
|
+
logger.writeln(" No twinning detected")
|
|
75
|
+
return
|
|
76
|
+
|
|
77
|
+
if len(sel_idxes) + 1 != len(alphas):
|
|
78
|
+
ops = [ops[i-1] for i in sel_idxes]
|
|
79
|
+
logger.writeln(" Twin operators after filtering small fractions")
|
|
80
|
+
alphas = numpy.array([alphas[0]] + [alphas[i] for i in sel_idxes])
|
|
81
|
+
alphas /= numpy.sum(alphas)
|
|
82
|
+
df = pandas.DataFrame({"Operator": [x.triplet() for x in [gemmi.Op()]+ops],
|
|
83
|
+
"Alpha": alphas})
|
|
84
|
+
logger.writeln(df.to_string(float_format="%.2f"))
|
|
85
|
+
twin_data = ext.TwinData()
|
|
86
|
+
twin_data.setup(hkldata.miller_array(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
|
|
87
|
+
twin_data.alphas = alphas
|
|
88
|
+
if "I" not in hkldata.df:
|
|
89
|
+
logger.writeln('Generating "observed" intensities for twin refinement: Io = Fo**2, SigIo = 2*F*SigFo')
|
|
90
|
+
hkldata.df["I"] = hkldata.df.FP**2
|
|
91
|
+
hkldata.df["SIGI"] = 2 * hkldata.df.FP * hkldata.df.SIGFP
|
|
92
|
+
return twin_data
|
|
93
|
+
|
|
94
|
+
# find_twin_domains_from_data()
|
|
95
|
+
|
|
96
|
+
def estimate_twin_fractions_from_model(twin_data, hkldata):
|
|
97
|
+
logger.writeln("Estimating twin fractions")
|
|
98
|
+
Ic = numpy.abs(twin_data.f_calc.sum(axis=1))**2
|
|
99
|
+
Ic_all = Ic[twin_data.twin_related(hkldata.sg)]
|
|
100
|
+
rr = twin_data.obs_related_asu()
|
|
101
|
+
tmp = []
|
|
102
|
+
for i_bin, bin_idxes in hkldata.binned():
|
|
103
|
+
cc_o_c = []
|
|
104
|
+
i_tmp = Ic_all[numpy.asarray(twin_data.bin)==i_bin,:]
|
|
105
|
+
P = numpy.corrcoef(i_tmp.T)
|
|
106
|
+
iobs = hkldata.df.I.to_numpy()[bin_idxes]
|
|
107
|
+
ic_bin = Ic[rr[bin_idxes,:]]
|
|
108
|
+
val = numpy.isfinite(iobs) & numpy.isfinite(ic_bin).all(axis=1)
|
|
109
|
+
iobs, ic_bin = iobs[val], ic_bin[val,:]
|
|
110
|
+
cc_o_c = [numpy.corrcoef(iobs, ic_bin[:,i])[0,1] for i in range(len(twin_data.ops)+1)]
|
|
111
|
+
frac_est = numpy.dot(numpy.linalg.pinv(P), cc_o_c)
|
|
112
|
+
tmp.append(frac_est.tolist())
|
|
113
|
+
|
|
114
|
+
df = pandas.DataFrame(tmp)
|
|
115
|
+
df.iloc[:,:] /= df.sum(axis=1).to_numpy()[:,None]
|
|
116
|
+
mean_alphas = numpy.maximum(0, df.mean())
|
|
117
|
+
mean_alphas /= numpy.sum(mean_alphas)
|
|
118
|
+
logger.write(" Estimated fractions from data-model correlations: ")
|
|
119
|
+
logger.writeln(" ".join("%.2f"%x for x in mean_alphas))
|
|
120
|
+
twin_data.alphas = mean_alphas
|
|
121
|
+
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: servalcat
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.99
|
|
4
4
|
Summary: Structure refinement and validation for crystallography and single particle analysis
|
|
5
5
|
Author: Keitaro Yamashita, Garib N. Murshudov
|
|
6
6
|
License: MPL-2.0
|
|
7
7
|
Project-URL: Repository, https://github.com/keitaroyam/servalcat
|
|
8
|
-
Requires-Python: >=3.
|
|
8
|
+
Requires-Python: >=3.8
|
|
9
9
|
Requires-Dist: packaging
|
|
10
10
|
Requires-Dist: numpy>=1.15
|
|
11
11
|
Requires-Dist: scipy
|
|
12
12
|
Requires-Dist: pandas>=1.1.0
|
|
13
|
-
Requires-Dist: gemmi==0.
|
|
13
|
+
Requires-Dist: gemmi==0.7.0
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
|
|
16
16
|
# Servalcat
|
|
@@ -40,7 +40,7 @@ pip install servalcat
|
|
|
40
40
|
```
|
|
41
41
|
will install the stable version.
|
|
42
42
|
|
|
43
|
-
The required GEMMI version is now [v0.
|
|
43
|
+
The required GEMMI version is now [v0.7.0](https://github.com/project-gemmi/gemmi/releases/tag/v0.7.0). It may not work with the latest gemmi code from the github. The policy is in the main branch I only push the code that works with the latest package of GEMMI.
|
|
44
44
|
|
|
45
45
|
To use the Refmac5 related commands, you also need to install [CCP4](https://www.ccp4.ac.uk/). For "No Refmac5" commands, you may just need [the monomer library](https://github.com/MonomerLibrary/monomers) if CCP4 is not installed.
|
|
46
46
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
servalcat-0.4.99.dist-info/RECORD,,
|
|
2
|
+
servalcat-0.4.99.dist-info/WHEEL,sha256=bS2kxwU1pioFffhNQmlfvjD0H1flBf5ZtxV4jDj8Nvc,114
|
|
3
|
+
servalcat-0.4.99.dist-info/entry_points.txt,sha256=G1mDxhOCdF3umYz4k0kfwJbSdYSKqhvQdGCmrP8FRAY,111
|
|
4
|
+
servalcat-0.4.99.dist-info/METADATA,sha256=OxT6LeODHswv4-Yg1Xtv6pjkvHjriRcZNFfq5asJObs,2741
|
|
5
|
+
servalcat-0.4.99.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
6
|
+
servalcat/__init__.py,sha256=Wzar8K8OYk-xh70qv6hGajtSKjXH3qL93fHLMDTEh4w,231
|
|
7
|
+
servalcat/ext.cpython-312-darwin.so,sha256=8LSy8m2v2-tK9zbONRrk2mHH2GVonTQNuKiQzGlJFdU,1219592
|
|
8
|
+
servalcat/__main__.py,sha256=bNEZKrG5765uOp32UiBAJmeJi3O0sk4I5QjrXUbngIE,4070
|
|
9
|
+
servalcat/refmac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
servalcat/refmac/refmac_keywords.py,sha256=yzYSJELMjdTnf4pT0_8EdIOjCDncqkjpPJ3VNcsFDrU,26649
|
|
11
|
+
servalcat/refmac/exte.py,sha256=HtmlTHRzCeCN-vSJZdKCD1GIhQO6zTe1OKLUObC3gZ8,9019
|
|
12
|
+
servalcat/refmac/refmac_wrapper.py,sha256=euuhBv2F_ArmUvlfAA9fld4oCDkWMZENP73ioTtv118,17838
|
|
13
|
+
servalcat/xtal/twin.py,sha256=lmBz0no9lfjq6MNkK9Q-9R47a0xGkDfaBYrOWunqyBI,4900
|
|
14
|
+
servalcat/xtal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
servalcat/xtal/sigmaa.py,sha256=mTGKfjnrZGAee-TNZUovOd5mTCDZ10Xri8t2mY4l8Tg,75326
|
|
16
|
+
servalcat/xtal/french_wilson.py,sha256=GE3WEPhuizDVSPq1Afyb1O-OPTlzKDXYhkDCIELWI_0,11787
|
|
17
|
+
servalcat/xtal/run_refmac_small.py,sha256=Yg-bEPuOdQxCwdwY8StCvXabcWHrRl6A22gJgLsypeU,10394
|
|
18
|
+
servalcat/utils/symmetry.py,sha256=ahMiaEDMyfV2YW0BkikF_ldMtIN4-usAGsNRCXGVbug,11869
|
|
19
|
+
servalcat/utils/generate_operators.py,sha256=fCrcTcciRn-6fpFtHYvf1oPXAObjuqR3WQejz5d0RrA,10980
|
|
20
|
+
servalcat/utils/maps.py,sha256=0hen0Pt9IxbGQOLZyZaGiNWBAttc6aMqb6NzrCKkZMQ,13225
|
|
21
|
+
servalcat/utils/__init__.py,sha256=j-fMAqHvzyMMQXb2Sf7Urnk4oQ31pT-g_NXf3K-NM4c,1137
|
|
22
|
+
servalcat/utils/logger.py,sha256=c84HQf7Hb1yzXZ3Syog0f5vNRnozl0OCpqi0qIMoBlY,4589
|
|
23
|
+
servalcat/utils/model.py,sha256=wmwYUacysc9zAXIS807sNlZGpc2cjJIa5QvUQb7eEYU,30177
|
|
24
|
+
servalcat/utils/restraints.py,sha256=V2QBfgSH636upbLtGany4QyBk3r05CLxqvJYiM1SLSQ,36960
|
|
25
|
+
servalcat/utils/refmac.py,sha256=LKwgCtLg7R5D8mjI7yCGd2lrjcjTeEJVAo1pey2u3IU,30922
|
|
26
|
+
servalcat/utils/commands.py,sha256=dxsbPMZl-1BVKKr0rXzGF08k-Aco5qwzEHRWxZlcxek,70956
|
|
27
|
+
servalcat/utils/hkl.py,sha256=aH2SMAccU-cdBqSgUJ7O6D7PpzO7m_1HlRVzg9Q_4Ds,28062
|
|
28
|
+
servalcat/utils/fileio.py,sha256=YytwlL0SeaxHCgIzFEjfS_tRpLDmvhVDjwEnkDXw1_E,29502
|
|
29
|
+
servalcat/spa/shiftback.py,sha256=A9OfaZ8r2BC6A2uGXxNNhmyBNORUB_MeqJC29ZRebnw,4664
|
|
30
|
+
servalcat/spa/localcc.py,sha256=0otKfGKH33cFsD6Qvh8iL1mINlWqb3gqAbVKqy8fQPY,7985
|
|
31
|
+
servalcat/spa/translate.py,sha256=BwmVcyDbqDehjtH7kA4wQFF4hJb9c1gcHu7JbGREUTU,5099
|
|
32
|
+
servalcat/spa/run_refmac.py,sha256=tX0a37-aTJgADZ_NCdKbT8aE4P9Bnmm1qrFW2jc9Hw4,49550
|
|
33
|
+
servalcat/spa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
+
servalcat/spa/fsc.py,sha256=ISsBOl5JJZA6yT2yuDHNQ4I780TrmuYW6CPvimCwDqo,17454
|
|
35
|
+
servalcat/spa/realspcc_from_var.py,sha256=VpdvNEY4zRza08Vz727JI6Seq-ix-oujx4Gvzy_VkYI,5275
|
|
36
|
+
servalcat/spa/shift_maps.py,sha256=iP1w4LNXETvZblElJ64AFMcE-lPrhx1s4SfacGktg4o,13268
|
|
37
|
+
servalcat/spa/fofc.py,sha256=Q97XkJX_4KWmxCIzq16R5BTMUY28V_4CPdbzF6p5Oxo,23113
|
|
38
|
+
servalcat/refine/xtal.py,sha256=2Sr3sqO0nfIPNS4Ry_jmDimez3uRIWUsEExRC6ps1So,14617
|
|
39
|
+
servalcat/refine/refine.py,sha256=W3oduNRNgc05mqMO1wYUdgN3pRrUuR9kEJ3yhAJd9jQ,44035
|
|
40
|
+
servalcat/refine/refine_spa.py,sha256=Iq9lDvWC8IcOzHwx5FRylBUF3mb7YgtyzICsQTSm7Tw,19162
|
|
41
|
+
servalcat/refine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
servalcat/refine/spa.py,sha256=lmh4P6nQNFIdaZUKFIc_ES6B6X-FG-JkxyfpqHgtk9g,6472
|
|
43
|
+
servalcat/refine/cgsolve.py,sha256=tHuWXr76x4sRAMUQ4dGVJzyHF_n1LiwKHTjAwh8iFMg,3072
|
|
44
|
+
servalcat/refine/refine_geom.py,sha256=uATaTCEVkPJw3DjpVX66j7mhYs9Mp21rDwBfumrpwfw,11352
|
|
45
|
+
servalcat/refine/refine_xtal.py,sha256=DFy7FFRBP3fhcHl8JzI0FqBfdfAHE2vJNyH7kp9lXtQ,14736
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
servalcat-0.4.72.dist-info/RECORD,,
|
|
2
|
-
servalcat-0.4.72.dist-info/WHEEL,sha256=mgQAlqZn1gpBQ0zqn0f5_muqckw_PxmecVM-Qtn7Mi0,113
|
|
3
|
-
servalcat-0.4.72.dist-info/entry_points.txt,sha256=G1mDxhOCdF3umYz4k0kfwJbSdYSKqhvQdGCmrP8FRAY,111
|
|
4
|
-
servalcat-0.4.72.dist-info/METADATA,sha256=TZYkYT2ZTIau48irzZGbtp_ceVKiJm0iTG0N8x5MPn8,2741
|
|
5
|
-
servalcat-0.4.72.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
6
|
-
servalcat/__init__.py,sha256=FjeqVIsFlkCS8CNh8kLmauTGhRN3GKyJk1EzJT-OPa8,231
|
|
7
|
-
servalcat/ext.cpython-312-darwin.so,sha256=wditWvvIiuQzxDlR8kWMDlBAJLHIGF2fOFfcfIe2qH8,1996232
|
|
8
|
-
servalcat/__main__.py,sha256=bNEZKrG5765uOp32UiBAJmeJi3O0sk4I5QjrXUbngIE,4070
|
|
9
|
-
servalcat/refmac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
servalcat/refmac/refmac_keywords.py,sha256=0l04qPfsjTu8Ipr2e1JwnBsmnQws3iVB_E0cnnaMHdo,26512
|
|
11
|
-
servalcat/refmac/exte.py,sha256=jlRBlNslSKPC0Gt6DZ4JFw1l9SqPDalsOv5E-5M5WN8,8847
|
|
12
|
-
servalcat/refmac/refmac_wrapper.py,sha256=e404-q0cd8_NeIkLKC9lzfjKxS9GFqxPVSUwtNUyM3s,16658
|
|
13
|
-
servalcat/xtal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
servalcat/xtal/sigmaa.py,sha256=y2bfLbesfdvi8KS3nuUkAa6CPdWNIPY73nrL2svZJTw,64792
|
|
15
|
-
servalcat/xtal/french_wilson.py,sha256=Y90X8AwgnwOZ3sTyOD1IIAWaOV4g69zDym3CcIPJEw8,11073
|
|
16
|
-
servalcat/xtal/run_refmac_small.py,sha256=Yg-bEPuOdQxCwdwY8StCvXabcWHrRl6A22gJgLsypeU,10394
|
|
17
|
-
servalcat/utils/symmetry.py,sha256=H-5RBiQOp0MlWJE8LGJWvqe-YzmtzzrXfLO_2E_OpZU,11937
|
|
18
|
-
servalcat/utils/generate_operators.py,sha256=fCrcTcciRn-6fpFtHYvf1oPXAObjuqR3WQejz5d0RrA,10980
|
|
19
|
-
servalcat/utils/maps.py,sha256=ZoB3wwZZTLHYuwC4HBGFAYX4zmkZ8CdxD9wSLftL48c,13217
|
|
20
|
-
servalcat/utils/__init__.py,sha256=j-fMAqHvzyMMQXb2Sf7Urnk4oQ31pT-g_NXf3K-NM4c,1137
|
|
21
|
-
servalcat/utils/logger.py,sha256=oQcoKcM81fSsoQt_dKgwfUekJN5CcLMbti_kLb2loXM,3828
|
|
22
|
-
servalcat/utils/model.py,sha256=cijlnPeMFIBHEQYw_CtJd2nPZXUXdsHN83h4vvelMRw,29841
|
|
23
|
-
servalcat/utils/restraints.py,sha256=mpW-v08cGyX21FseO6AIB0babQznQpeRYwDqJWkfe8k,36032
|
|
24
|
-
servalcat/utils/refmac.py,sha256=y18HZkpxG8pJPipCZJB3E25NiqrCpEqt_DFGuHHc3aw,30073
|
|
25
|
-
servalcat/utils/commands.py,sha256=zkSFmdXIthC4ogvxgiHsVUyhBLZaiwflJAwP0CCBnZ8,64037
|
|
26
|
-
servalcat/utils/hkl.py,sha256=H0QnnvXFqhmnzXAcCeCcPmpiKy7W5AOqVUmB-np4n3E,27765
|
|
27
|
-
servalcat/utils/fileio.py,sha256=6znifeyHQ0warGJrLR6L0nCgryActgkSPzkmXEMRra8,28975
|
|
28
|
-
servalcat/spa/shiftback.py,sha256=A9OfaZ8r2BC6A2uGXxNNhmyBNORUB_MeqJC29ZRebnw,4664
|
|
29
|
-
servalcat/spa/localcc.py,sha256=0otKfGKH33cFsD6Qvh8iL1mINlWqb3gqAbVKqy8fQPY,7985
|
|
30
|
-
servalcat/spa/translate.py,sha256=InePz9d38KaUK4wr8uk06_6v4y80T3HYcURWp8c21zM,5091
|
|
31
|
-
servalcat/spa/run_refmac.py,sha256=gQE4I-x_hzcU6DlDq5xW47fVMaDoCR5GlpOfjiv5s2A,48591
|
|
32
|
-
servalcat/spa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
-
servalcat/spa/fsc.py,sha256=qTz8nS_KJpno0s0Hw7Isp2n_6PDzaYkBye5zSnO3Ufg,17278
|
|
34
|
-
servalcat/spa/realspcc_from_var.py,sha256=VpdvNEY4zRza08Vz727JI6Seq-ix-oujx4Gvzy_VkYI,5275
|
|
35
|
-
servalcat/spa/shift_maps.py,sha256=iP1w4LNXETvZblElJ64AFMcE-lPrhx1s4SfacGktg4o,13268
|
|
36
|
-
servalcat/spa/fofc.py,sha256=OvF1_wUcUzG4JLkRsCj-1ea2ukbQrc6ki01vI9aTISo,22188
|
|
37
|
-
servalcat/refine/xtal.py,sha256=VnrGjWgRfj9ALGfHXgLIYswMwqsqe4vO7nsqrAFm8XA,11848
|
|
38
|
-
servalcat/refine/refine.py,sha256=KAzc8NSmhGunFqJD6SWcliEwtXSPULHNNxJF4W2LMuA,38227
|
|
39
|
-
servalcat/refine/refine_spa.py,sha256=HTzhmUkoxzxeY5qFlW6-Ryla7a0-TwiBWR6P3AaxjRs,17340
|
|
40
|
-
servalcat/refine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
servalcat/refine/spa.py,sha256=-7O6a0-1YCfyRtlKbAT5sFseg7XkDTybt9uFC4vDVAQ,6194
|
|
42
|
-
servalcat/refine/cgsolve.py,sha256=tHuWXr76x4sRAMUQ4dGVJzyHF_n1LiwKHTjAwh8iFMg,3072
|
|
43
|
-
servalcat/refine/refine_geom.py,sha256=nWeHjWG3ieKP9JDUi-4XAxNpELIPuxawA59_PM-4W9o,10366
|
|
44
|
-
servalcat/refine/refine_xtal.py,sha256=UEx1fYHk9p23AaWTFYg8P1_TUetLmouqPGfCLcjOufc,12595
|
|
File without changes
|
|
File without changes
|