cicada 0.9.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,58 @@
1
+ #--
2
+ # /* ***** BEGIN LICENSE BLOCK *****
3
+ # *
4
+ # * Copyright (c) 2013 Colin J. Fuller
5
+ # *
6
+ # * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # * of this software and associated documentation files (the Software), to deal
8
+ # * in the Software without restriction, including without limitation the rights
9
+ # * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # * copies of the Software, and to permit persons to whom the Software is
11
+ # * furnished to do so, subject to the following conditions:
12
+ # *
13
+ # * The above copyright notice and this permission notice shall be included in
14
+ # * all copies or substantial portions of the Software.
15
+ # *
16
+ # * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # * SOFTWARE.
23
+ # *
24
+ # * ***** END LICENSE BLOCK ***** */
25
+ #++
26
+
27
+ require 'cicada/file_interaction'
28
+
29
+ describe Cicada::Serialization do
30
+
31
+ it "should be able to serialize and unserialize a set of image objects" do
32
+
33
+ iobjs = load_iobjs
34
+
35
+ to_ser = iobjs[0,3]
36
+
37
+ ser_str = Cicada::Serialization.serialize_image_objects(to_ser)
38
+
39
+ objs_out = Cicada::Serialization.unserialize_image_objects(ser_str)
40
+
41
+ objs_out[0].getPositionForChannel(0).getEntry(0).should == to_ser[0].getPositionForChannel(0).getEntry(0)
42
+
43
+ objs_out[1].getPositionForChannel(0).getEntry(0).should == to_ser[1].getPositionForChannel(0).getEntry(0)
44
+
45
+ objs_out[2].getPositionForChannel(0).getEntry(0).should == to_ser[2].getPositionForChannel(0).getEntry(0)
46
+
47
+ objs_out[0].nil?.should be false
48
+
49
+ objs_out[1].nil?.should be false
50
+
51
+ objs_out[2].nil?.should be false
52
+
53
+ end
54
+
55
+ end
56
+
57
+
58
+
@@ -0,0 +1,79 @@
1
+ # /* ***** BEGIN LICENSE BLOCK *****
2
+ # *
3
+ # * Copyright (c) 2013 Colin J. Fuller
4
+ # *
5
+ # * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # * of this software and associated documentation files (the "Software"), to deal
7
+ # * in the Software without restriction, including without limitation the rights
8
+ # * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # * copies of the Software, and to permit persons to whom the Software is
10
+ # * furnished to do so, subject to the following conditions:
11
+ # *
12
+ # * The above copyright notice and this permission notice shall be included in
13
+ # * all copies or substantial portions of the Software.
14
+ # *
15
+ # * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # * SOFTWARE.
22
+ # *
23
+ # * ***** END LICENSE BLOCK ***** */
24
+
25
+ require 'cicada/fitting/p3d_fitter'
26
+
27
+
28
+ describe Cicada::P3DFitter do
29
+
30
+ before :each do
31
+ @fitter = Cicada::P3DFitter.new({})
32
+ end
33
+
34
+ it "should calculate p3d probability densities correctly" do
35
+
36
+ r = 10.0
37
+ m = 5.0
38
+ s = 10.0
39
+
40
+ expected = 0.04451
41
+
42
+ allowed_error = 0.00001
43
+
44
+ fct = Cicada::P3DObjectiveFunction.new
45
+
46
+ (fct.p3d(r, m, s) - expected).abs.should be < allowed_error
47
+
48
+
49
+ end
50
+
51
+ it "should fit a p3d distribution correctly" do
52
+
53
+ data = nil
54
+
55
+ File.open("spec/resources/test_p3d_data.txt") do |f|
56
+ data = f.readlines
57
+ end
58
+
59
+ data.map! { |e| e.to_f }
60
+
61
+ result = @fitter.fit(nil, data)
62
+
63
+ expected_m = 30.0
64
+ expected_s = 10.0
65
+
66
+ allowed_error = 1.0
67
+
68
+ m = result[0]
69
+ s = result[1]
70
+
71
+ (m - expected_m).abs.should be < allowed_error
72
+ (s - expected_s).abs.should be < allowed_error
73
+
74
+ end
75
+
76
+
77
+ end
78
+
79
+
@@ -0,0 +1,89 @@
1
+ #--
2
+ # /* ***** BEGIN LICENSE BLOCK *****
3
+ # *
4
+ # * Copyright (c) 2013 Colin J. Fuller
5
+ # *
6
+ # * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # * of this software and associated documentation files (the Software), to deal
8
+ # * in the Software without restriction, including without limitation the rights
9
+ # * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # * copies of the Software, and to permit persons to whom the Software is
11
+ # * furnished to do so, subject to the following conditions:
12
+ # *
13
+ # * The above copyright notice and this permission notice shall be included in
14
+ # * all copies or substantial portions of the Software.
15
+ # *
16
+ # * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # * SOFTWARE.
23
+ # *
24
+ # * ***** END LICENSE BLOCK ***** */
25
+ #++
26
+
27
+ require 'cicada/mutable_matrix'
28
+
29
+ describe MMatrix do
30
+
31
+ before :each do
32
+
33
+ @mat = MMatrix[[1,2], [3,4]]
34
+
35
+ end
36
+
37
+ it "should allow setting of individual entries" do
38
+
39
+ @mat[0,1] = 5
40
+
41
+ @mat[0,1].should == 5
42
+ @mat[0,0].should == 1
43
+ @mat[1,1].should == 4
44
+
45
+ end
46
+
47
+ it "should allow replacement of rows" do
48
+
49
+ @mat.replace_row(0, [5,6])
50
+
51
+ @mat[0,0].should == 5
52
+ @mat[0,1].should == 6
53
+ @mat[1,0].should == 3
54
+
55
+ end
56
+
57
+ it "should allow replacement of columns" do
58
+
59
+ @mat.replace_column(0, [5,6])
60
+
61
+ @mat[0,0].should == 5
62
+ @mat[1,0].should == 6
63
+ @mat[0,1].should == 2
64
+
65
+ end
66
+
67
+ end
68
+
69
+ describe MVector do
70
+
71
+ before :each do
72
+
73
+ @vec = MVector.zero(3)
74
+
75
+ end
76
+
77
+ it "should allow setting of individual entries" do
78
+
79
+ @vec[0] = 1
80
+
81
+ @vec[0].should == 1
82
+
83
+ @vec[1].should == 0
84
+
85
+ end
86
+
87
+ end
88
+
89
+
@@ -0,0 +1,50 @@
1
+ #--
2
+ # /* ***** BEGIN LICENSE BLOCK *****
3
+ # *
4
+ # * Copyright (c) 2013 Colin J. Fuller
5
+ # *
6
+ # * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # * of this software and associated documentation files (the Software), to deal
8
+ # * in the Software without restriction, including without limitation the rights
9
+ # * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # * copies of the Software, and to permit persons to whom the Software is
11
+ # * furnished to do so, subject to the following conditions:
12
+ # *
13
+ # * The above copyright notice and this permission notice shall be included in
14
+ # * all copies or substantial portions of the Software.
15
+ # *
16
+ # * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # * SOFTWARE.
23
+ # *
24
+ # * ***** END LICENSE BLOCK ***** */
25
+ #++
26
+
27
+ #resource locations for test data
28
+
29
+ CORR_IMAGE = "./spec/resources/beads_sim.ome.tif"
30
+
31
+ CORR_MASK = "./spec/resources/beads_sim_mask.ome.tif"
32
+
33
+ OBJ_FN = "./spec/resources/beads_sim_data.xml"
34
+
35
+ CORR_FN = "./spec/resources/sim_correction.xml"
36
+
37
+ def load_correction
38
+
39
+ Cicada::Correction.read_from_file(CORR_FN)
40
+
41
+ end
42
+
43
+
44
+ def load_iobjs
45
+
46
+ Cicada::FileInteraction.unserialize_position_data_file(OBJ_FN)
47
+
48
+ end
49
+
50
+
metadata ADDED
@@ -0,0 +1,137 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cicada
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ prerelease:
6
+ platform: java
7
+ authors:
8
+ - Colin J. Fuller
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: pqueue
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: !binary |-
21
+ MA==
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: !binary |-
28
+ MA==
29
+ none: false
30
+ prerelease: false
31
+ type: :runtime
32
+ - !ruby/object:Gem::Dependency
33
+ name: facets
34
+ version_requirements: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: !binary |-
39
+ MA==
40
+ none: false
41
+ requirement: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: !binary |-
46
+ MA==
47
+ none: false
48
+ prerelease: false
49
+ type: :runtime
50
+ - !ruby/object:Gem::Dependency
51
+ name: rimageanalysistools
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: !binary |-
57
+ MA==
58
+ none: false
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: !binary |-
64
+ MA==
65
+ none: false
66
+ prerelease: false
67
+ type: :runtime
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: !binary |-
75
+ MA==
76
+ none: false
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: !binary |-
82
+ MA==
83
+ none: false
84
+ prerelease: false
85
+ type: :development
86
+ description: CICADA (Colocalization and In-situ Correction of Aberration for Distance Analysis) implementation; see Fuller and Straight J. Microscopy (2012) doi:10.1111/j.1365-2818.2012.03654.x
87
+ email: cjfuller@gmail.com
88
+ executables:
89
+ - cicada
90
+ extensions: []
91
+ extra_rdoc_files: []
92
+ files:
93
+ - lib/cicada.rb
94
+ - lib/cicada/cicada_main.rb
95
+ - lib/cicada/file_interaction.rb
96
+ - lib/cicada/mutable_matrix.rb
97
+ - lib/cicada/version.rb
98
+ - lib/cicada/correction/position_corrector.rb
99
+ - lib/cicada/correction/correction.rb
100
+ - lib/cicada/fitting/p3d_fitter.rb
101
+ - spec/spec_helper.rb
102
+ - spec/cicada/file_interaction_spec.rb
103
+ - spec/cicada/mutable_matrix_spec.rb
104
+ - spec/cicada/correction/position_corrector_spec.rb
105
+ - spec/cicada/correction/correction_spec.rb
106
+ - spec/cicada/fitting/p3d_fitter_spec.rb
107
+ - bin/cicada
108
+ homepage: http://github.com/cjfuller/cicada
109
+ licenses:
110
+ - MIT
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: !binary |-
120
+ MA==
121
+ none: false
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: !binary |-
127
+ MA==
128
+ none: false
129
+ requirements:
130
+ - jruby
131
+ rubyforge_project:
132
+ rubygems_version: 1.8.24
133
+ signing_key:
134
+ specification_version: 3
135
+ summary: CICADA implementation
136
+ test_files: []
137
+ has_rdoc: