servalcat 0.4.72__cp312-cp312-macosx_11_0_arm64.whl → 0.4.88__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 +28 -26
- servalcat/refine/refine_geom.py +8 -2
- servalcat/refine/refine_spa.py +21 -12
- servalcat/refine/refine_xtal.py +27 -8
- servalcat/refine/spa.py +3 -0
- servalcat/refine/xtal.py +142 -96
- servalcat/refmac/exte.py +7 -5
- servalcat/refmac/refmac_keywords.py +11 -9
- servalcat/refmac/refmac_wrapper.py +89 -54
- servalcat/spa/fofc.py +11 -0
- servalcat/spa/fsc.py +3 -1
- servalcat/spa/run_refmac.py +11 -1
- servalcat/utils/fileio.py +5 -2
- servalcat/utils/hkl.py +20 -8
- servalcat/utils/model.py +13 -0
- servalcat/utils/refmac.py +19 -0
- servalcat/utils/restraints.py +19 -9
- servalcat/xtal/french_wilson.py +34 -28
- servalcat/xtal/sigmaa.py +338 -130
- servalcat/xtal/twin.py +115 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.88.dist-info}/METADATA +3 -3
- servalcat-0.4.88.dist-info/RECORD +45 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.88.dist-info}/WHEEL +1 -1
- servalcat-0.4.72.dist-info/RECORD +0 -44
- {servalcat-0.4.72.dist-info → servalcat-0.4.88.dist-info}/entry_points.txt +0 -0
- {servalcat-0.4.72.dist-info → servalcat-0.4.88.dist-info}/licenses/LICENSE +0 -0
servalcat/xtal/twin.py
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
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().to_numpy(), 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
|
+
cc = numpy.corrcoef(Io[ii][val].T)[0,1]
|
|
41
|
+
rr = (1 - numpy.sqrt(1 - cc**2)) / cc
|
|
42
|
+
ratios.append(rr)
|
|
43
|
+
ccs[-1].append(cc)
|
|
44
|
+
nums[-1].append(len(val))
|
|
45
|
+
alphas.append(numpy.array(ratios) / sum(ratios))
|
|
46
|
+
alphas = numpy.maximum(0, numpy.mean(alphas, axis=0))
|
|
47
|
+
alphas /= numpy.sum(alphas)
|
|
48
|
+
ccs = numpy.array(ccs)
|
|
49
|
+
nums = numpy.array(nums)
|
|
50
|
+
tmp = [{"Operator": gemmi.Op().triplet(),
|
|
51
|
+
"R_twin_obs": 0,
|
|
52
|
+
"CC_mean": 1,
|
|
53
|
+
"Alpha_from_CC": alphas[0]}]
|
|
54
|
+
for i_op, op in enumerate(ops):
|
|
55
|
+
ii = numpy.array(twin_data.pairs(i_op))
|
|
56
|
+
val = numpy.all(numpy.isfinite(Io[ii]), axis=1)
|
|
57
|
+
r_obs = numpy.sum(numpy.abs(Io[ii][val, 0] - Io[ii][val, 1])) / numpy.sum(Io[ii][val])
|
|
58
|
+
tmp.append({"Operator": op.triplet(),
|
|
59
|
+
"CC_mean": numpy.sum(nums[:,i_op] * ccs[:,i_op]) / numpy.sum(nums[:,i_op]),
|
|
60
|
+
"R_twin_obs": r_obs,
|
|
61
|
+
"Alpha_from_CC": alphas[i_op+1],
|
|
62
|
+
})
|
|
63
|
+
df = pandas.DataFrame(tmp)
|
|
64
|
+
logger.writeln(df.to_string(float_format="%.2f"))
|
|
65
|
+
|
|
66
|
+
sel_idxes = [i for i, a in enumerate(alphas) if i > 0 and a > min_alpha]
|
|
67
|
+
if not sel_idxes:
|
|
68
|
+
logger.writeln(" No twinning detected")
|
|
69
|
+
return
|
|
70
|
+
|
|
71
|
+
if len(sel_idxes) + 1 != len(alphas):
|
|
72
|
+
ops = [ops[i-1] for i in sel_idxes]
|
|
73
|
+
logger.writeln(" Twin operators after filtering small fractions")
|
|
74
|
+
alphas = numpy.array([alphas[0]] + [alphas[i] for i in sel_idxes])
|
|
75
|
+
alphas /= numpy.sum(alphas)
|
|
76
|
+
df = pandas.DataFrame({"Operator": [x.triplet() for x in [gemmi.Op()]+ops],
|
|
77
|
+
"Alpha": alphas})
|
|
78
|
+
logger.writeln(df.to_string(float_format="%.2f"))
|
|
79
|
+
twin_data = ext.TwinData()
|
|
80
|
+
twin_data.setup(hkldata.miller_array().to_numpy(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
|
|
81
|
+
twin_data.alphas = alphas
|
|
82
|
+
if "I" not in hkldata.df:
|
|
83
|
+
logger.writeln('Generating "observed" intensities for twin refinement: Io = Fo**2, SigIo = 2*F*SigFo')
|
|
84
|
+
hkldata.df["I"] = hkldata.df.FP**2
|
|
85
|
+
hkldata.df["SIGI"] = 2 * hkldata.df.FP * hkldata.df.SIGFP
|
|
86
|
+
return twin_data
|
|
87
|
+
|
|
88
|
+
# find_twin_domains_from_data()
|
|
89
|
+
|
|
90
|
+
def estimate_twin_fractions_from_model(twin_data, hkldata):
|
|
91
|
+
logger.writeln("Estimating twin fractions")
|
|
92
|
+
Ic = numpy.abs(twin_data.f_calc.sum(axis=1))**2
|
|
93
|
+
Ic_all = Ic[twin_data.twin_related(hkldata.sg)]
|
|
94
|
+
rr = twin_data.obs_related_asu()
|
|
95
|
+
tmp = []
|
|
96
|
+
for i_bin, bin_idxes in hkldata.binned():
|
|
97
|
+
cc_o_c = []
|
|
98
|
+
i_tmp = Ic_all[numpy.asarray(twin_data.bin)==i_bin,:]
|
|
99
|
+
P = numpy.corrcoef(i_tmp.T)
|
|
100
|
+
iobs = hkldata.df.I.to_numpy()[bin_idxes]
|
|
101
|
+
ic_bin = Ic[rr[bin_idxes,:]]
|
|
102
|
+
val = numpy.isfinite(iobs) & numpy.isfinite(ic_bin).all(axis=1)
|
|
103
|
+
iobs, ic_bin = iobs[val], ic_bin[val,:]
|
|
104
|
+
cc_o_c = [numpy.corrcoef(iobs, ic_bin[:,i])[0,1] for i in range(len(twin_data.ops)+1)]
|
|
105
|
+
frac_est = numpy.dot(numpy.linalg.pinv(P), cc_o_c)
|
|
106
|
+
tmp.append(frac_est.tolist())
|
|
107
|
+
|
|
108
|
+
df = pandas.DataFrame(tmp)
|
|
109
|
+
df.iloc[:,:] /= df.sum(axis=1).to_numpy()[:,None]
|
|
110
|
+
mean_alphas = numpy.maximum(0, df.mean())
|
|
111
|
+
mean_alphas /= numpy.sum(mean_alphas)
|
|
112
|
+
logger.write(" Estimated fractions from data-model correlations: ")
|
|
113
|
+
logger.writeln(" ".join("%.2f"%x for x in mean_alphas))
|
|
114
|
+
twin_data.alphas = mean_alphas
|
|
115
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: servalcat
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.88
|
|
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
|
|
@@ -10,7 +10,7 @@ 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.6.
|
|
13
|
+
Requires-Dist: gemmi==0.6.7
|
|
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.6.
|
|
43
|
+
The required GEMMI version is now [v0.6.7](https://github.com/project-gemmi/gemmi/releases/tag/v0.6.7). 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.88.dist-info/RECORD,,
|
|
2
|
+
servalcat-0.4.88.dist-info/WHEEL,sha256=1MNIlynTwkwwhETLr2_rT6EoaGjOw8ZJmXs1JD1RAw4,114
|
|
3
|
+
servalcat-0.4.88.dist-info/entry_points.txt,sha256=G1mDxhOCdF3umYz4k0kfwJbSdYSKqhvQdGCmrP8FRAY,111
|
|
4
|
+
servalcat-0.4.88.dist-info/METADATA,sha256=B0VVGu-KUJy9euhZEeDrZ_mIlwvMBeKh3e8Pz8zm_ww,2741
|
|
5
|
+
servalcat-0.4.88.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
6
|
+
servalcat/__init__.py,sha256=6hLXc7c2AoM0dJqaoKHAGlmleut4b6M7aAbDE0byRG4,231
|
|
7
|
+
servalcat/ext.cpython-312-darwin.so,sha256=pWiZmt-i8GMjurYxZcEsq_FTyPsXBPJOYgakCHkgjgo,2131640
|
|
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=iZvHZRpFKrdxx0ggT9AFUmjnuBXyfZBdJ69ZnN0_zkQ,18130
|
|
13
|
+
servalcat/xtal/twin.py,sha256=Q1lbYm17w75KohvOS5blyp8TEGviWJ9zJlmmy8zSnU8,4741
|
|
14
|
+
servalcat/xtal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
servalcat/xtal/sigmaa.py,sha256=LvRu76y0AqrT_n7LpDQnqcKm4NDkslroCkWowmIs5lk,74185
|
|
16
|
+
servalcat/xtal/french_wilson.py,sha256=pL97K22WIkHHy_IexGPFhCan2WRHHemdWO0x7glTT7s,11656
|
|
17
|
+
servalcat/xtal/run_refmac_small.py,sha256=Yg-bEPuOdQxCwdwY8StCvXabcWHrRl6A22gJgLsypeU,10394
|
|
18
|
+
servalcat/utils/symmetry.py,sha256=H-5RBiQOp0MlWJE8LGJWvqe-YzmtzzrXfLO_2E_OpZU,11937
|
|
19
|
+
servalcat/utils/generate_operators.py,sha256=fCrcTcciRn-6fpFtHYvf1oPXAObjuqR3WQejz5d0RrA,10980
|
|
20
|
+
servalcat/utils/maps.py,sha256=ZoB3wwZZTLHYuwC4HBGFAYX4zmkZ8CdxD9wSLftL48c,13217
|
|
21
|
+
servalcat/utils/__init__.py,sha256=j-fMAqHvzyMMQXb2Sf7Urnk4oQ31pT-g_NXf3K-NM4c,1137
|
|
22
|
+
servalcat/utils/logger.py,sha256=oQcoKcM81fSsoQt_dKgwfUekJN5CcLMbti_kLb2loXM,3828
|
|
23
|
+
servalcat/utils/model.py,sha256=_XpYd1WKtI1ErCXzNCxIukYClhJWl8BcFUfTgu-NB4E,30272
|
|
24
|
+
servalcat/utils/restraints.py,sha256=IookRqipmUQlEgYRbt9lhzSuRHPuIq0QputfN87cEms,36911
|
|
25
|
+
servalcat/utils/refmac.py,sha256=SFIReNexBpBBMgBUX67V_63NY8Yy8mOmAn9rYBPiDIo,30921
|
|
26
|
+
servalcat/utils/commands.py,sha256=zkSFmdXIthC4ogvxgiHsVUyhBLZaiwflJAwP0CCBnZ8,64037
|
|
27
|
+
servalcat/utils/hkl.py,sha256=3sw5NVJTKAp-7KzZmKsgGCpeRLKih4Wdf1kPK1JR4fM,28170
|
|
28
|
+
servalcat/utils/fileio.py,sha256=NROzr_mpgc5qbvhaoEsIOHEFnN0uthabqKUiINE8Xnw,29085
|
|
29
|
+
servalcat/spa/shiftback.py,sha256=A9OfaZ8r2BC6A2uGXxNNhmyBNORUB_MeqJC29ZRebnw,4664
|
|
30
|
+
servalcat/spa/localcc.py,sha256=0otKfGKH33cFsD6Qvh8iL1mINlWqb3gqAbVKqy8fQPY,7985
|
|
31
|
+
servalcat/spa/translate.py,sha256=InePz9d38KaUK4wr8uk06_6v4y80T3HYcURWp8c21zM,5091
|
|
32
|
+
servalcat/spa/run_refmac.py,sha256=KWl7Cc6MLlsJdEsJ6MXBP8_2FiWeDZ66xmk04Ka-cVY,49196
|
|
33
|
+
servalcat/spa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
+
servalcat/spa/fsc.py,sha256=lRkNRRBSIcVlnoF5mvCKNXTxasp73a7SCLth4hTnWzE,17419
|
|
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=7ZG7wXtbcaeHG9dVZvYofNb75cbqthhE7O_XTVx-y70,22762
|
|
38
|
+
servalcat/refine/xtal.py,sha256=YRZusmJXcMp1HtrKZiUd6JF-igS6MbHvOIuyFSPOVv0,14384
|
|
39
|
+
servalcat/refine/refine.py,sha256=4ly66LSUNHbT6hqRnp-J-0G0CXOwLu_UKHW0LzT9CUw,38290
|
|
40
|
+
servalcat/refine/refine_spa.py,sha256=J6LS8efSQ6sHEp5VH4It8TT734CQ5SVknP5AiQW9p0U,17896
|
|
41
|
+
servalcat/refine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
servalcat/refine/spa.py,sha256=P_IkA291ocl92SpZ8Uagcab_Usqj2JzW8cAw_aCPmpg,6238
|
|
43
|
+
servalcat/refine/cgsolve.py,sha256=tHuWXr76x4sRAMUQ4dGVJzyHF_n1LiwKHTjAwh8iFMg,3072
|
|
44
|
+
servalcat/refine/refine_geom.py,sha256=GNVyll5LVoEmAzzenikg-nKjJXCtJ8B8Gd13q5nMtCk,10757
|
|
45
|
+
servalcat/refine/refine_xtal.py,sha256=tW4AC1O8esxls6MS6YMiya-R41-daIROGxZscLf2b4c,13843
|
|
@@ -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
|