servalcat 0.4.88__cp311-cp311-win_amd64.whl → 0.4.99__cp311-cp311-win_amd64.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/xtal/sigmaa.py CHANGED
@@ -30,6 +30,8 @@ def add_arguments(parser):
30
30
  parser.description = 'Sigma-A parameter estimation for crystallographic data'
31
31
  parser.add_argument('--hklin', required=True,
32
32
  help='Input MTZ file')
33
+ parser.add_argument('--spacegroup',
34
+ help='Override space group')
33
35
  parser.add_argument('--labin',
34
36
  help='MTZ column for F,SIGF,FREE')
35
37
  parser.add_argument('--free', type=int,
@@ -77,7 +79,7 @@ def calc_r_and_cc(hkldata, centric_and_selections, twin_data=None):
77
79
  has_int = "I" in hkldata.df
78
80
  has_free = "FREE" in hkldata.df
79
81
  stats = hkldata.binned_df.copy()
80
- stats["n_obs"] = 0
82
+ stats[["n_obs", "n_all"]] = 0
81
83
  if has_free:
82
84
  stats[["n_work", "n_free"]] = 0
83
85
  rlab = "R1" if has_int else "R"
@@ -105,6 +107,7 @@ def calc_r_and_cc(hkldata, centric_and_selections, twin_data=None):
105
107
 
106
108
  for i_bin, idxes in hkldata.binned():
107
109
  stats.loc[i_bin, "n_obs"] = numpy.sum(numpy.isfinite(obs[idxes]))
110
+ stats.loc[i_bin, "n_all"] = len(idxes)
108
111
  if has_free:
109
112
  for j, suf in ((1, "work"), (2, "free")):
110
113
  idxes2 = numpy.concatenate([sel[j] for sel in centric_and_selections[i_bin]])
@@ -1018,10 +1021,9 @@ def smooth_params(hkldata, D_labs, smoothing): # XXX twin_data
1018
1021
  # smooth_params()
1019
1022
 
1020
1023
  def expected_F_from_int(Io, sigIo, k_ani, DFc, eps, c, S):
1021
- if c == 0: # acentric
1022
- k_num, k_den = 0.5, 0.
1023
- else:
1024
- k_num, k_den = 0., -0.5
1024
+ k_num = numpy.repeat(0.5 if c == 0 else 0., Io.size) # 0.5 if acentric
1025
+ k_den = k_num - 0.5
1026
+ if numpy.isscalar(c): c = numpy.repeat(c, Io.size)
1025
1027
  to = Io / sigIo - sigIo / (c+1) / k_ani**2 / S / eps
1026
1028
  tf = k_ani * numpy.abs(DFc) / numpy.sqrt(sigIo)
1027
1029
  sig1 = k_ani**2 * S * eps / sigIo
@@ -1088,15 +1090,23 @@ def calculate_maps_twin(hkldata, b_aniso, fc_labs, D_labs, twin_data, centric_an
1088
1090
  Io[tohide] = numpy.nan
1089
1091
 
1090
1092
  twin_data.est_f_true(Io, sigIo)
1091
- F_true = numpy.asarray(twin_data.f_true_max)
1092
1093
  Ds = twin_data.ml_scale_array()
1093
1094
  DFc = (twin_data.f_calc * Ds).sum(axis=1)
1094
1095
  exp_ip = numpy.exp(numpy.angle(DFc)*1j)
1095
1096
  Ft = numpy.asarray(twin_data.f_true_max)
1096
1097
  m = twin_data.calc_fom()
1097
- fwt = numpy.where(numpy.asarray(twin_data.centric) == 0,
1098
- 2 * m * Ft * exp_ip - DFc, m * Ft * exp_ip)
1099
- delfwt = m * Ft * exp_ip - DFc
1098
+ Fexp = twin_data.expected_F(Io, sigIo)
1099
+ if 1:
1100
+ fwt = numpy.where(numpy.asarray(twin_data.centric) == 0,
1101
+ 2 * m * Ft * exp_ip - DFc,
1102
+ m * Ft * exp_ip)
1103
+ delfwt = m * Ft * exp_ip - DFc
1104
+ else: # based on "more accurate" evaluation of <m|F|>
1105
+ fwt = numpy.where(numpy.asarray(twin_data.centric) == 0,
1106
+ 2 * Fexp * exp_ip - DFc,
1107
+ m * Fexp * exp_ip)
1108
+ delfwt = Fexp * exp_ip - DFc
1109
+
1100
1110
  sel = numpy.isnan(fwt)
1101
1111
  fwt[sel] = DFc[sel]
1102
1112
 
@@ -1105,7 +1115,8 @@ def calculate_maps_twin(hkldata, b_aniso, fc_labs, D_labs, twin_data, centric_an
1105
1115
  hkldata2.df["FWT"] = fwt
1106
1116
  hkldata2.df["DELFWT"] = delfwt
1107
1117
  hkldata2.df["FOM"] = m
1108
- hkldata2.df["F_est"] = F_true
1118
+ hkldata2.df["F_est"] = Ft
1119
+ hkldata2.df["F_exp"] = Fexp
1109
1120
  hkldata2.df["FC"] = twin_data.f_calc.sum(axis=1)
1110
1121
  hkldata2.df["DFC"] = DFc
1111
1122
  hkldata2.df[D_labs] = Ds
@@ -1116,7 +1127,7 @@ def calculate_maps_twin(hkldata, b_aniso, fc_labs, D_labs, twin_data, centric_an
1116
1127
  def merge_models(sts): # simply merge models. no fix in chain ids etc.
1117
1128
  st2 = sts[0].clone()
1118
1129
  del st2[:]
1119
- model = gemmi.Model("1")
1130
+ model = gemmi.Model(1)
1120
1131
  for st in sts:
1121
1132
  for m in st:
1122
1133
  for c in m:
@@ -1153,7 +1164,7 @@ def decide_mtz_labels(mtz, find_free=True, require=None):
1153
1164
 
1154
1165
  def process_input(hklin, labin, n_bins, free, xyzins, source, d_max=None, d_min=None,
1155
1166
  n_per_bin=None, use="all", max_bins=None, cif_index=0, keep_charges=False,
1156
- allow_unusual_occupancies=False):
1167
+ allow_unusual_occupancies=False, space_group=None):
1157
1168
  if labin: assert 1 < len(labin) < 6
1158
1169
  assert use in ("all", "work", "test")
1159
1170
  assert n_bins or n_per_bin #if n_bins not set, n_per_bin should be given
@@ -1204,6 +1215,12 @@ def process_input(hklin, labin, n_bins, free, xyzins, source, d_max=None, d_min=
1204
1215
  if hkldata.df.empty:
1205
1216
  raise RuntimeError("No data in hkl data")
1206
1217
 
1218
+ if space_group is None:
1219
+ sg_use = None
1220
+ else:
1221
+ sg_use = gemmi.SpaceGroup(space_group)
1222
+ logger.writeln(f"Space group overridden by user. Using {sg_use.xhm()}")
1223
+
1207
1224
  if sts:
1208
1225
  assert source in ["electron", "xray", "neutron"]
1209
1226
  for st in sts:
@@ -1216,39 +1233,43 @@ def process_input(hklin, labin, n_bins, free, xyzins, source, d_max=None, d_min=
1216
1233
  for st in sts: st.cell = hkldata.cell # mtz cell is used in any case
1217
1234
 
1218
1235
  sg_st = sts[0].find_spacegroup() # may be None
1219
- sg_use = hkldata.sg
1220
- if hkldata.sg != sg_st:
1221
- if st.cell.is_crystal() and sg_st and sg_st.laue_str() != hkldata.sg.laue_str():
1222
- raise RuntimeError("Crystal symmetry mismatch between model and data")
1223
- logger.writeln("Warning: space group mismatch between model and mtz")
1224
- if sg_st and sg_st.laue_str() == hkldata.sg.laue_str():
1225
- logger.writeln(" using space group from model")
1226
- sg_use = sg_st
1227
- else:
1228
- logger.writeln(" using space group from mtz")
1229
- logger.writeln("")
1230
-
1236
+ if sg_use is None:
1237
+ sg_use = hkldata.sg
1238
+ if hkldata.sg != sg_st:
1239
+ if st.cell.is_crystal() and sg_st and sg_st.laue_str() != hkldata.sg.laue_str():
1240
+ raise RuntimeError("Crystal symmetry mismatch between model and data")
1241
+ logger.writeln("Warning: space group mismatch between model and mtz")
1242
+ if sg_st and sg_st.laue_str() == hkldata.sg.laue_str():
1243
+ logger.writeln(" using space group from model")
1244
+ sg_use = sg_st
1245
+ else:
1246
+ logger.writeln(" using space group from mtz")
1247
+ logger.writeln("")
1248
+
1231
1249
  for st in sts:
1232
1250
  st.spacegroup_hm = sg_use.xhm()
1233
1251
  st.setup_cell_images()
1234
- hkldata.sg = sg_use
1235
1252
 
1236
1253
  if not keep_charges:
1237
1254
  utils.model.remove_charge(sts)
1238
1255
  utils.model.check_atomsf(sts, source)
1239
1256
 
1257
+ if sg_use is not None:
1258
+ hkldata.sg = sg_use
1240
1259
  if newlabels[0] == "FP":
1241
1260
  hkldata.remove_nonpositive(newlabels[0])
1242
1261
  hkldata.remove_nonpositive(newlabels[1])
1243
1262
  hkldata.switch_to_asu()
1244
1263
  hkldata.remove_systematic_absences()
1245
1264
  #hkldata.df = hkldata.df.astype({name: 'float64' for name in ["I","SIGI","FP","SIGFP"] if name in hkldata.df})
1246
-
1265
+ d_min_data = hkldata.d_min_max(newlabels)[0]
1266
+ if d_min is None and hkldata.d_min_max()[0] != d_min_data:
1267
+ d_min = d_min_data
1268
+ logger.writeln(f"Changing resolution to {d_min:.3f} A")
1247
1269
  if (d_min, d_max).count(None) != 2:
1248
1270
  hkldata = hkldata.copy(d_min=d_min, d_max=d_max)
1249
1271
  if hkldata.df.empty:
1250
1272
  raise RuntimeError("No data left in hkl data")
1251
- d_min, d_max = hkldata.d_min_max()
1252
1273
 
1253
1274
  hkldata.complete()
1254
1275
  hkldata.sort_by_resolution()
@@ -1527,7 +1548,8 @@ def main(args):
1527
1548
  n_per_bin=n_per_bin,
1528
1549
  use=args.use,
1529
1550
  max_bins=30,
1530
- keep_charges=args.keep_charges)
1551
+ keep_charges=args.keep_charges,
1552
+ space_group=args.spacegroup)
1531
1553
  except RuntimeError as e:
1532
1554
  raise SystemExit("Error: {}".format(e))
1533
1555
 
@@ -1597,7 +1619,7 @@ def main(args):
1597
1619
 
1598
1620
  # Write mtz file
1599
1621
  if twin_data:
1600
- labs = ["F_est"]
1622
+ labs = ["F_est", "F_exp"]
1601
1623
  elif is_int:
1602
1624
  labs = ["I", "SIGI"]
1603
1625
  else:
@@ -1613,7 +1635,7 @@ def main(args):
1613
1635
  labs.append("F_true_est")
1614
1636
  labs += D_labs + ["S"]
1615
1637
  mtz_out = args.output_prefix+".mtz"
1616
- hkldata.write_mtz(mtz_out, labs=labs, types={"FOM": "W", "FP":"F", "SIGFP":"Q", "F_est": "F"})
1638
+ hkldata.write_mtz(mtz_out, labs=labs, types={"FOM": "W", "FP":"F", "SIGFP":"Q", "F_est": "F", "F_exp": "F"})
1617
1639
  return hkldata
1618
1640
  # main()
1619
1641
  if __name__ == "__main__":
servalcat/xtal/twin.py CHANGED
@@ -23,7 +23,7 @@ def find_twin_domains_from_data(hkldata, max_oblique=5, min_alpha=0.05):
23
23
  if not ops:
24
24
  return
25
25
  twin_data = ext.TwinData()
26
- twin_data.setup(hkldata.miller_array().to_numpy(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
26
+ twin_data.setup(hkldata.miller_array(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
27
27
  if "I" in hkldata.df:
28
28
  Io = hkldata.df.I.to_numpy()
29
29
  else:
@@ -37,14 +37,17 @@ def find_twin_domains_from_data(hkldata, max_oblique=5, min_alpha=0.05):
37
37
  for i_op, op in enumerate(ops):
38
38
  ii = numpy.array(twin_data.pairs(i_op, i_bin))
39
39
  val = numpy.all(numpy.isfinite(Io[ii]), axis=1)
40
- cc = numpy.corrcoef(Io[ii][val].T)[0,1]
40
+ if numpy.sum(val) == 0:
41
+ cc = numpy.nan
42
+ else:
43
+ cc = numpy.corrcoef(Io[ii][val].T)[0,1]
41
44
  rr = (1 - numpy.sqrt(1 - cc**2)) / cc
42
45
  ratios.append(rr)
43
46
  ccs[-1].append(cc)
44
47
  nums[-1].append(len(val))
45
- alphas.append(numpy.array(ratios) / sum(ratios))
48
+ alphas.append(numpy.array(ratios) / numpy.nansum(ratios))
46
49
  alphas = numpy.maximum(0, numpy.mean(alphas, axis=0))
47
- alphas /= numpy.sum(alphas)
50
+ alphas /= numpy.nansum(alphas)
48
51
  ccs = numpy.array(ccs)
49
52
  nums = numpy.array(nums)
50
53
  tmp = [{"Operator": gemmi.Op().triplet(),
@@ -54,7 +57,10 @@ def find_twin_domains_from_data(hkldata, max_oblique=5, min_alpha=0.05):
54
57
  for i_op, op in enumerate(ops):
55
58
  ii = numpy.array(twin_data.pairs(i_op))
56
59
  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])
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])
58
64
  tmp.append({"Operator": op.triplet(),
59
65
  "CC_mean": numpy.sum(nums[:,i_op] * ccs[:,i_op]) / numpy.sum(nums[:,i_op]),
60
66
  "R_twin_obs": r_obs,
@@ -77,7 +83,7 @@ def find_twin_domains_from_data(hkldata, max_oblique=5, min_alpha=0.05):
77
83
  "Alpha": alphas})
78
84
  logger.writeln(df.to_string(float_format="%.2f"))
79
85
  twin_data = ext.TwinData()
80
- twin_data.setup(hkldata.miller_array().to_numpy(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
86
+ twin_data.setup(hkldata.miller_array(), hkldata.df.bin, hkldata.sg, hkldata.cell, ops)
81
87
  twin_data.alphas = alphas
82
88
  if "I" not in hkldata.df:
83
89
  logger.writeln('Generating "observed" intensities for twin refinement: Io = Fo**2, SigIo = 2*F*SigFo')
@@ -1,16 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: servalcat
3
- Version: 0.4.88
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.7
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.6.7
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.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.
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/__init__.py,sha256=HJt3p1jXzt-hnlShh1LfxHF3WRNM7hyk1FY-B4EqExc,241
2
+ servalcat/__main__.py,sha256=XUM193aDwZAEQY02VzvZasAzD6AYEM-_A4wqy93KDWE,4190
3
+ servalcat/ext.cp311-win_amd64.pyd,sha256=np_8MkPh1MRhyQTE0KmWptpYz6RoE0OiM0s0P5TCdJY,1335296
4
+ servalcat/refine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ servalcat/refine/cgsolve.py,sha256=Xz7EwGI-mr4nnbfARyfFjAqbJbPWGH9qNWQ0GpltDuc,3172
6
+ servalcat/refine/refine.py,sha256=P6epHQZLpz3Tl2fuGrdCp6WOxuzvik7YJJTBsd4zuHg,44941
7
+ servalcat/refine/refine_geom.py,sha256=RMfhmBb-jlSFZoMhV3QONev9U2ZuHuPyjSslhECMYXo,11585
8
+ servalcat/refine/refine_spa.py,sha256=BFoJPNhyLVUWl2U2aDufkRJheYmzhnP4iEdE9DZ5JWc,19528
9
+ servalcat/refine/refine_xtal.py,sha256=kI6oqE2u8E82KUqk6zg4Y9JVLC2PIE9LG227rXWlYM8,15017
10
+ servalcat/refine/spa.py,sha256=7aYSnSty0fSe46P_RQ79Bd_8RwD88k3uAaLHVsz6yHc,6616
11
+ servalcat/refine/xtal.py,sha256=qusNpwRdBie9pnHol_NTDgou08reuiERWBujyhREFbc,14893
12
+ servalcat/refmac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ servalcat/refmac/exte.py,sha256=LRPej2yCZ4RoWJnEQldILEiUED6S_w1lgutWAdhu9_o,9201
14
+ servalcat/refmac/refmac_keywords.py,sha256=WPLDQdk91i5yKZ0QcfaTQ6qL-_qBv7_91eUv4Is9j54,27288
15
+ servalcat/refmac/refmac_wrapper.py,sha256=7FuYyWqN1UvSilFECWOSmWmYObXFLvO49PWkRbwBPHQ,18233
16
+ servalcat/spa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ servalcat/spa/fofc.py,sha256=DONPNvHPP9odKGNekpo781D_skjReUEytQ1wHBJxGwc,23592
18
+ servalcat/spa/fsc.py,sha256=Rszx-zzJiX5iSY-Qp6q5uCrEhE3a5eyW-m_szT5itLA,17839
19
+ servalcat/spa/localcc.py,sha256=FJMXiC0Po5eb1Le404mgNDj9VcxH5CRR9F5B7uDZn5w,8173
20
+ servalcat/spa/realspcc_from_var.py,sha256=x3NaqGKpGmQyh3qp-SJ9kTA_hP2EvxBOIszYbV2EPKk,5403
21
+ servalcat/spa/run_refmac.py,sha256=bHSj-8_RLdrfHTCyNWoMtXsrNT37AfpONZ8D3jR01ZE,50527
22
+ servalcat/spa/shift_maps.py,sha256=G_EddBcdyncl2bhW7I-4YF0ZFtX9Q95a2SIJ9rpPeR4,13561
23
+ servalcat/spa/shiftback.py,sha256=EtITj8Nllz-MWE6oJrxruDWeT0q7tS3RXCKtpWMuHNg,4801
24
+ servalcat/spa/translate.py,sha256=PGf1vHh_b_mxDta_CAghY7QBRVPzHSaGLDhrnafqCdA,5228
25
+ servalcat/utils/__init__.py,sha256=4umrD2fhG1QAQppDBQM95-6y8QYbtxr7Mi_-Nkc3XOA,1172
26
+ servalcat/utils/commands.py,sha256=fEWF6HesIAuxnzbaKAPws_QaIPxJUQc6DVthHeex_Vk,72503
27
+ servalcat/utils/fileio.py,sha256=3fyHTQ62sibP3cUYtX8D9G7cC6qelkfPKnbA47MqPOo,30246
28
+ servalcat/utils/generate_operators.py,sha256=fCrcTcciRn-6fpFtHYvf1oPXAObjuqR3WQejz5d0RrA,10980
29
+ servalcat/utils/hkl.py,sha256=sMaXJprnceVLDHWfwPSTWmbVbAJEPfj86tF3C0S2g_o,28776
30
+ servalcat/utils/logger.py,sha256=VXSkn54Rp2dxnCQ-Smb5T0NZqysvw8GGb4bKyA8Vuig,4729
31
+ servalcat/utils/maps.py,sha256=1Gm54nEvPj4peCuo0Rx-8_gvRD1pr2qECq7U9N6mrVw,13570
32
+ servalcat/utils/model.py,sha256=YPqYNCPZrbtUPbtMROQUA1RowEC7zrBlUvAEFNfoW5k,30959
33
+ servalcat/utils/refmac.py,sha256=dY92UZo2orgZJOEmPacCek8PMj-ydCp6-pR0rdsAVG8,31682
34
+ servalcat/utils/restraints.py,sha256=hclAJ3CKzIqeyC-I0rH8TSwikwQN1k8dUtYWKC0OAnU,37741
35
+ servalcat/utils/symmetry.py,sha256=PSSD-S_j_t1m4E9F8Fd9RJqTWyKf92zLCjSED7iXFkU,12164
36
+ servalcat/xtal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ servalcat/xtal/french_wilson.py,sha256=u4wzHuotO8-avPkhuEylg9WmMZYdGHYz1IvG07uqW3M,12045
38
+ servalcat/xtal/run_refmac_small.py,sha256=_Rw7wz7_yAlQgDqjJ_njeK6ZqN_r7KAakoor9WeNhxI,10634
39
+ servalcat/xtal/sigmaa.py,sha256=uF552XnFyaBKfN36c8ajMOxFGrW_r3p9FFQ4T5nB1wg,76970
40
+ servalcat/xtal/twin.py,sha256=gsDyyeC5jxsY8wepcB9lnNNPgVCvqlGVj9_kQZkkdWg,5021
41
+ servalcat-0.4.99.dist-info/METADATA,sha256=OxT6LeODHswv4-Yg1Xtv6pjkvHjriRcZNFfq5asJObs,2741
42
+ servalcat-0.4.99.dist-info/WHEEL,sha256=kXCl1J14PkmxQKXf5U_5vxmme_OmC3Ydcral7u0yA3M,106
43
+ servalcat-0.4.99.dist-info/entry_points.txt,sha256=G1mDxhOCdF3umYz4k0kfwJbSdYSKqhvQdGCmrP8FRAY,111
44
+ servalcat-0.4.99.dist-info/licenses/LICENSE,sha256=JoTeFzAOCkNGhvHsf4r2BFIHpLRXo_4EsrnOZV58XVA,17098
45
+ servalcat-0.4.99.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: scikit-build-core 0.10.6
2
+ Generator: scikit-build-core 0.10.7
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5
 
@@ -1,45 +0,0 @@
1
- servalcat/__init__.py,sha256=J-eWO5IStrvYxM0WSIzvvyPYYjxss2eHwjvBI0SHvTc,241
2
- servalcat/__main__.py,sha256=XUM193aDwZAEQY02VzvZasAzD6AYEM-_A4wqy93KDWE,4190
3
- servalcat/ext.cp311-win_amd64.pyd,sha256=bbcmR2_siHbx1spn6lxF9qBeWPlbSDbqqbnUPI6hjvY,2034688
4
- servalcat/refine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- servalcat/refine/cgsolve.py,sha256=Xz7EwGI-mr4nnbfARyfFjAqbJbPWGH9qNWQ0GpltDuc,3172
6
- servalcat/refine/refine.py,sha256=dnpIICEbhUehxuQXoJGuvYfvVGFAIAYp4pWZO5RT-Qs,39113
7
- servalcat/refine/refine_geom.py,sha256=z59FZdKL2Dll-VBKOVGd9xxz2WRjDF4XSa5fRdIAW3c,10977
8
- servalcat/refine/refine_spa.py,sha256=OFwyGV4JLYNh-xcRh9ate-bpDZ11YKEm0nPdK0YbFRM,18241
9
- servalcat/refine/refine_xtal.py,sha256=oLEmdFeVDB4UdzzghsSE7NkGDa3uyKcDF3sosp-vx_g,14111
10
- servalcat/refine/spa.py,sha256=uc3kFLVMlFT_EaSjzOWZ4tx9XzGcPswffSW1PZd1i5Q,6374
11
- servalcat/refine/xtal.py,sha256=CP71Ga3enWjJoW4u8xibtv9RJYah7MFmiwpROkrJR30,14657
12
- servalcat/refmac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- servalcat/refmac/exte.py,sha256=LRPej2yCZ4RoWJnEQldILEiUED6S_w1lgutWAdhu9_o,9201
14
- servalcat/refmac/refmac_keywords.py,sha256=WPLDQdk91i5yKZ0QcfaTQ6qL-_qBv7_91eUv4Is9j54,27288
15
- servalcat/refmac/refmac_wrapper.py,sha256=ku6oNdUDJGXSjQFpPaaDM4vBbbNTIoFHzMOsz-Ahdyg,18533
16
- servalcat/spa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- servalcat/spa/fofc.py,sha256=Ztg7RCmq7_fdnwZbjQAV3C1VgYaDVXof04CN9ZHX_SU,23235
18
- servalcat/spa/fsc.py,sha256=vsHDKfQpkHHhklTVP4Le_4Ry26Xg5a--wIIqWKrrGlI,17806
19
- servalcat/spa/localcc.py,sha256=FJMXiC0Po5eb1Le404mgNDj9VcxH5CRR9F5B7uDZn5w,8173
20
- servalcat/spa/realspcc_from_var.py,sha256=x3NaqGKpGmQyh3qp-SJ9kTA_hP2EvxBOIszYbV2EPKk,5403
21
- servalcat/spa/run_refmac.py,sha256=vfCLoN__6PM-c8cdx9tIZ4KzNjGwVR-f6XQedtSlGsU,50168
22
- servalcat/spa/shift_maps.py,sha256=G_EddBcdyncl2bhW7I-4YF0ZFtX9Q95a2SIJ9rpPeR4,13561
23
- servalcat/spa/shiftback.py,sha256=EtITj8Nllz-MWE6oJrxruDWeT0q7tS3RXCKtpWMuHNg,4801
24
- servalcat/spa/translate.py,sha256=8Cwxvxb_Ooi14ZcBaGu2xky0IFS92PHWzCzEDS6u2vY,5220
25
- servalcat/utils/__init__.py,sha256=4umrD2fhG1QAQppDBQM95-6y8QYbtxr7Mi_-Nkc3XOA,1172
26
- servalcat/utils/commands.py,sha256=7tE6fr8NZ7NR7-sIMU4YztU5aFb72ZApdLQ_q2x_IMk,65434
27
- servalcat/utils/fileio.py,sha256=mIcwHVZkUNeUzYrlHAK9JZ2mk2KMGt7eu4Y_1MCskII,29822
28
- servalcat/utils/generate_operators.py,sha256=fCrcTcciRn-6fpFtHYvf1oPXAObjuqR3WQejz5d0RrA,10980
29
- servalcat/utils/hkl.py,sha256=w11Y8vK5w5Kv6RoW3neDk9irwp8MSDOdXaSugj3NzYg,28882
30
- servalcat/utils/logger.py,sha256=2XKMrcc-COGBscVsLNqY9VEHN-AEJW_qFc8xJxs7W7U,3944
31
- servalcat/utils/maps.py,sha256=UXOGPr-uELKiHCbm6OHNBzTALpfDxm1TZFQjYFOQzcw,13562
32
- servalcat/utils/model.py,sha256=UdnKyVhVbPzVhWYXvLhY0DITbdAQkmECYDnEll7unw8,31054
33
- servalcat/utils/refmac.py,sha256=NlpvU9Sk4VhK0We9eN6OCsC9gxZgjU8Lpwxekw23R_A,31681
34
- servalcat/utils/restraints.py,sha256=djrGTrcaMddPrfJVsQSCmOpo5Eqh2PUPks8dgStckIc,37693
35
- servalcat/utils/symmetry.py,sha256=vDzGPza7PhmohTNf6OPTsMyUHvHJx7CEyl5Ob8OhukY,12232
36
- servalcat/xtal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- servalcat/xtal/french_wilson.py,sha256=fAGbAeWUri83ELmzIdldsK1cMp1G_oACHq2Mv5LUTlg,11912
38
- servalcat/xtal/run_refmac_small.py,sha256=_Rw7wz7_yAlQgDqjJ_njeK6ZqN_r7KAakoor9WeNhxI,10634
39
- servalcat/xtal/sigmaa.py,sha256=8yQREli__FXR4FJprdg-Y-4zzqQMaRW86o53KDFFgPA,75807
40
- servalcat/xtal/twin.py,sha256=Gf7mmm3dHvrZBSjj-6CaRqnnJHMlWJb-dzJAopZjc8Q,4856
41
- servalcat-0.4.88.dist-info/METADATA,sha256=B0VVGu-KUJy9euhZEeDrZ_mIlwvMBeKh3e8Pz8zm_ww,2741
42
- servalcat-0.4.88.dist-info/WHEEL,sha256=C1LJSxOQyFOX7BTwDufPTiPDOX7R37UjfqzhMFpA3pY,106
43
- servalcat-0.4.88.dist-info/entry_points.txt,sha256=G1mDxhOCdF3umYz4k0kfwJbSdYSKqhvQdGCmrP8FRAY,111
44
- servalcat-0.4.88.dist-info/licenses/LICENSE,sha256=JoTeFzAOCkNGhvHsf4r2BFIHpLRXo_4EsrnOZV58XVA,17098
45
- servalcat-0.4.88.dist-info/RECORD,,