Package test_suite :: Package system_tests :: Module peak_lists
[hide private]
[frames] | no frames]

Source Code for Module test_suite.system_tests.peak_lists

  1  ############################################################################### 
  2  #                                                                             # 
  3  # Copyright (C) 2008-2013 Edward d'Auvergne                                   # 
  4  # Copyright (C) 2008 Sebastien Morin                                          # 
  5  # Copyright (C) 2013 Troels E. Linnet                                         # 
  6  #                                                                             # 
  7  # This file is part of the program relax (http://www.nmr-relax.com).          # 
  8  #                                                                             # 
  9  # This program is free software: you can redistribute it and/or modify        # 
 10  # it under the terms of the GNU General Public License as published by        # 
 11  # the Free Software Foundation, either version 3 of the License, or           # 
 12  # (at your option) any later version.                                         # 
 13  #                                                                             # 
 14  # This program is distributed in the hope that it will be useful,             # 
 15  # but WITHOUT ANY WARRANTY; without even the implied warranty of              # 
 16  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # 
 17  # GNU General Public License for more details.                                # 
 18  #                                                                             # 
 19  # You should have received a copy of the GNU General Public License           # 
 20  # along with this program.  If not, see <http://www.gnu.org/licenses/>.       # 
 21  #                                                                             # 
 22  ############################################################################### 
 23   
 24  # Python module imports. 
 25  from os import sep 
 26   
 27  # relax module imports. 
 28  from data_store import Relax_data_store; ds = Relax_data_store() 
 29  import dep_check 
 30  from pipe_control.mol_res_spin import spin_loop 
 31  from status import Status; status = Status() 
 32  from test_suite.system_tests.base_classes import SystemTestCase 
 33   
 34   
35 -class Peak_lists(SystemTestCase):
36 """TestCase class for the functional tests for the support of different peak intensity files.""" 37
38 - def __init__(self, methodName='runTest'):
39 """Skip the tests if the C modules are non-functional. 40 41 @keyword methodName: The name of the test. 42 @type methodName: str 43 """ 44 45 # Execute the base class method. 46 super(Peak_lists, self).__init__(methodName) 47 48 # Missing module. 49 if not dep_check.C_module_exp_fn and methodName in ['test_bug_17276_peak_lists', 'test_bug_20873_peak_lists', 'test_ccpn_analysis']: 50 # Store in the status object. 51 status.skipped_tests.append([methodName, 'Relax curve-fitting C module', self._skip_type])
52 53
54 - def setUp(self):
55 """Set up for all the functional tests.""" 56 57 # Create a data pipe. 58 self.interpreter.pipe.create('mf', 'mf')
59 60
62 """Test catching U{bug #17276<https://web.archive.org/web/https://gna.org/bugs/?17276>}, the duplicated peak list reading failure submitted by Leanne Minall.""" 63 64 # Execute the script. 65 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'bug_17276_peak_lists.py')
66 67
69 """Test catching U{bug #20873<https://web.archive.org/web/https://gna.org/bugs/?20873>}, the custom peak intensity reading with a list of spectrum_ids submitted by Troels E. Linnet.""" 70 71 # The path to the files. 72 path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists' 73 74 # First create a data pipe. 75 self.interpreter.pipe.create(pipe_name='origin rx', pipe_type='relax_fit', bundle='rx') 76 77 # Load the spin systems. 78 self.interpreter.sequence.read(file='test.seq', dir=path, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, sep=None, spin_id=None) 79 80 # Load the intensities. 81 self.interpreter.spectrum.read_intensities(file='test.seq', dir=path, spectrum_id=['2', '0'], dim=1, int_method='height', int_col=[6, 7], spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, sep=None, spin_id=None, ncproc=None) 82 83 # The peak intensities. 84 data_2 = [337765.90000000002, 1697771.0, 867389.80000000005, 2339480.0, 2574062.0, 1609356.0, 2179341.0, 1563795.0, 1535896.0, 3578841.0] 85 data_0 = [636244.59999999998, 3015788.0, 1726064.0, 4039142.0, 4313824.0, 2927111.0, 4067343.0, 2921316.0, 3005234.0, 6352595.0] 86 87 # Data checks. 88 for i in range(len(cdp.mol[0].res)): 89 # Alias the spin. 90 spin = cdp.mol[0].res[i].spin[0] 91 92 # The intensities. 93 self.assertEqual(spin.intensities['0'], data_0[i]) 94 self.assertEqual(spin.intensities['2'], data_2[i])
95 96
97 - def test_ccpn_analysis(self):
98 """Test U{bug #17341<https://web.archive.org/web/https://gna.org/bugs/index.php?17341>}, the CCPN Analysis 2.1 peak list reading submitted by Madeleine Strickland.""" 99 100 # Execute the script. 101 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'peak_lists'+sep+'ccpn_analysis.py') 102 103 # Spectrum names. 104 names = ['T1A_0010', 'T1A_0020', 'T1A_0030', 'T1A_0050', 'T1A_0070', 'T1A_0100', 'T1A_0150', 'T1A_0200', 'T1A_0300', 'T1A_0400', 'T1A_0600', 'T1A_0800', 'T1A_1000', 'T1A_1200'] 105 106 # Relaxation times (in seconds). 107 times = [0.01, 0.02, 0.03, 0.05, 0.07, 0.1, 0.15, 0.2, 0.3, 0.4, 0.6, 0.8, 1.0, 1.2] 108 109 # Check the spectrum IDs and relaxation times. 110 for i in range(len(times)): 111 self.assertEqual(cdp.spectrum_ids[i], names[i]) 112 self.assertEqual(cdp.relax_times[names[i]], times[i]) 113 114 # The peak heights. 115 heights = [ 116 [1.41e06, 1.33e06, 1.31e06, 1.31e06, 1.28e06, 1.20e06, 1.18e06, 1.07e06, 9.70e05, 8.47e05, 7.00e05, 5.25e05, 4.23e05, 3.10e05], 117 [1.79e06, 1.76e06, 1.71e06, 1.70e06, 1.66e06, 1.56e06, 1.51e06, 1.41e06, 1.24e06, 1.11e06, 8.43e05, 6.79e05, 5.04e05, 4.18e05] 118 ] 119 120 # Check the heights. 121 for spin, mol_name, res_num, res_name in spin_loop(full_info=True): 122 # The data. 123 if res_num == 1501: 124 index = 0 125 elif res_num == 1504: 126 index = 1 127 128 # No data. 129 else: 130 # There should be no intensity data. 131 self.assert_(not hasattr(spin, 'intensities')) 132 133 # Do not perform the height checks. 134 continue 135 136 # Check the data. 137 self.assert_(hasattr(spin, 'intensities')) 138 139 # Check the values. 140 for i in range(len(times)): 141 self.assertEqual(spin.intensities[names[i]], heights[index][i])
142 143
145 """Test the reading of a generic peak intensity list.""" 146 147 # Create the sequence data, and name the spins. 148 self.interpreter.residue.create(20, 'GLY') 149 self.interpreter.residue.create(23, 'ALA') 150 self.interpreter.residue.create(34, 'CYS') 151 self.interpreter.residue.create(35, 'MET') 152 self.interpreter.residue.create(36, 'LYS') 153 self.interpreter.spin.name(name='N') 154 155 # Relaxation delays. 156 delays = [0.0109016, 157 0.0218032, 158 0.0436064, 159 0.0436064, 160 0.0872128, 161 0.1744260, 162 0.3488510, 163 0.6977020, 164 1.3954000, 165 1.9949900] 166 167 # Load the data. 168 for i in range(10): 169 # Read the peak intensities. 170 self.interpreter.spectrum.read_intensities(file="generic_intensity.txt", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id=repr(i), int_method='height', int_col=i+3, res_num_col=1, res_name_col=2) 171 172 # Set the relaxation times. 173 self.interpreter.relax_fit.relax_time(time=delays[i], spectrum_id=repr(i)) 174 175 # The actual intensities. 176 heights = [[1.0000, 0.9714, 0.9602, 0.9626, 0.8839, 0.8327, 0.7088, 0.5098, 0.2410, 0.1116], 177 [1.0000, 0.9789, 0.9751, 0.9762, 0.9074, 0.8532, 0.7089, 0.5170, 0.2444, 0.1537], 178 [1.0000, 0.9659, 0.9580, 0.9559, 0.9325, 0.8460, 0.7187, 0.5303, 0.2954, 0.1683], 179 [1.0000, 0.9657, 0.9389, 0.9366, 0.9331, 0.8683, 0.7169, 0.5357, 0.2769, 0.1625], 180 [1.0000, 1.0060, 0.9556, 0.9456, 0.9077, 0.8411, 0.6788, 0.4558, 0.2448, 0.1569] 181 ] 182 183 # Test the data. 184 for i in range(10): 185 for j in range(5): 186 self.assertEqual(cdp.mol[0].res[j].spin[0].intensities[repr(i)], heights[j][i])
187 188
190 """Test the reading of an NMRView peak list.""" 191 192 # Create the sequence data, and name the spins. 193 self.interpreter.residue.create(70) 194 self.interpreter.residue.create(72) 195 self.interpreter.spin.name(name='N') 196 197 # Read the peak list. 198 self.interpreter.spectrum.read_intensities(file="cNTnC.xpk", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 199 200 # Test the data. 201 self.assertEqual(list(cdp.mol[0].res[0].spin[0].intensities.values())[0], -0.1694) 202 self.assertEqual(list(cdp.mol[0].res[1].spin[0].intensities.values())[0], -0.1142)
203 204
206 """Test the reading of an NMRPipe seriesTab peak list.""" 207 208 # Create the sequence data, and name the spins. 209 self.interpreter.residue.create(res_num = 62) 210 self.interpreter.spin.name(name='NE1', spin_id=':62') 211 self.interpreter.residue.create(res_num = 10) 212 self.interpreter.spin.name(name='N', spin_id=':10') 213 self.interpreter.residue.create(res_num = 6) 214 self.interpreter.spin.name(name='N', spin_id=':6') 215 216 # Read the peak list. 217 self.interpreter.spectrum.read_intensities(file="seriesTab.ser", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='point sum') 218 219 # Test the data. 220 self.assertEqual(cdp.mol[0].res[0].spin[0].intensities['test'], +1.851056e+06) 221 self.assertEqual(cdp.mol[0].res[1].spin[0].intensities['test'], +3.224387e+05) 222 self.assertEqual(cdp.mol[0].res[2].spin[0].intensities['test'], +1.479366e+06)
223 224
226 """Test the reading of an NMRPipe seriesTab peak list.""" 227 228 # Create the sequence data, and name the spins. 229 self.interpreter.residue.create(res_num = 2) 230 self.interpreter.spin.name(name='N', spin_id=':2') 231 self.interpreter.residue.create(res_num = 3) 232 self.interpreter.spin.name(name='N', spin_id=':3') 233 self.interpreter.residue.create(res_num = 4) 234 self.interpreter.spin.name(name='N', spin_id=':4') 235 self.interpreter.residue.create(res_num = 5) 236 self.interpreter.spin.name(name='N', spin_id=':5') 237 self.interpreter.residue.create(res_num = 6) 238 self.interpreter.spin.name(name='N', spin_id=':6') 239 240 # Read the peak list. 241 self.interpreter.spectrum.read_intensities(file="seriesTab_multi.ser", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='auto', int_method='point sum') 242 243 # Test the data. 244 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A0'], 1179448.0) 245 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A0'], 4407306.0) 246 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A0'], 3480382.0) 247 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A0'], 4306408.0) 248 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A0'], 3454030.0) 249 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A1'], 1411799.256) 250 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A1'], 5263645.5558) 251 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A1'], 4159404.5282) 252 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A1'], 5147018.8416) 253 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A1'], 4132401.492) 254 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A2'], 1411209.532) 255 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A2'], 5262764.0946) 256 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A2'], 4159404.5282) 257 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A2'], 5147018.8416) 258 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A2'], 4133092.298) 259 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A3'], 1408496.8016) 260 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A3'], 5264527.017) 261 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A3'], 4162536.872) 262 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A3'], 5146588.2008) 263 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A3'], 4134128.507) 264 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A4'], 1411327.4768) 265 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A4'], 5258797.5192) 266 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A4'], 4163232.9484) 267 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A4'], 5162952.5512) 268 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A4'], 4119966.984) 269 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A5'], 1414040.2072) 270 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A5'], 5275104.5514) 271 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A5'], 4150703.5732) 272 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A5'], 5151755.8904) 273 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A5'], 4128947.462) 274 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A6'], 1406727.6296) 275 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A6'], 5265849.2088) 276 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A6'], 4158360.4136) 277 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A6'], 5149172.0456) 278 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A6'], 4130674.477) 279 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A7'], 1415691.4344) 280 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A7'], 5267171.4006) 281 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A7'], 4144438.8856) 282 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A7'], 5137114.1032) 283 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A7'], 4127911.253) 284 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A8'], 1401184.224) 285 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A8'], 5264527.017) 286 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A8'], 4149659.4586) 287 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A8'], 5144004.356) 288 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A8'], 4133783.104) 289 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].intensities['Z_A9'], 1415573.4896) 290 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].intensities['Z_A9'], 5261882.6334) 291 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].intensities['Z_A9'], 4138870.2744) 292 self.assertAlmostEqual(cdp.mol[0].res[3].spin[0].intensities['Z_A9'], 5123764.2384) 293 self.assertAlmostEqual(cdp.mol[0].res[4].spin[0].intensities['Z_A9'], 4128602.059)
294 295
297 """Test the reading of an Sparky peak list.""" 298 299 # Create the sequence data, and name the spins. 300 self.interpreter.residue.create(3) 301 self.interpreter.residue.create(4) 302 self.interpreter.residue.create(5) 303 self.interpreter.residue.create(6) 304 self.interpreter.spin.name(name='N') 305 306 # Read the peak list. 307 self.interpreter.spectrum.read_intensities(file="ref_ave.list", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 308 309 # Test the data. 310 self.assertEqual(list(cdp.mol[0].res[0].spin[0].intensities.values())[0], 6262) 311 self.assertEqual(list(cdp.mol[0].res[1].spin[0].intensities.values())[0], 148614) 312 self.assertEqual(list(cdp.mol[0].res[2].spin[0].intensities.values())[0], 166842) 313 self.assertEqual(list(cdp.mol[0].res[3].spin[0].intensities.values())[0], 128690)
314 315
317 """Test the reading of an XEasy peak list.""" 318 319 # Create the sequence data, and name the spins. 320 self.interpreter.residue.create(15) 321 self.interpreter.residue.create(21) 322 self.interpreter.residue.create(22) 323 self.interpreter.residue.create(29) 324 self.interpreter.residue.create(52) 325 self.interpreter.residue.create(69) 326 self.interpreter.residue.create(70) 327 self.interpreter.residue.create(73) 328 self.interpreter.residue.create(79) 329 self.interpreter.residue.create(84) 330 self.interpreter.residue.create(87) 331 self.interpreter.residue.create(95) 332 self.interpreter.residue.create(96) 333 self.interpreter.residue.create(100) 334 self.interpreter.residue.create(104) 335 self.interpreter.residue.create(107) 336 self.interpreter.residue.create(110) 337 self.interpreter.residue.create(112) 338 self.interpreter.residue.create(120) 339 self.interpreter.residue.create(141) 340 self.interpreter.residue.create(165) 341 self.interpreter.spin.name(name='N') 342 343 # Read the peak list. 344 self.interpreter.spectrum.read_intensities(file="xeasy_r1_20ms.text", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 345 346 # Test the data. 347 self.assertEqual(list(cdp.mol[0].res[ 0].spin[0].intensities.values())[0], 9.714e+03) 348 self.assertEqual(list(cdp.mol[0].res[ 1].spin[0].intensities.values())[0], 7.919e+03) 349 self.assertEqual(list(cdp.mol[0].res[ 2].spin[0].intensities.values())[0], 1.356e+04) 350 self.assertEqual(list(cdp.mol[0].res[ 3].spin[0].intensities.values())[0], 9.884e+03) 351 self.assertEqual(list(cdp.mol[0].res[ 4].spin[0].intensities.values())[0], 2.041e+04) 352 self.assertEqual(list(cdp.mol[0].res[ 5].spin[0].intensities.values())[0], 9.305e+03) 353 self.assertEqual(list(cdp.mol[0].res[ 6].spin[0].intensities.values())[0], 3.154e+04) 354 self.assertEqual(list(cdp.mol[0].res[ 7].spin[0].intensities.values())[0], 9.180e+03) 355 self.assertEqual(list(cdp.mol[0].res[ 9].spin[0].intensities.values())[0], 1.104e+04) 356 self.assertEqual(list(cdp.mol[0].res[10].spin[0].intensities.values())[0], 7.680e+03) 357 self.assertEqual(list(cdp.mol[0].res[11].spin[0].intensities.values())[0], 5.206e+03) 358 self.assertEqual(list(cdp.mol[0].res[12].spin[0].intensities.values())[0], 2.863e+04) 359 self.assertEqual(list(cdp.mol[0].res[14].spin[0].intensities.values())[0], 9.271e+03) 360 self.assertEqual(list(cdp.mol[0].res[15].spin[0].intensities.values())[0], 7.919e+03) 361 self.assertEqual(list(cdp.mol[0].res[16].spin[0].intensities.values())[0], 9.962e+03) 362 self.assertEqual(list(cdp.mol[0].res[17].spin[0].intensities.values())[0], 1.260e+04) 363 self.assertEqual(list(cdp.mol[0].res[18].spin[0].intensities.values())[0], 1.545e+04) 364 self.assertEqual(list(cdp.mol[0].res[19].spin[0].intensities.values())[0], 1.963e+04) 365 self.assertEqual(list(cdp.mol[0].res[20].spin[0].intensities.values())[0], 1.918e+04)
366 367
369 """Test the reading of an XEasy peak list (2).""" 370 371 # Create the sequence data, and name the spins. 372 self.interpreter.residue.create(79) 373 self.interpreter.spin.name(name='NE1') 374 375 # Read the peak list. 376 self.interpreter.spectrum.read_intensities(file="xeasy_r1_20ms.text", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 377 378 # Test the data. 379 self.assertEqual(list(cdp.mol[0].res[0].spin[0].intensities.values())[0], 1.532e+04)
380 381
383 """Test the reading of an XEasy peak list (3).""" 384 385 # Create the sequence data, and name the spins. 386 self.interpreter.residue.create(100) 387 self.interpreter.spin.name(name='C') 388 389 # Read the peak list. 390 self.interpreter.spectrum.read_intensities(file="xeasy_r1_20ms.text", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 391 392 # Test the data. 393 self.assertEqual(list(cdp.mol[0].res[0].spin[0].intensities.values())[0], 6.877e+03)
394 395
397 """Test the reading of an XEasy peak list (4).""" 398 399 # Create the sequence data, and name the spins. 400 self.interpreter.residue.create(107) 401 self.interpreter.spin.name(name='C') 402 403 # Read the peak list. 404 self.interpreter.spectrum.read_intensities(file="xeasy_r1_20ms.text", dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', spectrum_id='test', int_method='height') 405 406 # Test the data. 407 self.assertEqual(list(cdp.mol[0].res[0].spin[0].intensities.values())[0], 7.123e+03)
408