8. Backward Compatibility#

The legacy MOLASS program produces its analysis results in Excel books. We will explain here how to do the same in Molass Library.

8.1. Learning Points#

  • rgcurve = ssd.xr.compute_rgcurve()

  • ranges = decomposition.get_paired_ranges()

  • decomposition.plot_components(rgcurve=rgcurve, ranges=ranges)

  • rgcurve_atsas = ssd.xr.compute_rgcurve_atsas()

  • mapping = ssd.estimate_mapping()

  • conc_info = ssd.make_conc_info(mapping)

  • rg_info = rgcurve, rgcurve_atsas

  • make_v1report(ssd, conc_info=conc_info, rg_info=rg_info, lr_info=decomposition, ranges=ranges)

8.2. Preparation for the Report#

Although it is possible to do it as well without any preparation (that is, implicitly all by default), we will show explicitly what to prepare in the hope that it will better serve as explanation and can be easy to modify.

First, we will prepare rg curves and analysis ranges.

from molass import get_version
assert get_version() >= '0.7.0', "This script requires molass version 0.7.0 or higher."
from molass_data import SAMPLE1
from molass.DataObjects import SecSaxsData as SSD
ssd = SSD(SAMPLE1)
trimmed_ssd = ssd.trimmed_copy()
corrected_ssd = trimmed_ssd.corrected_copy()
decomposition = corrected_ssd.quick_decomposition(num_components=3)
plot5 = decomposition.plot_components(title="Decomposition of Sample1 (num_components=3)")
zeros at the angular ends of error data have been replaced with the adjacent values.
../../_images/1c5b6d69549cdd92b609022d7f87caa33fe1b9359a745a59f02eb25845fec3c4.png
rgcurve = corrected_ssd.xr.compute_rgcurve()
plot6 = decomposition.plot_components(title="Decomposition of Sample1 with Rg Curve", rgcurve=rgcurve)
100%|██████████| 241/241 [00:07<00:00, 32.73it/s]
../../_images/ab6405d3e88ef0513eb5196b2c3739671294cbf4cb30f1c6623dd9b7e8648427.png
pairedranges = decomposition.get_pairedranges()
plot8 = decomposition.plot_components(title="Decomposition of Sample1 with Rg Curve and Paired Ranges", rgcurve=rgcurve, pairedranges=pairedranges)
../../_images/998e4d5f683db251a1b7f5618d4a92fe309d700817313a451c635d57d82c31c4.png
rgcurve_atsas = corrected_ssd.xr.compute_rgcurve_atsas()
100%|██████████| 241/241 [00:36<00:00,  6.68it/s]

8.3. Making the Excel Report#

To make the report, we also need the concentration information which can be prepared as follows.

from molass.Reports.V1Report import make_v1report

rgcurves = rgcurve, rgcurve_atsas
make_v1report(corrected_ssd, rgcurves=rgcurves, decomposition=decomposition, ranges=pairedranges)
([1], (1, 1, True)):   0%|          | 0/31 [00:00<?, ?it/s]2025-10-15 11:14:26 Controller initialized with temp_folder=c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\.temp
2025-10-15 11:14:28 Progress unit 2 reported error at step 1.
([1], (1, 1, True)):   6%|▋         | 2/31 [00:01<00:19,  1.50it/s]
2025-10-15 11:14:52 excessive step_done call!
Saving Guinier Analysis Report to c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\.temp/--serial_analysis-temp.xlsx
2025-10-15 11:14:57 Decomposition.get_cd_color_info: xr_ranks is None, using default ranks.
2025-10-15 11:14:57 Starting LRF report generation...
2025-10-15 11:14:57 cnv_ranges=[PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119)), PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] from ranges_=[[(82, 89), (89, 98)], [(101, 119)], [(148, 157), (157, 166)]]
2025-10-15 11:14:59 Converting to Guinier result array...
2025-10-15 11:14:59 Conversion to Guinier result array completed.
2025-10-15 11:14:59 lrf executer has been constructed with conc_factor=8.155.
2025-10-15 11:14:59 ZeroExtrapolator: use_elution_models=True
2025-10-15 11:14:59 cnv_ranges=[PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119)), PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))], num_ranges=5
2025-10-15 11:14:59 lrf solver has been constructed with conc_factor 8.155, Rg=None.
2025-10-15 11:14:59 conc_depend has been set to 1
2025-10-15 11:14:59 lrf_bound_correction=1
2025-10-15 11:14:59 lrf solver has been constructed with conc_factor 8.155, Rg=None.
2025-10-15 11:14:59 conc_depend has been set to 1
2025-10-15 11:14:59 pno_map=[0, 1, 2], scd_colors=['green', 'green', 'green']
2025-10-15 11:14:59 range_indeces have been created as follows
2025-10-15 11:14:59 [0] [0, 82, 89]
2025-10-15 11:14:59 [1] [0, 89, 98]
2025-10-15 11:14:59 [2] [1, 101, 119]
2025-10-15 11:14:59 [3] [2, 148, 157]
2025-10-15 11:14:59 [4] [2, 157, 166]
2025-10-15 11:14:59 pfoot_indeces have been created as follows
2025-10-15 11:14:59 [0] [0, 73, 110]
2025-10-15 11:14:59 [1] [0, 73, 110]
2025-10-15 11:14:59 [2] [1, 92, 133]
2025-10-15 11:14:59 [3] [2, 137, 177]
2025-10-15 11:14:59 [4] [2, 137, 177]
2025-10-15 11:14:59 required_peakset_infos are created as follows
2025-10-15 11:14:59 [0] [0, 0, {0}]
2025-10-15 11:14:59 [1] [0, 0, {0, 1}]
2025-10-15 11:14:59 [2] [1, 1, {0, 1}]
2025-10-15 11:14:59 [3] [2, 0, {2}]
2025-10-15 11:14:59 [4] [2, 0, {2}]
2025-10-15 11:14:59 selected 0-th range has 1 element(s).
2025-10-15 11:14:59 solve_range called with lrf_rank=1
2025-10-15 11:14:59 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98))] with concentration_datatype=2
2025-10-15 11:14:59 C matrix data.shape is (1, 8)
2025-10-15 11:14:59 pno=0, nth=0, cdl_list=[1], use_elution_models=True
2025-10-15 11:14:59 SVD-reconstructed with rank=1 in range [82, 90).
2025-10-15 11:14:59 solving rank 1 factorization of M into P, C with shapes (984, 8) = (984, 1) @ (1, 8)
2025-10-15 11:14:59 solved with aq_smoothness=False, aq_positivity=False resulting into iterations=0
2025-10-15 11:14:59 selected 1-th range has 2 element(s).
2025-10-15 11:14:59 solve_range called with lrf_rank=1
2025-10-15 11:14:59 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119))] with concentration_datatype=2
2025-10-15 11:14:59 C matrix data.shape is (2, 10)
2025-10-15 11:14:59 pno=0, nth=0, cdl_list=[1, 1], use_elution_models=True
2025-10-15 11:14:59 SVD-reconstructed with rank=2 in range [89, 99).
2025-10-15 11:14:59 solving rank 2 factorization of M into P, C with shapes (984, 10) = (984, 2) @ (2, 10)
2025-10-15 11:14:59 solved with aq_smoothness=False, aq_positivity=False resulting into iterations=0
data.shape= (984, 241)
data.shape= (984, 241)
Optimization terminated successfully.
         Current function value: 0.000722
         Iterations: 0
         Function evaluations: 1
         Gradient evaluations: 1
It took  0.000997304916381836 num_iterations= 0
Optimization terminated successfully.
         Current function value: 0.000773
         Iterations: 0
         Function evaluations: 1
         Gradient evaluations: 1
It took  0.0019958019256591797 num_iterations= 0
2025-10-15 11:14:59 selected 2-th range has 2 element(s).
2025-10-15 11:14:59 solve_range called with lrf_rank=1
2025-10-15 11:14:59 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119))] with concentration_datatype=2
2025-10-15 11:14:59 C matrix data.shape is (2, 19)
2025-10-15 11:14:59 pno=1, nth=1, cdl_list=[1, 1], use_elution_models=True
2025-10-15 11:14:59 SVD-reconstructed with rank=2 in range [101, 120).
2025-10-15 11:14:59 solving rank 2 factorization of M into P, C with shapes (984, 19) = (984, 2) @ (2, 19)
2025-10-15 11:14:59 solved with aq_smoothness=False, aq_positivity=False resulting into iterations=0
2025-10-15 11:14:59 selected 3-th range has 1 element(s).
2025-10-15 11:14:59 solve_range called with lrf_rank=1
2025-10-15 11:14:59 creating C matrix in ranges [PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] with concentration_datatype=2
2025-10-15 11:14:59 C matrix data.shape is (1, 10)
2025-10-15 11:14:59 pno=2, nth=0, cdl_list=[1], use_elution_models=True
2025-10-15 11:15:00 SVD-reconstructed with rank=1 in range [148, 158).
2025-10-15 11:15:00 solving rank 1 factorization of M into P, C with shapes (984, 10) = (984, 1) @ (1, 10)
2025-10-15 11:15:00 solved with aq_smoothness=False, aq_positivity=False resulting into iterations=0
Optimization terminated successfully.
         Current function value: 0.001362
         Iterations: 0
         Function evaluations: 1
         Gradient evaluations: 1
It took  0.0029969215393066406 num_iterations= 0
Optimization terminated successfully.
         Current function value: 0.001140
         Iterations: 0
         Function evaluations: 1
         Gradient evaluations: 1
It took  0.002003908157348633 num_iterations= 0
2025-10-15 11:15:00 selected 4-th range has 1 element(s).
2025-10-15 11:15:00 solve_range called with lrf_rank=1
2025-10-15 11:15:00 creating C matrix in ranges [PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] with concentration_datatype=2
2025-10-15 11:15:00 C matrix data.shape is (1, 10)
2025-10-15 11:15:00 pno=2, nth=0, cdl_list=[1], use_elution_models=True
2025-10-15 11:15:00 SVD-reconstructed with rank=1 in range [157, 167).
2025-10-15 11:15:00 solving rank 1 factorization of M into P, C with shapes (984, 10) = (984, 1) @ (1, 10)
2025-10-15 11:15:00 solved with aq_smoothness=False, aq_positivity=False resulting into iterations=0
2025-10-15 11:15:00 selected 0-th range has 1 element(s).
2025-10-15 11:15:00 solve_range called with lrf_rank=2
2025-10-15 11:15:00 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98))] with concentration_datatype=2
2025-10-15 11:15:00 C matrix data.shape is (2, 8)
Optimization terminated successfully.
         Current function value: 0.000189
         Iterations: 0
         Function evaluations: 1
         Gradient evaluations: 1
It took  0.002003192901611328 num_iterations= 0
solver finished.
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
2025-10-15 11:15:04 BoundedLrfSolver solved range 82-90 with lrf_rank=2
2025-10-15 11:15:04 selected 1-th range has 2 element(s).
2025-10-15 11:15:04 solve_range called with lrf_rank=2
2025-10-15 11:15:04 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119))] with concentration_datatype=2
2025-10-15 11:15:04 C matrix data.shape is (4, 10)
c:\Program Files\Python312\Lib\site-packages\molass_legacy\Trimming\Sigmoid.py:14: RuntimeWarning: overflow encountered in exp
  return L/(1 + np.exp(-k*(x-x0))) + b
c:\Program Files\Python312\Lib\site-packages\molass_legacy\Trimming\Sigmoid.py:14: RuntimeWarning: overflow encountered in exp
  return L/(1 + np.exp(-k*(x-x0))) + b
