spec/ms/spectrum_spec.rb in mspire-0.6.2 vs spec/ms/spectrum_spec.rb in mspire-0.6.6
- old
+ new
@@ -43,6 +43,23 @@
spec.mzs.should == subject.mzs
spec.intensities.should == subject.intensities
end
end
+ describe 'merging spectra' do
+ subject do
+ data = [ [10.10, 10.5, 10.7, 11.5], [1, 2, 3, 4] ],
+ [ [10.11, 10.49, 10.71, 11.48], [5, 6, 7, 8] ],
+ [ [10.09, 10.51, 10.72, 11.51], [9, 10, 11, 12]
+ ]
+ data.map {|datum| MS::Spectrum.new( datum ) }
+ end
+ it 'merges, giving exact weighted average m/z values for each cluster' do
+ (spec1, data) = MS::Spectrum.merge(subject, :bin_width => 0.08, :bin_unit => :amu, :return_data => true)
+ spec2 = MS::Spectrum.merge(subject, :bin_width => 0.08, :bin_unit => :amu)
+ spec1.should == spec2
+ spec1.should == MS::Spectrum.new([[10.097333333333331, 10.502222222222223, 10.713809523809525, 11.498333333333333], [5.0, 6.0, 7.0, 8.0]])
+ data.should == [[[10.1, 1], [10.11, 5], [10.09, 9]], [[10.5, 2], [10.49, 6], [10.51, 10]], [[10.7, 3], [10.71, 7], [10.72, 11]], [[11.5, 4], [11.48, 8], [11.51, 12]]]
+ end
+ end
+
end