sas.sascalc.shape2sas package¶
Subpackages¶
- sas.sascalc.shape2sas.models package
- Submodules
- sas.sascalc.shape2sas.models.Cube module
- sas.sascalc.shape2sas.models.Cuboid module
- sas.sascalc.shape2sas.models.Cylinder module
- sas.sascalc.shape2sas.models.CylinderRing module
- sas.sascalc.shape2sas.models.Disc module
- sas.sascalc.shape2sas.models.DiscRing module
- sas.sascalc.shape2sas.models.Ellipsoid module
- sas.sascalc.shape2sas.models.EllipticalCylinder module
EllipticalCylinderEllipticalCylinder.__annotations__EllipticalCylinder.__dict__EllipticalCylinder.__doc__EllipticalCylinder.__firstlineno__EllipticalCylinder.__init__()EllipticalCylinder.__module__EllipticalCylinder.__static_attributes__EllipticalCylinder.__weakref__EllipticalCylinder.checkOverlap()EllipticalCylinder.getPointDistribution()EllipticalCylinder.getVolume()
- sas.sascalc.shape2sas.models.HollowCube module
- sas.sascalc.shape2sas.models.HollowSphere module
- sas.sascalc.shape2sas.models.Sphere module
- sas.sascalc.shape2sas.models.SuperEllipsoid module
SuperEllipsoidSuperEllipsoid.__dict__SuperEllipsoid.__doc__SuperEllipsoid.__firstlineno__SuperEllipsoid.__init__()SuperEllipsoid.__module__SuperEllipsoid.__static_attributes__SuperEllipsoid.__weakref__SuperEllipsoid.beta()SuperEllipsoid.checkOverlap()SuperEllipsoid.getPointDistribution()SuperEllipsoid.getVolume()
- Module contents
CubeCuboidCylinderCylinderRingDiscDiscRingEllipsoidEllipticalCylinderEllipticalCylinder.__annotations__EllipticalCylinder.__dict__EllipticalCylinder.__doc__EllipticalCylinder.__firstlineno__EllipticalCylinder.__init__()EllipticalCylinder.__module__EllipticalCylinder.__static_attributes__EllipticalCylinder.__weakref__EllipticalCylinder.checkOverlap()EllipticalCylinder.getPointDistribution()EllipticalCylinder.getVolume()
HollowCubeHollowSphereSphereSuperEllipsoidSuperEllipsoid.__annotations__SuperEllipsoid.__dict__SuperEllipsoid.__doc__SuperEllipsoid.__firstlineno__SuperEllipsoid.__init__()SuperEllipsoid.__module__SuperEllipsoid.__static_attributes__SuperEllipsoid.__weakref__SuperEllipsoid.beta()SuperEllipsoid.checkOverlap()SuperEllipsoid.getPointDistribution()SuperEllipsoid.getVolume()
- sas.sascalc.shape2sas.structure_factors package
- Submodules
- sas.sascalc.shape2sas.structure_factors.Aggregation module
- sas.sascalc.shape2sas.structure_factors.HardSphereStructure module
HardSphereStructureHardSphereStructure.__annotations__HardSphereStructure.__doc__HardSphereStructure.__firstlineno__HardSphereStructure.__init__()HardSphereStructure.__module__HardSphereStructure.__static_attributes__HardSphereStructure.calc_G()HardSphereStructure.calc_S_HS()HardSphereStructure.structure_eff()
- sas.sascalc.shape2sas.structure_factors.NoStructure module
- sas.sascalc.shape2sas.structure_factors.StructureDecouplingApprox module
StructureDecouplingApproxStructureDecouplingApprox.__annotations__StructureDecouplingApprox.__dict__StructureDecouplingApprox.__doc__StructureDecouplingApprox.__firstlineno__StructureDecouplingApprox.__init__()StructureDecouplingApprox.__module__StructureDecouplingApprox.__static_attributes__StructureDecouplingApprox.__weakref__StructureDecouplingApprox.calc_A00()StructureDecouplingApprox.calc_com_dist()StructureDecouplingApprox.decoupling_approx()
- Module contents
AggregationHardSphereStructureHardSphereStructure.__annotations__HardSphereStructure.__doc__HardSphereStructure.__firstlineno__HardSphereStructure.__init__()HardSphereStructure.__module__HardSphereStructure.__static_attributes__HardSphereStructure.calc_G()HardSphereStructure.calc_S_HS()HardSphereStructure.structure_eff()
NoStructure
Submodules¶
sas.sascalc.shape2sas.ExperimentalScattering module¶
- class sas.sascalc.shape2sas.ExperimentalScattering.IExperimental(q: ndarray, I0: ndarray, I: ndarray, exposure: float)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.ExperimentalScattering', '__firstlineno__': 28, '__init__': <function IExperimental.__init__>, 'simulate_data': <function IExperimental.simulate_data>, 'save_Iexperimental': <function IExperimental.save_Iexperimental>, '__static_attributes__': ('I', 'I0', 'exposure', 'q'), '__dict__': <attribute '__dict__' of 'IExperimental' objects>, '__weakref__': <attribute '__weakref__' of 'IExperimental' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 28¶
- __init__(q: ndarray, I0: ndarray, I: ndarray, exposure: float)¶
- __module__ = 'sas.sascalc.shape2sas.ExperimentalScattering'¶
- __static_attributes__ = ('I', 'I0', 'exposure', 'q')¶
- __weakref__¶
list of weak references to the object
- save_Iexperimental(Isim: ndarray, sigma: ndarray, Model: str)¶
- simulate_data() tuple[ndarray, ndarray]¶
Simulate SAXS data using calculated scattering and empirical expression for sigma
input q,I : calculated scattering, normalized I0 : forward scattering #noise : relative noise (scales the simulated sigmas by a factor) exposure : exposure (in arbitrary units) - affects the noise level of data
output sigma : simulated noise Isim : simulated data
data is also written to a file
- class sas.sascalc.shape2sas.ExperimentalScattering.SimulateScattering(q: ndarray, I0: ndarray, I: ndarray, exposure: float | None = <factory>)¶
Bases:
objectClass containing parameters for simulating scattering
- I: ndarray¶
- I0: ndarray¶
- __annotations__ = {'I': <class 'numpy.ndarray'>, 'I0': <class 'numpy.ndarray'>, 'exposure': float | None, 'q': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'I': Field(name='I',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I0': Field(name='I0',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exposure': Field(name='exposure',type=float | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulateScattering.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.ExperimentalScattering', '__firstlineno__': 8, '__annotations__': {'q': <class 'numpy.ndarray'>, 'I0': <class 'numpy.ndarray'>, 'I': <class 'numpy.ndarray'>, 'exposure': float | None}, '__doc__': 'Class containing parameters for\nsimulating scattering', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'SimulateScattering' objects>, '__weakref__': <attribute '__weakref__' of 'SimulateScattering' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I0': Field(name='I0',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I': Field(name='I',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exposure': Field(name='exposure',type=float | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulateScattering.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SimulateScattering.__init__>, '__repr__': <function SimulateScattering.__repr__>, '__eq__': <function SimulateScattering.__eq__>, '__match_args__': ('q', 'I0', 'I', 'exposure')})¶
- __doc__ = 'Class containing parameters for\nsimulating scattering'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 8¶
- __hash__ = None¶
- __init__(q: ndarray, I0: ndarray, I: ndarray, exposure: float | None = <factory>) None¶
- __match_args__ = ('q', 'I0', 'I', 'exposure')¶
- __module__ = 'sas.sascalc.shape2sas.ExperimentalScattering'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- exposure: float | None¶
- q: ndarray¶
- class sas.sascalc.shape2sas.ExperimentalScattering.SimulatedScattering(I_sim: ndarray, q: ndarray, I_err: ndarray)¶
Bases:
objectClass containing parameters for simulated scattering
- I_err: ndarray¶
- I_sim: ndarray¶
- __annotations__ = {'I_err': <class 'numpy.ndarray'>, 'I_sim': <class 'numpy.ndarray'>, 'q': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'I_err': Field(name='I_err',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_sim': Field(name='I_sim',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.ExperimentalScattering', '__firstlineno__': 19, '__annotations__': {'I_sim': <class 'numpy.ndarray'>, 'q': <class 'numpy.ndarray'>, 'I_err': <class 'numpy.ndarray'>}, '__doc__': 'Class containing parameters for\nsimulated scattering', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'SimulatedScattering' objects>, '__weakref__': <attribute '__weakref__' of 'SimulatedScattering' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'I_sim': Field(name='I_sim',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_err': Field(name='I_err',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SimulatedScattering.__init__>, '__repr__': <function SimulatedScattering.__repr__>, '__eq__': <function SimulatedScattering.__eq__>, '__match_args__': ('I_sim', 'q', 'I_err')})¶
- __doc__ = 'Class containing parameters for\nsimulated scattering'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 19¶
- __hash__ = None¶
- __init__(I_sim: ndarray, q: ndarray, I_err: ndarray) None¶
- __match_args__ = ('I_sim', 'q', 'I_err')¶
- __module__ = 'sas.sascalc.shape2sas.ExperimentalScattering'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- q: ndarray¶
- sas.sascalc.shape2sas.ExperimentalScattering.getSimulatedScattering(scalc: SimulateScattering) SimulatedScattering¶
Simulate scattering for a given theoretical scattering.
sas.sascalc.shape2sas.HelperFunctions module¶
- class sas.sascalc.shape2sas.HelperFunctions.Qsampling¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.HelperFunctions', '__firstlineno__': 6, 'onQsampling': <staticmethod(<function Qsampling.onQsampling>)>, 'onUserSampledQ': <staticmethod(<function Qsampling.onUserSampledQ>)>, 'qMethodsNames': <staticmethod(<function Qsampling.qMethodsNames>)>, 'qMethodsInput': <staticmethod(<function Qsampling.qMethodsInput>)>, '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'Qsampling' objects>, '__weakref__': <attribute '__weakref__' of 'Qsampling' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 6¶
- __module__ = 'sas.sascalc.shape2sas.HelperFunctions'¶
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- static onQsampling(qmin: float, qmax: float, Nq: int) ndarray¶
Returns uniform q sampling
- static onUserSampledQ(q: ndarray) ndarray¶
Returns user sampled q
- static qMethodsInput(name: str)¶
- static qMethodsNames(name: str)¶
- sas.sascalc.shape2sas.HelperFunctions.check_unique(A_list: list[float]) bool¶
if all elements in a list are unique then return True, else return False
- sas.sascalc.shape2sas.HelperFunctions.euler_rotation_matrix(alpha: float, beta: float, gamma: float) ndarray¶
Convert Euler angles to a rotation matrix, following the intrinsic ZYX convention.
- sas.sascalc.shape2sas.HelperFunctions.generate_pdb(x_list: list[ndarray], y_list: list[ndarray], z_list: list[ndarray], p_list: list[ndarray], Model_list: list[str]) None¶
Generates a visualisation file in PDB format with the simulated points (coordinates) and contrasts ONLY FOR VISUALIZATION! Each bead is represented as a dummy atom Carbon, C : positive contrast Hydrogen, H : zero contrast Oxygen, O : negateive contrast information of accurate contrasts not included, only sign IMPORTANT: IT WILL NOT GIVE THE CORRECT RESULTS IF SCATTERING IS CACLLUATED FROM THIS MODEL WITH E.G. CRYSOL, PEPSI-SAXS, FOXS, CAPP OR THE LIKE!
- sas.sascalc.shape2sas.HelperFunctions.get_max_dimension(x_list: ndarray, y_list: ndarray, z_list: ndarray) float¶
find max dimensions of n models used for determining plot limits
- sas.sascalc.shape2sas.HelperFunctions.plot_2D(x_list: ndarray, y_list: ndarray, z_list: ndarray, p_list: ndarray, Models: ndarray, high_res: bool) None¶
plot 2D-projections of generated points (shapes) using matplotlib: positive contrast in red (Model 1) or blue (Model 2) or yellow (Model 3) or green (Model 4) zero contrast in grey negative contrast in black
input (x_list,y_list,z_list) : coordinates of simulated points p_list : excess scattering length densities (contrast) of simulated points Model : Model number
output plot : points<Model>.png
- sas.sascalc.shape2sas.HelperFunctions.plot_results(q: ndarray, r_list: list[ndarray], pr_list: list[ndarray], I_list: list[ndarray], Isim_list: list[ndarray], sigma_list: list[ndarray], S_list: list[ndarray], names: list[str], scales: list[float], xscale_log: bool, high_res: bool) None¶
plot results for all models, using matplotlib: - p(r) - calculated formfactor, P(r) on log-log or log-lin scale - simulated noisy data on log-log or log-lin scale
- sas.sascalc.shape2sas.HelperFunctions.sinc(x) ndarray¶
function for calculating sinc = sin(x)/x numpy.sinc is defined as sinc(x) = sin(pi*x)/(pi*x)
sas.sascalc.shape2sas.Models module¶
- class sas.sascalc.shape2sas.Models.GenerateAllPoints(Npoints: int, com: list[list[float]], subunits: list[list[float]], dimensions: list[list[float]], rotation: list[list[float]], rotation_point: list[float], p: list[float], exclude_overlap: bool)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 138, '__init__': <function GenerateAllPoints.__init__>, 'setAvailableSubunits': <function GenerateAllPoints.setAvailableSubunits>, 'getSubunitClass': <function GenerateAllPoints.getSubunitClass>, 'onAppendingPoints': <staticmethod(<function GenerateAllPoints.onAppendingPoints>)>, 'onCheckOverlap': <staticmethod(<function GenerateAllPoints.onCheckOverlap>)>, 'onGeneratingAllPointsSeparately': <function GenerateAllPoints.onGeneratingAllPointsSeparately>, 'onGeneratingAllPoints': <function GenerateAllPoints.onGeneratingAllPoints>, '__static_attributes__': ('Npoints', 'Number_of_subunits', 'com', 'dimensions', 'exclude_overlap', 'p_s', 'rotation', 'rotation_point', 'subunitClasses', 'subunits'), '__dict__': <attribute '__dict__' of 'GenerateAllPoints' objects>, '__weakref__': <attribute '__weakref__' of 'GenerateAllPoints' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 138¶
- __init__(Npoints: int, com: list[list[float]], subunits: list[list[float]], dimensions: list[list[float]], rotation: list[list[float]], rotation_point: list[float], p: list[float], exclude_overlap: bool)¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __static_attributes__ = ('Npoints', 'Number_of_subunits', 'com', 'dimensions', 'exclude_overlap', 'p_s', 'rotation', 'rotation_point', 'subunitClasses', 'subunits')¶
- __weakref__¶
list of weak references to the object
- getSubunitClass(key: str)¶
- static onAppendingPoints(x_new: ndarray, y_new: ndarray, z_new: ndarray, p_new: ndarray, x_add: ndarray, y_add: ndarray, z_add: ndarray, p_add: ndarray) tuple[ndarray, ndarray, ndarray, ndarray]¶
append new points to vectors of point coordinates
- static onCheckOverlap(x: ndarray, y: ndarray, z: ndarray, p: ndarray, rotation: list[float], rotation_point: list[float], com: list[float], subunitClass: object, dimensions: list[float])¶
check for overlap with previous subunits. if overlap, the point is removed
- onGeneratingAllPoints() tuple[ndarray, ndarray, ndarray, ndarray, float]¶
Generating points for all subunits from each built model
- onGeneratingAllPointsSeparately() tuple[ndarray, ndarray, ndarray]¶
Generating points for all subunits from each built model, but save them separately in their own list
- setAvailableSubunits()¶
Returns the available subunits
- class sas.sascalc.shape2sas.Models.GeneratePoints(com: list[float], subunitClass: object, dimensions: list[float], rotation: list[float], rotation_point: list[float], Npoints: int)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 102, '__init__': <function GeneratePoints.__init__>, 'onGeneratingPoints': <function GeneratePoints.onGeneratingPoints>, 'onTransformingPoints': <function GeneratePoints.onTransformingPoints>, '__static_attributes__': ('Npoints', 'com', 'dimensions', 'rotation', 'rotation_point', 'subunitClass'), '__dict__': <attribute '__dict__' of 'GeneratePoints' objects>, '__weakref__': <attribute '__weakref__' of 'GeneratePoints' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 102¶
- __init__(com: list[float], subunitClass: object, dimensions: list[float], rotation: list[float], rotation_point: list[float], Npoints: int)¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __static_attributes__ = ('Npoints', 'com', 'dimensions', 'rotation', 'rotation_point', 'subunitClass')¶
- __weakref__¶
list of weak references to the object
- onGeneratingPoints() tuple[ndarray, ndarray, ndarray]¶
Generates the points
- onTransformingPoints(x: ndarray, y: ndarray, z: ndarray) tuple[ndarray, ndarray, ndarray]¶
Transforms the points
- class sas.sascalc.shape2sas.Models.ModelPointDistribution(x: ndarray, y: ndarray, z: ndarray, p: ndarray, volume_total: float)¶
Bases:
objectPoint distribution of a model
- __annotations__ = {'p': <class 'numpy.ndarray'>, 'volume_total': <class 'float'>, 'x': <class 'numpy.ndarray'>, 'y': <class 'numpy.ndarray'>, 'z': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'p': Field(name='p',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'volume_total': Field(name='volume_total',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'x': Field(name='x',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'y': Field(name='y',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'z': Field(name='z',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 41, '__annotations__': {'x': <class 'numpy.ndarray'>, 'y': <class 'numpy.ndarray'>, 'z': <class 'numpy.ndarray'>, 'p': <class 'numpy.ndarray'>, 'volume_total': <class 'float'>}, '__doc__': 'Point distribution of a model', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'ModelPointDistribution' objects>, '__weakref__': <attribute '__weakref__' of 'ModelPointDistribution' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'x': Field(name='x',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'y': Field(name='y',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'z': Field(name='z',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'p': Field(name='p',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'volume_total': Field(name='volume_total',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function ModelPointDistribution.__init__>, '__repr__': <function ModelPointDistribution.__repr__>, '__eq__': <function ModelPointDistribution.__eq__>, '__match_args__': ('x', 'y', 'z', 'p', 'volume_total')})¶
- __doc__ = 'Point distribution of a model'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 41¶
- __hash__ = None¶
- __init__(x: ndarray, y: ndarray, z: ndarray, p: ndarray, volume_total: float) None¶
- __match_args__ = ('x', 'y', 'z', 'p', 'volume_total')¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- p: ndarray¶
- volume_total: float¶
- x: ndarray¶
- y: ndarray¶
- z: ndarray¶
- class sas.sascalc.shape2sas.Models.ModelProfile(subunits: list[str] = <factory>, p_s: list[float] = <factory>, dimensions: list[list[float]] = <factory>, com: list[list[float]] = <factory>, rotation_points: list[list[float]] = <factory>, rotation: list[list[float]] = <factory>, exclude_overlap: bool | None = <factory>)¶
Bases:
objectClass containing parameters for creating a particle
NOTE: Default values create a sphere with a radius of 50 Å at the origin.
- __annotations__ = {'com': list[list[float]], 'dimensions': list[list[float]], 'exclude_overlap': bool | None, 'p_s': list[float], 'rotation': list[list[float]], 'rotation_points': list[list[float]], 'subunits': list[str]}¶
- __dataclass_fields__ = {'com': Field(name='com',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'dimensions': Field(name='dimensions',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exclude_overlap': Field(name='exclude_overlap',type=bool | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'p_s': Field(name='p_s',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'rotation': Field(name='rotation',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'rotation_points': Field(name='rotation_points',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'subunits': Field(name='subunits',type=list[str],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 23, '__annotations__': {'subunits': list[str], 'p_s': list[float], 'dimensions': list[list[float]], 'com': list[list[float]], 'rotation_points': list[list[float]], 'rotation': list[list[float]], 'exclude_overlap': bool | None}, '__doc__': 'Class containing parameters for\ncreating a particle\n\nNOTE: Default values create a sphere with a \nradius of 50 Å at the origin.\n', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'ModelProfile' objects>, '__weakref__': <attribute '__weakref__' of 'ModelProfile' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'subunits': Field(name='subunits',type=list[str],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'p_s': Field(name='p_s',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'dimensions': Field(name='dimensions',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'com': Field(name='com',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'rotation_points': Field(name='rotation_points',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'rotation': Field(name='rotation',type=list[list[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exclude_overlap': Field(name='exclude_overlap',type=bool | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelProfile.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function ModelProfile.__init__>, '__repr__': <function ModelProfile.__repr__>, '__eq__': <function ModelProfile.__eq__>, '__match_args__': ('subunits', 'p_s', 'dimensions', 'com', 'rotation_points', 'rotation', 'exclude_overlap')})¶
- __doc__ = 'Class containing parameters for\ncreating a particle\n\nNOTE: Default values create a sphere with a \nradius of 50 Å at the origin.\n'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 23¶
- __hash__ = None¶
- __init__(subunits: list[str] = <factory>, p_s: list[float] = <factory>, dimensions: list[list[float]] = <factory>, com: list[list[float]] = <factory>, rotation_points: list[list[float]] = <factory>, rotation: list[list[float]] = <factory>, exclude_overlap: bool | None = <factory>) None¶
- __match_args__ = ('subunits', 'p_s', 'dimensions', 'com', 'rotation_points', 'rotation', 'exclude_overlap')¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- com: list[list[float]]¶
- dimensions: list[list[float]]¶
- exclude_overlap: bool | None¶
- p_s: list[float]¶
- rotation: list[list[float]]¶
- rotation_points: list[list[float]]¶
- subunits: list[str]¶
- class sas.sascalc.shape2sas.Models.ModelSystem(PointDistribution: ModelPointDistribution, Stype: str = <factory>, par: list[float] = <factory>, polydispersity: float = <factory>, conc: float = <factory>, sigma_r: float = <factory>)¶
Bases:
objectClass containing parameters for the system
- PointDistribution: ModelPointDistribution¶
- Stype: str¶
- __annotations__ = {'PointDistribution': <class 'sas.sascalc.shape2sas.Models.ModelPointDistribution'>, 'Stype': <class 'str'>, 'conc': <class 'float'>, 'par': list[float], 'polydispersity': <class 'float'>, 'sigma_r': <class 'float'>}¶
- __dataclass_fields__ = {'PointDistribution': Field(name='PointDistribution',type=<class 'sas.sascalc.shape2sas.Models.ModelPointDistribution'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'Stype': Field(name='Stype',type=<class 'str'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'conc': Field(name='conc',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'par': Field(name='par',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'polydispersity': Field(name='polydispersity',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'sigma_r': Field(name='sigma_r',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 65, '__annotations__': {'PointDistribution': <class 'sas.sascalc.shape2sas.Models.ModelPointDistribution'>, 'Stype': <class 'str'>, 'par': list[float], 'polydispersity': <class 'float'>, 'conc': <class 'float'>, 'sigma_r': <class 'float'>}, '__doc__': 'Class containing parameters for\nthe system', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'ModelSystem' objects>, '__weakref__': <attribute '__weakref__' of 'ModelSystem' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'PointDistribution': Field(name='PointDistribution',type=<class 'sas.sascalc.shape2sas.Models.ModelPointDistribution'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'Stype': Field(name='Stype',type=<class 'str'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'par': Field(name='par',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'polydispersity': Field(name='polydispersity',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'conc': Field(name='conc',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'sigma_r': Field(name='sigma_r',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<function ModelSystem.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function ModelSystem.__init__>, '__repr__': <function ModelSystem.__repr__>, '__eq__': <function ModelSystem.__eq__>, '__match_args__': ('PointDistribution', 'Stype', 'par', 'polydispersity', 'conc', 'sigma_r')})¶
- __doc__ = 'Class containing parameters for\nthe system'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 65¶
- __hash__ = None¶
- __init__(PointDistribution: ModelPointDistribution, Stype: str = <factory>, par: list[float] = <factory>, polydispersity: float = <factory>, conc: float = <factory>, sigma_r: float = <factory>) None¶
- __match_args__ = ('PointDistribution', 'Stype', 'par', 'polydispersity', 'conc', 'sigma_r')¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- conc: float¶
- par: list[float]¶
- polydispersity: float¶
- sigma_r: float¶
- class sas.sascalc.shape2sas.Models.Rotation(matrix: ndarray, center_mass: ndarray)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 78, '__init__': <function Rotation.__init__>, '__static_attributes__': ('M', 'cm'), '__dict__': <attribute '__dict__' of 'Rotation' objects>, '__weakref__': <attribute '__weakref__' of 'Rotation' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 78¶
- __init__(matrix: ndarray, center_mass: ndarray)¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __static_attributes__ = ('M', 'cm')¶
- __weakref__¶
list of weak references to the object
- class sas.sascalc.shape2sas.Models.SimulationParameters(q: ndarray | None = <factory>, prpoints: int | None = <factory>, Npoints: int | None = <factory>, model_name: list[str] | None = <factory>)¶
Bases:
objectClass containing parameters for the simulation itself
- Npoints: int | None¶
- __annotations__ = {'Npoints': int | None, 'model_name': list[str] | None, 'prpoints': int | None, 'q': numpy.ndarray | None}¶
- __dataclass_fields__ = {'Npoints': Field(name='Npoints',type=int | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'model_name': Field(name='model_name',type=list[str] | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'prpoints': Field(name='prpoints',type=int | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=numpy.ndarray | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.Models', '__firstlineno__': 52, '__annotations__': {'q': numpy.ndarray | None, 'prpoints': int | None, 'Npoints': int | None, 'model_name': list[str] | None}, '__doc__': 'Class containing parameters for\nthe simulation itself', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'SimulationParameters' objects>, '__weakref__': <attribute '__weakref__' of 'SimulationParameters' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'q': Field(name='q',type=numpy.ndarray | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'prpoints': Field(name='prpoints',type=int | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'Npoints': Field(name='Npoints',type=int | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'model_name': Field(name='model_name',type=list[str] | None,default=<dataclasses._MISSING_TYPE object>,default_factory=<function SimulationParameters.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SimulationParameters.__init__>, '__repr__': <function SimulationParameters.__repr__>, '__eq__': <function SimulationParameters.__eq__>, '__match_args__': ('q', 'prpoints', 'Npoints', 'model_name')})¶
- __doc__ = 'Class containing parameters for\nthe simulation itself'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 52¶
- __hash__ = None¶
- __init__(q: ndarray | None = <factory>, prpoints: int | None = <factory>, Npoints: int | None = <factory>, model_name: list[str] | None = <factory>) None¶
- __match_args__ = ('q', 'prpoints', 'Npoints', 'model_name')¶
- __module__ = 'sas.sascalc.shape2sas.Models'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- model_name: list[str] | None¶
- prpoints: int | None¶
- q: ndarray | None¶
- sas.sascalc.shape2sas.Models.getPointDistribution(prof: ModelProfile, Npoints)¶
Generate points for a given model profile.
- sas.sascalc.shape2sas.Models.transform(coords: ~numpy.ndarray[tuple[~numpy.ndarray, ~numpy.ndarray, ~numpy.ndarray]], translate: ~numpy.ndarray = array([0, 0, 0]), rotate: ~sas.sascalc.shape2sas.Models.Rotation = <sas.sascalc.shape2sas.Models.Rotation object>)¶
Transform a set of coordinates by a rotation R and translation T
sas.sascalc.shape2sas.PluginGenerator module¶
- sas.sascalc.shape2sas.PluginGenerator.format_parameter_list(par: list[list[str | float]]) str¶
Format a list of parameters to the model string. In this case the list is on element for each shape. For a single shape there will be only a single value. Mainly for delta Rho.
- sas.sascalc.shape2sas.PluginGenerator.format_parameter_list_of_list(par: list[str | float]) str¶
Format a list of list containing parameters to the model string. This is used for single shape parameter lists like the center of mass of the object which will be an element of the list of such COM for each shape in a multishape model.
- sas.sascalc.shape2sas.PluginGenerator.format_parameter_list_of_list_dimension(par: list[list[str | float]]) str¶
Format a list of lists containing dimensional parameters to the model string. Variables will be enclosed in ‘min(abs(x), 1)’ for safety.
- sas.sascalc.shape2sas.PluginGenerator.generate_model(prof: ModelProfile, modelPars: list[list[str], list[str | float]], usertext: UserText, fitPar: list[str], Npoints: int, pr_points: int, model_name: str) str¶
Generates a theoretical model
- sas.sascalc.shape2sas.PluginGenerator.generate_plugin(prof: ModelProfile, modelPars: list[list[str], list[str | float]], usertext: UserText, fitPar: list[str], Npoints: int, pr_points: int, file_name: str) tuple[str, Path]¶
Generates a theoretical scattering plugin model
- sas.sascalc.shape2sas.PluginGenerator.get_shape_symbols(symbols: tuple[set[str], set[str]], modelPars: list[list[str], list[str | float]]) tuple[set[str], set[str]]¶
Get the symbols used in the model, discarding user-defined variables
- sas.sascalc.shape2sas.PluginGenerator.script_insert_apply_constraints(lhs_symbols: set[str]) str¶
Create the code responsible for updating constraints.
- sas.sascalc.shape2sas.PluginGenerator.script_insert_constrained_parameters(symbols: set[str], modelPars: list[list[str], list[str | float]]) str¶
Create the code defining the constrained parameters.
- sas.sascalc.shape2sas.PluginGenerator.script_insert_delta_parameters(modelPars: list[list[str | float]], fitPars: list[str], symbols: tuple[set[str], set[str]]) tuple[str, str]¶
Create the code sections defining and updating the delta parameters. Only parameters declared in the symbol list will be included.
sas.sascalc.shape2sas.Shape2SAS module¶
sas.sascalc.shape2sas.StructureFactor module¶
- class sas.sascalc.shape2sas.StructureFactor.StructureFactor(q: ndarray, x_new: ndarray, y_new: ndarray, z_new: ndarray, p_new: ndarray, Stype: str, par: list[float] | None)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.StructureFactor', '__firstlineno__': 7, '__init__': <function StructureFactor.__init__>, 'setAvailableStructureFactors': <function StructureFactor.setAvailableStructureFactors>, 'getStructureFactorClass': <function StructureFactor.getStructureFactorClass>, 'getparname': <staticmethod(<function StructureFactor.getparname>)>, 'save_S': <staticmethod(<function StructureFactor.save_S>)>, '__static_attributes__': ('Stype', 'p_new', 'par', 'q', 'structureFactor', 'x_new', 'y_new', 'z_new'), '__dict__': <attribute '__dict__' of 'StructureFactor' objects>, '__weakref__': <attribute '__weakref__' of 'StructureFactor' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 7¶
- __init__(q: ndarray, x_new: ndarray, y_new: ndarray, z_new: ndarray, p_new: ndarray, Stype: str, par: list[float] | None)¶
- __module__ = 'sas.sascalc.shape2sas.StructureFactor'¶
- __static_attributes__ = ('Stype', 'p_new', 'par', 'q', 'structureFactor', 'x_new', 'y_new', 'z_new')¶
- __weakref__¶
list of weak references to the object
- getStructureFactorClass()¶
Return chosen structure factor
- static getparname(name: str) list[str]¶
Return the name of the parameters
- static save_S(q: ndarray, S_eff: ndarray, Model: str)¶
save S to file
- setAvailableStructureFactors()¶
Available structure factors
sas.sascalc.shape2sas.TheoreticalScattering module¶
- class sas.sascalc.shape2sas.TheoreticalScattering.ITheoretical(q: ndarray)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.TheoreticalScattering', '__firstlineno__': 220, '__init__': <function ITheoretical.__init__>, 'calc_Pq': <function ITheoretical.calc_Pq>, 'calc_Pq_ausaxs': <function ITheoretical.calc_Pq_ausaxs>, 'calc_Iq': <function ITheoretical.calc_Iq>, 'save_I': <function ITheoretical.save_I>, '__static_attributes__': ('q',), '__dict__': <attribute '__dict__' of 'ITheoretical' objects>, '__weakref__': <attribute '__weakref__' of 'ITheoretical' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 220¶
- __init__(q: ndarray)¶
- __module__ = 'sas.sascalc.shape2sas.TheoreticalScattering'¶
- __static_attributes__ = ('q',)¶
- __weakref__¶
list of weak references to the object
- calc_Iq(Pq: ndarray, S_eff: ndarray, sigma_r: float) ndarray¶
calculates intensity
- calc_Pq(r: ndarray, pr: ndarray, conc: float, volume_total: float) tuple[ndarray, ndarray]¶
calculate form factor, P(q), and forward scattering, I(0), using pair distribution, p(r)
- calc_Pq_ausaxs(q: ndarray, x: ndarray, y: ndarray, z: ndarray, p: ndarray) ndarray¶
calculate form factor, P(q), using ausaxs SANS Debye method
- save_I(I: ndarray, Model: str)¶
Save theoretical intensity to file
- class sas.sascalc.shape2sas.TheoreticalScattering.TheoreticalScattering(q: ndarray, I0: ndarray, I: ndarray, S_eff: ndarray)¶
Bases:
objectClass containing parameters for theoretical scattering
- I: ndarray¶
- I0: ndarray¶
- S_eff: ndarray¶
- __annotations__ = {'I': <class 'numpy.ndarray'>, 'I0': <class 'numpy.ndarray'>, 'S_eff': <class 'numpy.ndarray'>, 'q': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'I': Field(name='I',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I0': Field(name='I0',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_eff': Field(name='S_eff',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.TheoreticalScattering', '__firstlineno__': 20, '__annotations__': {'q': <class 'numpy.ndarray'>, 'I0': <class 'numpy.ndarray'>, 'I': <class 'numpy.ndarray'>, 'S_eff': <class 'numpy.ndarray'>}, '__doc__': 'Class containing parameters for\ntheoretical scattering', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'TheoreticalScattering' objects>, '__weakref__': <attribute '__weakref__' of 'TheoreticalScattering' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I0': Field(name='I0',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I': Field(name='I',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_eff': Field(name='S_eff',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function TheoreticalScattering.__init__>, '__repr__': <function TheoreticalScattering.__repr__>, '__eq__': <function TheoreticalScattering.__eq__>, '__match_args__': ('q', 'I0', 'I', 'S_eff')})¶
- __doc__ = 'Class containing parameters for\ntheoretical scattering'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 20¶
- __hash__ = None¶
- __init__(q: ndarray, I0: ndarray, I: ndarray, S_eff: ndarray) None¶
- __match_args__ = ('q', 'I0', 'I', 'S_eff')¶
- __module__ = 'sas.sascalc.shape2sas.TheoreticalScattering'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- q: ndarray¶
- class sas.sascalc.shape2sas.TheoreticalScattering.TheoreticalScatteringCalculation(System: ModelSystem, Calculation: SimulationParameters)¶
Bases:
objectClass containing parameters for simulating scattering for a given model system
- Calculation: SimulationParameters¶
- System: ModelSystem¶
- __annotations__ = {'Calculation': <class 'sas.sascalc.shape2sas.Models.SimulationParameters'>, 'System': <class 'sas.sascalc.shape2sas.Models.ModelSystem'>}¶
- __dataclass_fields__ = {'Calculation': Field(name='Calculation',type=<class 'sas.sascalc.shape2sas.Models.SimulationParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'System': Field(name='System',type=<class 'sas.sascalc.shape2sas.Models.ModelSystem'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.TheoreticalScattering', '__firstlineno__': 11, '__annotations__': {'System': <class 'sas.sascalc.shape2sas.Models.ModelSystem'>, 'Calculation': <class 'sas.sascalc.shape2sas.Models.SimulationParameters'>}, '__doc__': 'Class containing parameters for simulating\nscattering for a given model system', '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'TheoreticalScatteringCalculation' objects>, '__weakref__': <attribute '__weakref__' of 'TheoreticalScatteringCalculation' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'System': Field(name='System',type=<class 'sas.sascalc.shape2sas.Models.ModelSystem'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'Calculation': Field(name='Calculation',type=<class 'sas.sascalc.shape2sas.Models.SimulationParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function TheoreticalScatteringCalculation.__init__>, '__repr__': <function TheoreticalScatteringCalculation.__repr__>, '__eq__': <function TheoreticalScatteringCalculation.__eq__>, '__match_args__': ('System', 'Calculation')})¶
- __doc__ = 'Class containing parameters for simulating\nscattering for a given model system'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 11¶
- __hash__ = None¶
- __init__(System: ModelSystem, Calculation: SimulationParameters) None¶
- __match_args__ = ('System', 'Calculation')¶
- __module__ = 'sas.sascalc.shape2sas.TheoreticalScattering'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ()¶
- __weakref__¶
list of weak references to the object
- class sas.sascalc.shape2sas.TheoreticalScattering.WeightedPairDistribution(x: ndarray, y: ndarray, z: ndarray, p: ndarray)¶
Bases:
object- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.TheoreticalScattering', '__firstlineno__': 31, '__init__': <function WeightedPairDistribution.__init__>, 'calc_dist': <staticmethod(<function WeightedPairDistribution.calc_dist>)>, 'calc_all_dist': <function WeightedPairDistribution.calc_all_dist>, 'calc_all_contrasts': <function WeightedPairDistribution.calc_all_contrasts>, 'generate_histogram': <staticmethod(<function WeightedPairDistribution.generate_histogram>)>, 'calc_Rg': <staticmethod(<function WeightedPairDistribution.calc_Rg>)>, 'calc_hr': <function WeightedPairDistribution.calc_hr>, 'calc_pr': <function WeightedPairDistribution.calc_pr>, 'save_pr': <staticmethod(<function WeightedPairDistribution.save_pr>)>, '__static_attributes__': ('p', 'x', 'y', 'z'), '__dict__': <attribute '__dict__' of 'WeightedPairDistribution' objects>, '__weakref__': <attribute '__weakref__' of 'WeightedPairDistribution' objects>, '__doc__': None, '__annotations__': {}})¶
- __doc__ = None¶
- __firstlineno__ = 31¶
- __init__(x: ndarray, y: ndarray, z: ndarray, p: ndarray)¶
- __module__ = 'sas.sascalc.shape2sas.TheoreticalScattering'¶
- __static_attributes__ = ('p', 'x', 'y', 'z')¶
- __weakref__¶
list of weak references to the object
- static calc_Rg(r: ndarray, pr: ndarray) float¶
calculate Rg from r and p(r)
- calc_all_contrasts() ndarray¶
calculate all pairwise contrast products of p: all contrasts
- calc_all_dist() ndarray¶
calculate all pairwise distances calls calc_dist() for each set of coordinates: x,y,z does a square sum of coordinates convert from matrix to
- static calc_dist(x: ndarray) ndarray¶
calculate all distances between points in an array
- calc_hr(dist: ndarray, Nbins: int, contrast: ndarray, polydispersity: float) tuple[ndarray, ndarray]¶
calculate h(r) h(r) is the contrast-weighted histogram of distances, including self-terms (dist = 0)
input: dist : all pairwise distances contrast : all pair-wise contrast products polydispersity: relative polydispersity, float
output: hr : pair distance distribution function
- calc_pr(Nbins: int, polydispersity: float) tuple[ndarray, ndarray, ndarray]¶
calculate p(r) p(r) is the contrast-weighted histogram of distances, without the self-terms (dist = 0)
input: dist : all pairwise distances contrast : all pair-wise contrast products polydispersity: boolian, True or False
output: pr : pair distance distribution function
- static generate_histogram(dist: ndarray, contrast: ndarray, r_max: float, Nbins: int) tuple[ndarray, ndarray]¶
make histogram of point pairs, h(r), binned after pair-distances, r used for calculating scattering (fast Debye)
input dist : all pairwise distances Nbins : number of bins in h(r) contrast : contrast of points r_max : max distance to include in histogram
output r : distances of bins histo : histogram, weighted by contrast
- static save_pr(Nbins: int, r: ndarray, pr_norm: ndarray, Model: str)¶
save p(r) to textfile
- sas.sascalc.shape2sas.TheoreticalScattering.getTheoreticalHistogram(model: ModelSystem, sim_pars: SimulationParameters) tuple[ndarray, ndarray, ndarray]¶
Get theoretical histogram for a given model system and simulation parameters. This function is used to calculate the pair distribution function (p(r)).
- Parameters:
model – ModelSystem object containing the model parameters.
sim_pars – SimulationParameters object containing the simulation parameters.
- Returns:
r, pr, pr_norm - pair distance distribution function.
- sas.sascalc.shape2sas.TheoreticalScattering.getTheoreticalScattering(scalc: TheoreticalScatteringCalculation) TheoreticalScattering¶
Calculate theoretical scattering for a given model profile.
sas.sascalc.shape2sas.Typing module¶
sas.sascalc.shape2sas.UserText module¶
- class sas.sascalc.shape2sas.UserText.UserText(imports: list[str], params: list[str], constraints: list[str], symbols: tuple[set[str], set[str]])¶
Bases:
object- __dataclass_fields__ = {}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.sascalc.shape2sas.UserText', '__firstlineno__': 4, '__init__': <function UserText.__init__>, '__static_attributes__': ('constraints', 'imports', 'params', 'symbols'), '__dict__': <attribute '__dict__' of 'UserText' objects>, '__weakref__': <attribute '__weakref__' of 'UserText' objects>, '__doc__': 'UserText(imports: list[str], params: list[str], constraints: list[str], symbols: tuple[set[str], set[str]])', '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {}, '__replace__': <function _replace>, '__hash__': None, '__repr__': <function UserText.__repr__>, '__eq__': <function UserText.__eq__>, '__match_args__': (), '__annotations__': {}})¶
- __doc__ = 'UserText(imports: list[str], params: list[str], constraints: list[str], symbols: tuple[set[str], set[str]])'¶
- __eq__(other)¶
Return self==value.
- __firstlineno__ = 4¶
- __hash__ = None¶
- __init__(imports: list[str], params: list[str], constraints: list[str], symbols: tuple[set[str], set[str]])¶
- __match_args__ = ()¶
- __module__ = 'sas.sascalc.shape2sas.UserText'¶
- __replace__(**changes)¶
- __repr__()¶
Return repr(self).
- __static_attributes__ = ('constraints', 'imports', 'params', 'symbols')¶
- __weakref__¶
list of weak references to the object