Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Oleksii Turkot
CrystFEL
Commits
f249b77f
Commit
f249b77f
authored
Jul 01, 2011
by
Thomas White
Browse files
Remove anything which deletes a reflection or optimises a RefList
parent
0ec021f6
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/compare_hkl.c
View file @
f249b77f
...
...
@@ -265,9 +265,9 @@ int main(int argc, char *argv[])
int
ncom
;
RefList
*
list1
;
RefList
*
list2
;
RefList
*
list1_transformed
;
RefList
*
list2_transformed
;
RefList
*
ratio
;
RefList
*
deleteme
;
int
config_shells
=
0
;
char
*
pdb
=
NULL
;
int
rej1
=
0
;
...
...
@@ -384,9 +384,9 @@ int main(int argc, char *argv[])
}
/* Find common reflections (taking symmetry into account) */
list1_transformed
=
reflist_new
();
list2_transformed
=
reflist_new
();
ratio
=
reflist_new
();
deleteme
=
reflist_new
();
for
(
refl1
=
first_refl
(
list1
,
&
iter
);
refl1
!=
NULL
;
refl1
=
next_refl
(
refl1
,
iter
)
)
...
...
@@ -403,11 +403,11 @@ int main(int argc, char *argv[])
get_indices
(
refl1
,
&
h
,
&
k
,
&
l
);
if
(
!
find_equiv_in_list
(
list2
,
h
,
k
,
l
,
sym
,
&
he
,
&
ke
,
&
le
)
)
{
/* No common reflection */
add_refl
(
deleteme
,
h
,
k
,
l
);
continue
;
}
copy_data
(
add_refl
(
list1_transformed
,
h
,
k
,
l
),
refl1
);
refl2
=
find_refl
(
list2
,
he
,
ke
,
le
);
assert
(
refl2
!=
NULL
);
...
...
@@ -457,22 +457,7 @@ int main(int argc, char *argv[])
STATUS
(
"%i,%i reflections: %i in common
\n
"
,
num_reflections
(
list1
),
num_reflections
(
list2
),
ncom
);
/* Trim reflections from 'list1' which had no equivalents in 'list2' */
for
(
refl1
=
first_refl
(
deleteme
,
&
iter
);
refl1
!=
NULL
;
refl1
=
next_refl
(
refl1
,
iter
)
)
{
signed
int
h
,
k
,
l
;
Reflection
*
del
;
get_indices
(
refl1
,
&
h
,
&
k
,
&
l
);
del
=
find_refl
(
list1
,
h
,
k
,
l
);
assert
(
del
!=
NULL
);
delete_refl
(
del
);
}
reflist_free
(
deleteme
);
reflist_free
(
list1
);
reflist_free
(
list2
);
/* Trimming the other way round is not necessary,
...
...
@@ -480,49 +465,51 @@ int main(int argc, char *argv[])
arr2
=
intensities_from_list
(
list2_transformed
);
reflist_free
(
list2_transformed
);
R1
=
stat_r1_ignore
(
list1
,
arr2
,
&
scale_r1fi
,
config_unity
);
R1
=
stat_r1_ignore
(
list1
_transformed
,
arr2
,
&
scale_r1fi
,
config_unity
);
STATUS
(
"R1(F) = %5.4f %% (scale=%5.2e)"
" (ignoring negative intensities)
\n
"
,
R1
*
100
.
0
,
scale_r1fi
);
R1
=
stat_r1_zero
(
list1
,
arr2
,
&
scale_r1
,
config_unity
);
R1
=
stat_r1_zero
(
list1
_transformed
,
arr2
,
&
scale_r1
,
config_unity
);
STATUS
(
"R1(F) = %5.4f %% (scale=%5.2e)"
" (zeroing negative intensities)
\n
"
,
R1
*
100
.
0
,
scale_r1
);
R2
=
stat_r2
(
list1
,
arr2
,
&
scale_r2
,
config_unity
);
R2
=
stat_r2
(
list1
_transformed
,
arr2
,
&
scale_r2
,
config_unity
);
STATUS
(
"R2(I) = %5.4f %% (scale=%5.2e)
\n
"
,
R2
*
100
.
0
,
scale_r2
);
R1i
=
stat_r1_i
(
list1
,
arr2
,
&
scale_r1i
,
config_unity
);
R1i
=
stat_r1_i
(
list1
_transformed
,
arr2
,
&
scale_r1i
,
config_unity
);
STATUS
(
"R1(I) = %5.4f %% (scale=%5.2e)
\n
"
,
R1i
*
100
.
0
,
scale_r1i
);
Rdiff
=
stat_rdiff_ignore
(
list1
,
arr2
,
&
scale_rdig
,
config_unity
);
Rdiff
=
stat_rdiff_ignore
(
list1_transformed
,
arr2
,
&
scale_rdig
,
config_unity
);
STATUS
(
"Rint(F) = %5.4f %% (scale=%5.2e)"
" (ignoring negative intensities)
\n
"
,
Rdiff
*
100
.
0
,
scale_rdig
);
Rdiff
=
stat_rdiff_zero
(
list1
,
arr2
,
&
scale
,
config_unity
);
Rdiff
=
stat_rdiff_zero
(
list1
_transformed
,
arr2
,
&
scale
,
config_unity
);
STATUS
(
"Rint(F) = %5.4f %% (scale=%5.2e)"
" (zeroing negative intensities)
\n
"
,
Rdiff
*
100
.
0
,
scale
);
Rdiff
=
stat_rdiff_intensity
(
list1
,
arr2
,
&
scale_rintint
,
config_unity
);
Rdiff
=
stat_rdiff_intensity
(
list1_transformed
,
arr2
,
&
scale_rintint
,
config_unity
);
STATUS
(
"Rint(I) = %5.4f %% (scale=%5.2e)
\n
"
,
Rdiff
*
100
.
0
,
scale_rintint
);
pearson
=
stat_pearson_i
(
list1
,
arr2
);
pearson
=
stat_pearson_i
(
list1
_transformed
,
arr2
);
STATUS
(
"Pearson r(I) = %5.4f
\n
"
,
pearson
);
pearson
=
stat_pearson_f_ignore
(
list1
,
arr2
);
pearson
=
stat_pearson_f_ignore
(
list1
_transformed
,
arr2
);
STATUS
(
"Pearson r(F) = %5.4f (ignoring negative intensities)
\n
"
,
pearson
);
pearson
=
stat_pearson_f_zero
(
list1
,
arr2
);
pearson
=
stat_pearson_f_zero
(
list1
_transformed
,
arr2
);
STATUS
(
"Pearson r(F) = %5.4f (zeroing negative intensities)
\n
"
,
pearson
);
if
(
config_shells
)
{
plot_shells
(
list1
,
arr2
,
scale_r1i
,
plot_shells
(
list1
_transformed
,
arr2
,
scale_r1i
,
cell
,
sym
,
rmin_fix
,
rmax_fix
);
}
...
...
src/partialator.c
View file @
f249b77f
...
...
@@ -350,7 +350,6 @@ int main(int argc, char *argv[])
/* This is the raw list of reflections */
as
=
asymmetric_indices
(
images
[
n_usable_patterns
].
reflections
,
sym
);
optimise_reflist
(
as
);
reflist_free
(
images
[
n_usable_patterns
].
reflections
);
images
[
n_usable_patterns
].
reflections
=
as
;
...
...
src/reflist-utils.c
View file @
f249b77f
...
...
@@ -302,10 +302,7 @@ RefList *read_reflections_from_file(FILE *fh)
if
(
rval
==
NULL
)
continue
;
chomp
(
line
);
if
(
strcmp
(
line
,
REFLECTION_END_MARKER
)
==
0
)
{
optimise_reflist
(
out
);
return
out
;
}
if
(
strcmp
(
line
,
REFLECTION_END_MARKER
)
==
0
)
return
out
;
r
=
sscanf
(
line
,
"%i %i %i %f %s %f %s %i %f %f"
,
&
h
,
&
k
,
&
l
,
&
intensity
,
phs
,
&
sigma
,
ress
,
&
cts
,
...
...
@@ -321,7 +318,7 @@ RefList *read_reflections_from_file(FILE *fh)
double
ph
;
char
*
v
;
refl
=
add_
serialised_
refl
(
out
,
h
,
k
,
l
);
refl
=
add_refl
(
out
,
h
,
k
,
l
);
set_int
(
refl
,
intensity
);
set_detector_pos
(
refl
,
0
.
0
,
fs
,
ss
);
set_esd_intensity
(
refl
,
sigma
);
...
...
tests/list_check.c
View file @
f249b77f
...
...
@@ -87,8 +87,6 @@ static int test_lists(int num_items)
}
optimise_reflist
(
list
);
/* Iterate over the list and check we find everything */
int
count
=
0
;
for
(
refl
=
first_refl
(
list
,
&
iter
);
...
...
@@ -154,93 +152,6 @@ static int test_lists(int num_items)
}
/* Delete some reflections */
for
(
i
=
0
;
i
<
num_items
/
2
;
i
++
)
{
int
j
;
signed
int
h
,
k
,
l
;
Reflection
*
refl
;
h
=
check
[
i
].
h
;
k
=
check
[
i
].
k
;
l
=
check
[
i
].
l
;
refl
=
find_refl
(
list
,
h
,
k
,
l
);
delete_refl
(
refl
);
/* Update all counts */
for
(
j
=
0
;
j
<
num_items
;
j
++
)
{
if
(
(
check
[
j
].
h
==
h
)
&&
(
check
[
j
].
k
==
k
)
&&
(
check
[
j
].
l
==
l
)
)
check
[
j
].
num
--
;
}
}
/* Check that the deleted reflections can no longer be found */
for
(
i
=
0
;
i
<
num_items
;
i
++
)
{
signed
int
h
,
k
,
l
;
Reflection
*
refl
;
h
=
check
[
i
].
h
;
k
=
check
[
i
].
k
;
l
=
check
[
i
].
l
;
if
(
check
[
i
].
num
>
0
)
continue
;
refl
=
find_refl
(
list
,
h
,
k
,
l
);
if
(
refl
!=
NULL
)
{
fprintf
(
stderr
,
"Found %3i %i %3i after deletion.
\n
"
,
h
,
k
,
l
);
return
1
;
}
}
/* Delete remaining duplicates */
for
(
i
=
0
;
i
<
num_items
;
i
++
)
{
signed
int
h
,
k
,
l
;
Reflection
*
refl
;
if
(
check
[
i
].
num
==
0
)
continue
;
h
=
check
[
i
].
h
;
k
=
check
[
i
].
k
;
l
=
check
[
i
].
l
;
refl
=
find_refl
(
list
,
h
,
k
,
l
);
do
{
int
j
;
signed
int
ha
,
ka
,
la
;
Reflection
*
next
;
get_indices
(
refl
,
&
ha
,
&
ka
,
&
la
);
next
=
next_found_refl
(
refl
);
delete_refl
(
refl
);
refl
=
next
;
for
(
j
=
0
;
j
<
num_items
;
j
++
)
{
if
(
(
check
[
j
].
h
==
h
)
&&
(
check
[
j
].
k
==
k
)
&&
(
check
[
j
].
l
==
l
)
)
check
[
j
].
num
--
;
}
}
while
(
refl
!=
NULL
);
if
(
check
[
i
].
num
!=
0
)
{
fprintf
(
stderr
,
"Found too few duplicates (%i) for "
"%3i %3i %3i
\n
"
,
check
[
i
].
num
,
h
,
k
,
l
);
return
1
;
}
refl
=
find_refl
(
list
,
h
,
k
,
l
);
if
(
refl
!=
NULL
)
{
fprintf
(
stderr
,
"Found too many duplicates for "
"%3i %3i %3i
\n
"
,
h
,
k
,
l
);
return
1
;
}
}
reflist_free
(
list
);
free
(
check
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment