Basic profile class, can be initialized from the input file (experimental or theoretical) or computed from a set of Model Particles (theoretical)
Examples: profile, profile fit
Public Member Functions | |
| Profile (const String &file_name) | |
| init from file | |
| Profile (Float qmin=0.0, Float qmax=0.5, Float delta=0.005) | |
| init for theoretical profile | |
| void | add (const Profile &other_profile, Float weight=1.0) |
| add another profile - useful for rigid bodies | |
| void | add_entry (Float q, Float intensity, Float error=1.0) |
| add intensity entry to profile | |
| void | add_errors () |
| add simulated error | |
| void | add_partial_profiles (const Profile &other_profile, Float weight=1.0) |
| add partial profiles | |
| void | background_adjust (double start_q) |
| background adjustment option | |
| Float | calculate_I0 (const Particles &particles, FormFactorType ff_type=HEAVY_ATOMS) |
| calculate Intensity at zero (= squared number of electrons) | |
| void | calculate_profile (const Particles &particles, FormFactorType ff_type=HEAVY_ATOMS, bool reciprocal=false) |
| computes theoretical profile | |
| void | calculate_profile (const Particles &particles1, const Particles &particles2, FormFactorType ff_type=HEAVY_ATOMS) |
| void | calculate_profile_constant_form_factor (const Particles &particles, Float form_factor=1.0) |
| calculate profile for any type of Particles that have coordinates | |
| void | calculate_profile_partial (const Particles &particles, const Floats &surface=Floats(), FormFactorType ff_type=HEAVY_ATOMS) |
| compute profile for fitting with hydration layer and excluded volume | |
| void | calculate_profile_partial (const Particles &particles1, const Particles &particles2, const Floats &surface1=Floats(), const Floats &surface2=Floats(), FormFactorType ff_type=HEAVY_ATOMS) |
| void | calculate_profile_symmetric (const Particles &particles, unsigned int n, FormFactorType ff_type=HEAVY_ATOMS) |
| void | distribution_2_profile (const RadialDistributionFunction &r_dist) |
| convert to reciprocal space I(q) = Sum(P(r)*sin(qr)/qr) | |
| Float | get_average_radius () const |
| Float | get_delta_q () const |
| return sampling resolution | |
| Float | get_error (unsigned int i) const |
| Float | get_intensity (unsigned int i) const |
| Float | get_max_q () const |
| return maximal sampling point | |
| Float | get_min_q () const |
| return minimal sampling point | |
| Float | get_q (unsigned int i) const |
| Float | get_weight (unsigned int i) const |
| bool | is_uniform_sampling () const |
| checks the sampling of experimental profile | |
| void | offset (Float c) |
| offset profile by c, I(q) = I(q) - c | |
| void | profile_2_distribution (RadialDistributionFunction &rd, Float max_distance) const |
| convert to real space P(r) function P(r) = 1/2PI^2 Sum(I(q)*qr*sin(qr)) | |
| double | radius_of_gyration (double end_q_rg=1.3) const |
| void | read_SAXS_file (const String &file_name) |
| reads SAXS profile from file | |
| void | scale (Float c) |
| scale | |
| void | set_average_radius (Float r) |
| void | set_ff_table (FormFactorTable *ff_table) |
| required for reciprocal space calculation | |
| void | set_intensity (unsigned int i, Float iq) |
| unsigned int | size () const |
| return number of entries in SAXS profile | |
| void | sum_partial_profiles (Float c1, Float c2, Profile &out_profile) |
| computes full profile for given fitting parameters | |
| void | write_SAXS_file (const String &file_name) const |
| print to file | |
Static Public Attributes | |
| static const Float | modulation_function_parameter_ |
Protected Attributes | |
| Float | average_radius_ |
| Float | delta_q_ |
| bool | experimental_ |
| FormFactorTable * | ff_table_ |
| Float | max_q_ |
| Float | min_q_ |
| std::vector< Profile > | partial_profiles_ |
| std::vector< IntensityEntry > | profile_ |
Friends | |
| std::ostream & | operator<< (std::ostream &q, const IntensityEntry &e) |
| std::istream & | operator>> (std::istream &q, IntensityEntry &e) |
| IMP::saxs::Profile::Profile | ( | const String & | file_name | ) |
init from file
init for theoretical profile
add another profile - useful for rigid bodies
add intensity entry to profile
| void IMP::saxs::Profile::add_errors | ( | ) |
add simulated error
add partial profiles
| void IMP::saxs::Profile::background_adjust | ( | double | start_q | ) |
background adjustment option
| Float IMP::saxs::Profile::calculate_I0 | ( | const Particles & | particles, |
| FormFactorType | ff_type = HEAVY_ATOMS |
||
| ) |
calculate Intensity at zero (= squared number of electrons)
| void IMP::saxs::Profile::calculate_profile | ( | const Particles & | particles, |
| FormFactorType | ff_type = HEAVY_ATOMS, |
||
| bool | reciprocal = false |
||
| ) |
computes theoretical profile
| void IMP::saxs::Profile::calculate_profile | ( | const Particles & | particles1, |
| const Particles & | particles2, | ||
| FormFactorType | ff_type = HEAVY_ATOMS |
||
| ) |
computes theoretical profile contribution from iter-molecular interactions between the particles
| void IMP::saxs::Profile::calculate_profile_constant_form_factor | ( | const Particles & | particles, |
| Float | form_factor = 1.0 |
||
| ) |
calculate profile for any type of Particles that have coordinates
| void IMP::saxs::Profile::calculate_profile_partial | ( | const Particles & | particles, |
| const Floats & | surface = Floats(), |
||
| FormFactorType | ff_type = HEAVY_ATOMS |
||
| ) |
compute profile for fitting with hydration layer and excluded volume
| void IMP::saxs::Profile::distribution_2_profile | ( | const RadialDistributionFunction & | r_dist | ) |
convert to reciprocal space I(q) = Sum(P(r)*sin(qr)/qr)
| Float IMP::saxs::Profile::get_delta_q | ( | ) | const |
return sampling resolution
| Float IMP::saxs::Profile::get_max_q | ( | ) | const |
return maximal sampling point
| Float IMP::saxs::Profile::get_min_q | ( | ) | const |
return minimal sampling point
| bool IMP::saxs::Profile::is_uniform_sampling | ( | ) | const |
checks the sampling of experimental profile
| void IMP::saxs::Profile::offset | ( | Float | c | ) |
offset profile by c, I(q) = I(q) - c
| void IMP::saxs::Profile::profile_2_distribution | ( | RadialDistributionFunction & | rd, |
| Float | max_distance | ||
| ) | const |
convert to real space P(r) function P(r) = 1/2PI^2 Sum(I(q)*qr*sin(qr))
| void IMP::saxs::Profile::read_SAXS_file | ( | const String & | file_name | ) |
reads SAXS profile from file
| void IMP::saxs::Profile::scale | ( | Float | c | ) |
scale
| void IMP::saxs::Profile::set_ff_table | ( | FormFactorTable * | ff_table | ) |
required for reciprocal space calculation
| unsigned int IMP::saxs::Profile::size | ( | ) | const |
return number of entries in SAXS profile
computes full profile for given fitting parameters
| void IMP::saxs::Profile::write_SAXS_file | ( | const String & | file_name | ) | const |
print to file