IMP
2.3.0
The Integrative Modeling Platform
|
#include <IMP/saxs/Profile.h>
Basic profile class, can be initialized from the input file (experimental or theoretical) or computed from a set of kernel::Model kernel::Particles (theoretical)
Public Member Functions | |
Profile (const String &file_name, bool fit_file=false) | |
init from file More... | |
Profile (Float qmin=0.0, Float qmax=0.5, Float delta=0.005) | |
init for theoretical profile More... | |
void | add (const Profile *other_profile, Float weight=1.0) |
add another profile - useful for rigid bodies More... | |
void | add (const std::vector< Profile * > &profiles, const std::vector< Float > &weights=std::vector< Float >()) |
add other profiles - useful for weighted ensembles More... | |
void | add_entry (Float q, Float intensity, Float error=1.0) |
add intensity entry to profile More... | |
void | add_errors () |
add simulated error More... | |
void | add_noise (Float percentage=0.03) |
add simulated noise More... | |
void | add_partial_profiles (const Profile *other_profile, Float weight=1.0) |
add partial profiles More... | |
void | add_partial_profiles (const std::vector< Profile * > &profiles, const std::vector< Float > &weights=std::vector< Float >()) |
add other partial profiles More... | |
void | background_adjust (double start_q) |
background adjustment option More... | |
Float | calculate_I0 (const kernel::Particles &particles, FormFactorType ff_type=HEAVY_ATOMS) |
calculate Intensity at zero (= squared number of electrons) More... | |
void | calculate_profile (const kernel::Particles &particles, FormFactorType ff_type=HEAVY_ATOMS, bool reciprocal=false) |
computes theoretical profile More... | |
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 More... | |
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 More... | |
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) More... | |
void | downsample (Profile *downsampled_profile, unsigned int point_number) const |
downsample the profile to a given number of points More... | |
Float | get_average_radius () const |
Float | get_delta_q () const |
return sampling resolution More... | |
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 More... | |
Float | get_min_q () const |
return minimal sampling point More... | |
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. More... | |
Float | get_weight (unsigned int i) const |
bool | is_uniform_sampling () const |
checks the sampling of experimental profile More... | |
void | offset (Float c) |
offset profile by c, I(q) = I(q) - c More... | |
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)) More... | |
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) More... | |
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 More... | |
void | scale (Float c) |
scale More... | |
void | set_average_radius (Float r) |
void | set_average_volume (Float v) |
void | set_beam_profile (std::string beam_profile_file) |
void | set_ff_table (FormFactorTable *ff_table) |
required for reciprocal space calculation More... | |
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 More... | |
void | sum_partial_profiles (Float c1, Float c2, bool check_cashed=true) |
computes full profile for given fitting parameters More... | |
void | write_partial_profiles (const String &file_name) const |
write a partial profile to file More... | |
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 () |
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... | |
virtual void | do_destroy () |
Protected Attributes | |
Float | average_radius_ |
Float | average_volume_ |
Profile * | beam_profile_ |
Float | c1_ |
Float | c2_ |
Float | delta_q_ |
std::vector< double > | error_ |
bool | experimental_ |
FormFactorTable * | ff_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_ |
IMP::saxs::Profile::Profile | ( | const String & | file_name, |
bool | fit_file = false |
||
) |
init from file
init for theoretical profile
add another profile - useful for rigid bodies
void IMP::saxs::Profile::add | ( | const std::vector< Profile * > & | profiles, |
const std::vector< Float > & | weights = std::vector< Float >() |
||
) |
add other profiles - useful for weighted ensembles
void IMP::saxs::Profile::add_errors | ( | ) |
add simulated error
void IMP::saxs::Profile::add_noise | ( | Float | percentage = 0.03 | ) |
add simulated noise
add partial profiles
void IMP::saxs::Profile::add_partial_profiles | ( | const std::vector< Profile * > & | profiles, |
const std::vector< Float > & | weights = std::vector< Float >() |
||
) |
add other partial profiles
void IMP::saxs::Profile::background_adjust | ( | double | start_q | ) |
background adjustment option
Float IMP::saxs::Profile::calculate_I0 | ( | const kernel::Particles & | particles, |
FormFactorType | ff_type = HEAVY_ATOMS |
||
) |
calculate Intensity at zero (= squared number of electrons)
void IMP::saxs::Profile::calculate_profile | ( | const kernel::Particles & | particles, |
FormFactorType | ff_type = HEAVY_ATOMS , |
||
bool | reciprocal = false |
||
) |
void IMP::saxs::Profile::calculate_profile | ( | const kernel::Particles & | particles1, |
const kernel::Particles & | particles2, | ||
FormFactorType | ff_type = HEAVY_ATOMS |
||
) |
void IMP::saxs::Profile::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 IMP::saxs::Profile::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
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.
void IMP::saxs::Profile::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 IMP::saxs::Profile::distribution_2_profile | ( | const RadialDistributionFunction & | r_dist | ) |
convert to reciprocal space I(q) = Sum(P(r)*sin(qr)/qr)
void IMP::saxs::Profile::downsample | ( | Profile * | downsampled_profile, |
unsigned int | point_number | ||
) | const |
downsample the profile to a given number of points
Float IMP::saxs::Profile::get_delta_q | ( | ) | const |
Float IMP::saxs::Profile::get_max_q | ( | ) | const |
Float IMP::saxs::Profile::get_min_q | ( | ) | const |
|
virtual |
Get information about the module and version of the object.
Reimplemented from IMP::base::Object.
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))
double IMP::saxs::Profile::radius_of_gyration | ( | double | end_q_rg = 1.3 | ) | const |
compute radius of gyration with Guinier approximation
ln[I(q)]=ln[I(0)] - (q^2*rg^2)/3
[in] | end_q_rg | determines 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_partial_profiles | ( | const String & | file_name | ) |
read a partial profile from file (7 columns)
void IMP::saxs::Profile::read_SAXS_file | ( | const String & | file_name, |
bool | fit_file = false |
||
) |
reads SAXS profile from file
[in] | file_name | profile file name |
[in] | fit_file | if true, intensities are read from column 3 |
void IMP::saxs::Profile::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 IMP::saxs::Profile::scale | ( | Float | c | ) |
scale
void IMP::saxs::Profile::set_ff_table | ( | FormFactorTable * | ff_table | ) |
unsigned int IMP::saxs::Profile::size | ( | ) | const |
computes full profile for given fitting parameters
void IMP::saxs::Profile::write_partial_profiles | ( | const String & | file_name | ) | const |
write a partial profile to file
print to file
[in] | file_name | output file name |
[in] | max_q | output till maximal q value = max_q, or all if max_q<=0 |