c:\Program Files\Python312\Lib\site-packages\molass_legacy\Trimming\Sigmoid.py:14: RuntimeWarning: overflow encountered in exp
  return L/(1 + np.exp(-k*(x-x0))) + b
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
c:\Program Files\Python312\Lib\site-packages\molass_legacy\Trimming\Sigmoid.py:14: RuntimeWarning: overflow encountered in exp
  return L/(1 + np.exp(-k*(x-x0))) + b
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
2025-10-15 11:15:09 BoundedLrfSolver solved range 89-99 with lrf_rank=2
2025-10-15 11:15:09 selected 2-th range has 2 element(s).
2025-10-15 11:15:09 solve_range called with lrf_rank=2
2025-10-15 11:15:09 creating C matrix in ranges [PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98)), PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119))] with concentration_datatype=2
2025-10-15 11:15:09 C matrix data.shape is (4, 19)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
2025-10-15 11:15:13 BoundedLrfSolver solved range 101-120 with lrf_rank=2
2025-10-15 11:15:13 selected 3-th range has 1 element(s).
2025-10-15 11:15:13 solve_range called with lrf_rank=2
2025-10-15 11:15:13 creating C matrix in ranges [PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] with concentration_datatype=2
2025-10-15 11:15:13 C matrix data.shape is (2, 10)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
2025-10-15 11:15:17 BoundedLrfSolver solved range 148-158 with lrf_rank=2
2025-10-15 11:15:17 selected 4-th range has 1 element(s).
2025-10-15 11:15:17 solve_range called with lrf_rank=2
2025-10-15 11:15:17 creating C matrix in ranges [PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] with concentration_datatype=2
2025-10-15 11:15:17 C matrix data.shape is (2, 10)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
WARNING: Only 2 columns given. Data should have 3 columns: q, I, errors.
WARNING: Setting error bars to 1.0 (i.e., ignoring error bars)
2025-10-15 11:15:21 BoundedLrfSolver solved range 157-167 with lrf_rank=2
2025-10-15 11:15:21 [0-0] color=green, lrf_rank=1
2025-10-15 11:15:21 [2-3] color=green, lrf_rank=1
2025-10-15 11:15:21 ZeroExtrapolator: using LRF Ppol.
2025-10-15 11:15:21 extrapolating for [[[82, 89], [89, 98]], [[101, 119]], [[148, 157], [157, 166]]]
2025-10-15 11:15:21 extrapolation start for the 0th peak ad(0) with range (82, 89)
2025-10-15 11:15:21 Guinier boundary is assumed at Q[72]=0.0446.
2025-10-15 11:15:21 1st peak asc-side extrapolation done.
solver finished.
[0] [0, 0, PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98))] 2
[1] [0, 1, PairedRange(PeakInfo(0,89,'elm_recs'),(82, 89),(89, 98))] 2
[2] [1, 0, PairedRange(PeakInfo(1,109,'elm_recs'),(101, 119))] 1
[3] [2, 0, PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] 2
[4] [2, 1, PairedRange(PeakInfo(2,157,'elm_recs'),(148, 157),(157, 166))] 2
2025-10-15 11:15:24 1st peak asc-side atsas result: Rg=36.2128 I(0)=0.122869
2025-10-15 11:15:24 1st peak asc-side rg re-estimation done with extrapolated Rg=35.7 
  Concentration  Overlap    File
  1.30 / 1.7164    1 -  75  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00082_avg.dat
  1.43 / 1.4788   23 -  85  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00083_avg.dat
  1.55 / 1.3099   19 -  75  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00084_avg.dat
  1.65 / 1.1951   19 -  73  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00085_avg.dat
  1.73 / 1.0991   17 -  99  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00086_avg.dat
  1.78 / 1.0369   17 -  69  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00087_avg.dat
  1.78 / 0.9861   17 -  71  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00089_avg.dat
  1.79  (reference)         c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00088_avg.dat
2025-10-15 11:15:29 1st peak asc-side book done.
2025-10-15 11:15:32 1st peak asc-side atsas book done.
2025-10-15 11:15:32 extrapolation start for the 0th peak ad(1) with range (89, 98)
2025-10-15 11:15:32 Guinier boundary is assumed at Q[72]=0.0446.
2025-10-15 11:15:32 1st peak desc-side extrapolation done.
2025-10-15 11:15:36 1st peak desc-side atsas result: Rg=36.0713 I(0)=0.12399
2025-10-15 11:15:36 1st peak desc-side rg re-estimation done with extrapolated Rg=36 
  Concentration  Overlap    File
  1.00 / 1.6855    1 - 115  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00098_avg.dat
  1.07 / 1.5404    1 -  55  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00097_avg.dat
  1.14 / 1.4136    1 -  85  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00096_avg.dat
  1.25 / 1.2958    1 -  79  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00095_avg.dat
  1.34 / 1.2066    1 -  83  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00094_avg.dat
  1.45 / 1.1302    1 -  83  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00093_avg.dat
  1.54 / 1.0717   17 -  87  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00092_avg.dat
  1.64 / 1.0271    1 -  59  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00091_avg.dat
  1.71 / 1.0080    7 -  87  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00090_avg.dat
  1.78  (reference)         c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00089_avg.dat
2025-10-15 11:15:41 1st peak desc-side book done.
2025-10-15 11:15:44 1st peak desc-side atsas book done.
2025-10-15 11:15:46 1st peak overlay book done.
2025-10-15 11:15:46 extrapolation start for the 1st peak ad(0) with range (101, 119)
2025-10-15 11:15:46 Guinier boundary is assumed at Q[106]=0.0589.
2025-10-15 11:15:46 2nd peak both-side extrapolation done.
2025-10-15 11:15:51 2nd peak both-side atsas result: Rg=32.379 I(0)=0.052383
2025-10-15 11:15:51 2nd peak both-side rg re-estimation done with extrapolated Rg=33.1 
  Concentration  Overlap    File
  0.30 / 3.4171    3 -  55  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00119_avg.dat
  0.35 / 2.7545   43 - 101  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00118_avg.dat
  0.39 / 2.6145   13 -  77  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00117_avg.dat
  0.43 / 2.3822    7 -  81  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00116_avg.dat
  0.49 / 2.0274   35 -  97  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00115_avg.dat
  0.54 / 1.9767    1 -  45  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00114_avg.dat
  0.59 / 1.7519    5 -  81  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00113_avg.dat
  0.65 / 1.6420    3 -  65  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00112_avg.dat
  0.70 / 1.5256    1 -  83  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00111_avg.dat
  0.74 / 1.4483    1 -  69  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00110_avg.dat
  0.78 / 1.3530    1 -  65  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00109_avg.dat
  0.82 / 1.2818   11 -  65  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00108_avg.dat
  0.84 / 1.2478    1 -  81  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00107_avg.dat
  0.85 / 1.2290    1 -  55  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00106_avg.dat
  0.86 / 1.1085    1 -  67  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00103_avg.dat
  0.87 / 1.1924    1 -  69  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00105_avg.dat
  0.87 / 1.0694    1 -  77  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00102_avg.dat
  0.87 / 1.1559    5 -  77  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00104_avg.dat
  0.89  (reference)         c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00101_avg.dat
2025-10-15 11:15:56 2nd peak both-side book done.
2025-10-15 11:16:00 2nd peak both-side atsas book done.
2025-10-15 11:16:00 extrapolation start for the 2nd peak ad(0) with range (148, 157)
2025-10-15 11:16:00 Guinier boundary is assumed at Q[124]=0.0664.
2025-10-15 11:16:00 3rd peak asc-side extrapolation done.
2025-10-15 11:16:04 3rd peak asc-side atsas result: Rg=24.3438 I(0)=0.121416
2025-10-15 11:16:04 3rd peak asc-side rg re-estimation done with extrapolated Rg=24.1 
  Concentration  Overlap    File
  2.20 / 1.8049    5 - 105  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00148_avg.dat
  2.55 / 1.5959   17 - 117  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00149_avg.dat
  2.89 / 1.4210   43 - 105  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00150_avg.dat
  3.24 / 1.2650   37 - 115  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00151_avg.dat
  3.54 / 1.1696   73 - 145  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00152_avg.dat
  3.83 / 1.0988   11 - 125  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00153_avg.dat
  4.03 / 1.0429   43 - 115  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00154_avg.dat
  4.17 / 1.0132   31 - 101  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00155_avg.dat
  4.27 / 0.9971   55 - 103  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00156_avg.dat
  4.29  (reference)         c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00157_avg.dat
2025-10-15 11:16:09 3rd peak asc-side book done.
2025-10-15 11:16:15 3rd peak asc-side atsas book done.
2025-10-15 11:16:15 extrapolation start for the 2nd peak ad(1) with range (157, 166)
2025-10-15 11:16:15 Guinier boundary is assumed at Q[122]=0.0656.
2025-10-15 11:16:15 3rd peak desc-side extrapolation done.
2025-10-15 11:16:18 3rd peak desc-side atsas result: Rg=24.2569 I(0)=0.120737
2025-10-15 11:16:18 3rd peak desc-side rg re-estimation done with extrapolated Rg=24.1 
  Concentration  Overlap    File
  2.55 / 1.9215   15 -  99  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00166_avg.dat
  2.90 / 1.6697    1 - 111  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00165_avg.dat
  3.19 / 1.4741   45 - 113  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00164_avg.dat
  3.48 / 1.3288   19 - 113  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00163_avg.dat
  3.71 / 1.2290   11 -  99  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00162_avg.dat
  3.93 / 1.1448   31 - 113  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00161_avg.dat
  4.09 / 1.0811   31 - 143  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00160_avg.dat
  4.21 / 1.0415   57 - 131  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00159_avg.dat
  4.29 / 1.0086   51 - 103  c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00158_avg.dat
  4.29  (reference)         c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged/PREFIX1_00157_avg.dat
2025-10-15 11:16:23 3rd peak desc-side book done.
2025-10-15 11:16:29 3rd peak desc-side atsas book done.
2025-10-15 11:16:30 3rd peak overlay book done.
2025-10-15 11:16:31 c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\averaged has been removed.
2025-10-15 11:16:31 premature all_done call!
2025-10-15 11:16:31 Generating summary report...
2025-10-15 11:16:31 Summary includes low quality results. Be aware.
2025-10-15 11:16:31 add_summary_format_setting start for c:\Users\takahashi\GitHub\molass-tutorial\chapters\08\report_folder\.temp/--summary.xlsx(Summary for Publication)
[Errno 2] No such file or directory: 'c:\\Program Files\\Python312\\Lib\\site-packages\\molass_data\\SAMPLE1/Xray_Scattering_Info.txt'
2025-10-15 11:16:33 summary book done.
2025-10-15 11:16:45 books merge done.
2025-10-15 11:16:45 Summary report generation completed.
2025-10-15 11:16:45 premature all_done call!
Killed the remaining process pid=35336
SerialData.__del__ ok