IMP  2.2.1
The Integrative Modeling Platform
IMP::saxs::Profile Class Reference

#include <IMP/saxs/Profile.h>

+ Inheritance diagram for IMP::saxs::Profile:

Public Member Functions

 Profile (const String &file_name, bool fit_file=false)
 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 (const std::vector< Profile * > &profiles, const std::vector< Float > &weights=std::vector< Float >())
 add other profiles - useful for weighted ensembles
 
void add_entry (Float q, Float intensity, Float error=1.0)
 add intensity entry to profile
 
void add_errors ()
 add simulated error
 
void add_noise (Float percentage=0.03)
 add simulated noise
 
void add_partial_profiles (const Profile *other_profile, Float weight=1.0)
 add partial profiles
 
void add_partial_profiles (const std::vector< Profile * > &profiles, const std::vector< Float > &weights=std::vector< Float >())
 add other partial profiles
 
void background_adjust (double start_q)
 background adjustment option
 
Float calculate_I0 (const kernel::Particles &particles, FormFactorType ff_type=HEAVY_ATOMS)
 calculate Intensity at zero (= squared number of electrons)
 
void calculate_profile (const kernel::Particles &particles, FormFactorType ff_type=HEAVY_ATOMS, bool reciprocal=false)
 computes theoretical profile
 
void calculate_profile (const kernel::Particles &particles1, const kernel::Particles &particles2, FormFactorType ff_type=HEAVY_ATOMS)
 
void calculate_profile_constant_form_factor (const kernel::Particles &particles, Float form_factor=1.0)
 calculate profile for any type of kernel::Particles that have coordinates
 
void calculate_profile_partial (const kernel::Particles &particles, const Floats &surface=Floats(), FormFactorType ff_type=HEAVY_ATOMS)
 compute profile for fitting with hydration layer and excluded volume More...
 
void calculate_profile_partial (const kernel::Particles &particles1, const kernel::Particles &particles2, const Floats &surface1=Floats(), const Floats &surface2=Floats(), FormFactorType ff_type=HEAVY_ATOMS)
 compute profile for fitting with hydration layer and excluded volume
 
void calculate_profile_reciprocal_partial (const kernel::Particles &particles, const Floats &surface=Floats(), FormFactorType ff_type=HEAVY_ATOMS)
 
void calculate_profile_symmetric (const kernel::Particles &particles, unsigned int n, FormFactorType ff_type=HEAVY_ATOMS)
 
void copy_errors (const Profile *exp_profile)
 
void distribution_2_profile (const RadialDistributionFunction &r_dist)
 convert to reciprocal space I(q) = Sum(P(r)*sin(qr)/qr)
 
void downsample (Profile *downsampled_profile, unsigned int point_number) const
 downsample the profile to a given number of points
 
Float get_average_radius () const
 
Float get_delta_q () const
 return sampling resolution
 
Float get_error (unsigned int i) const
 
unsigned int get_id () 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
 
std::string get_name () const
 
Float get_q (unsigned int i) const
 
virtual std::string get_type_name () const
 
virtual ::IMP::base::VersionInfo get_version_info () const
 Get information about the module and version of the object.
 
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
 compute radius of gyration with Guinier approximation More...
 
void read_partial_profiles (const String &file_name)
 read a partial profile from file (7 columns)
 
void read_SAXS_file (const String &file_name, bool fit_file=false)
 reads SAXS profile from file More...
 
void resample (const Profile *exp_profile, Profile *resampled_profile, bool partial_profiles=false) const
 return a profile that is sampled on the q values of the exp_profile
 
void scale (Float c)
 scale
 
void set_average_radius (Float r)
 
void set_average_volume (Float v)
 
void set_ff_table (FormFactorTable *ff_table)
 required for reciprocal space calculation
 
void set_id (unsigned int id)
 
void set_intensity (unsigned int i, Float iq)
 
void set_name (std::string name)
 
unsigned int size () const
 return number of entries in SAXS profile
 
void sum_partial_profiles (Float c1, Float c2)
 computes full profile for given fitting parameters
 
void write_partial_profiles (const String &file_name) const
 write a partial profile to file
 
void write_SAXS_file (const String &file_name, Float max_q=0.0) const
 print to file More...
 
- Public Member Functions inherited from IMP::base::Object
virtual void clear_caches ()
 
virtual void do_destroy ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Static Public Attributes

static const Float modulation_function_parameter_
 

Protected Member Functions

void init ()
 
- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 

Protected Attributes

Float average_radius_
 
Float average_volume_
 
Float delta_q_
 
std::vector< double > error_
 
bool experimental_
 
FormFactorTableff_table_
 
unsigned int id_
 
std::vector< double > intensity_
 
Float max_q_
 
Float min_q_
 
std::string name_
 
std::vector< std::vector
< double > > 
partial_profiles_
 
std::vector< double > q_
 
std::map< float, unsigned int > q_mapping_
 

Detailed Description

Basic profile class, can be initialized from the input file (experimental or theoretical) or computed from a set of kernel::Model kernel::Particles (theoretical)

Definition at line 31 of file Profile.h.

Member Function Documentation

void IMP::saxs::Profile::calculate_profile ( const kernel::Particles particles1,
const kernel::Particles particles2,
FormFactorType  ff_type = HEAVY_ATOMS 
)

computes theoretical profile contribution from iter-molecular interactions between the particles

Definition at line 78 of file Profile.h.

void IMP::saxs::Profile::calculate_profile_partial ( const kernel::Particles particles,
const Floats surface = Floats(),
FormFactorType  ff_type = HEAVY_ATOMS 
)

A partial profile is a pre-computed profile, where intensities are split into 6 parts that can be summed up into a regular profile given a pair of c1/c2 values by sum_partial_profiles function. see FoXS paper for details.

double IMP::saxs::Profile::radius_of_gyration ( double  end_q_rg = 1.3) const

ln[I(q)]=ln[I(0)] - (q^2*rg^2)/3

Parameters
[in]end_q_rgdetermines the range of profile used for approximation: i.e. q*rg < end_q_rg. Use 1.3 for globular proteins, 0.8 for elongated
void IMP::saxs::Profile::read_SAXS_file ( const String file_name,
bool  fit_file = false 
)
Parameters
[in]file_nameprofile file name
[in]fit_fileif true, intensities are read from column 3
void IMP::saxs::Profile::write_SAXS_file ( const String file_name,
Float  max_q = 0.0 
) const
Parameters
[in]file_nameoutput file name
[in]max_qoutput till maximal q value = max_q, or all if max_q<=0

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