IMP logo
Public Member Functions | Static Public Attributes | Protected Attributes | Friends
IMP::saxs::Profile Class Reference

Detailed Description

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

List of all members.

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_
FormFactorTableff_table_
Float max_q_
Float min_q_
std::vector< Profilepartial_profiles_
std::vector< IntensityEntry > profile_

Friends

std::ostream & operator<< (std::ostream &q, const IntensityEntry &e)
std::istream & operator>> (std::istream &q, IntensityEntry &e)

Constructor & Destructor Documentation

IMP::saxs::Profile::Profile ( const String file_name)

init from file

IMP::saxs::Profile::Profile ( Float  qmin = 0.0,
Float  qmax = 0.5,
Float  delta = 0.005 
)

init for theoretical profile


Member Function Documentation

void IMP::saxs::Profile::add ( const Profile other_profile,
Float  weight = 1.0 
)

add another profile - useful for rigid bodies

void IMP::saxs::Profile::add_entry ( Float  q,
Float  intensity,
Float  error = 1.0 
)

add intensity entry to profile

void IMP::saxs::Profile::add_errors ( )

add simulated error

void IMP::saxs::Profile::add_partial_profiles ( const Profile other_profile,
Float  weight = 1.0 
)

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

void IMP::saxs::Profile::sum_partial_profiles ( Float  c1,
Float  c2,
Profile out_profile 
)

computes full profile for given fitting parameters

void IMP::saxs::Profile::write_SAXS_file ( const String file_name) const

print to file


The documentation for this class was generated from the following file:

Generated on Tue May 22 2012 23:33:37 for IMP by doxygen 1.8.1