mspire 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL +1 -0
- data/README +25 -0
- data/Rakefile +129 -40
- data/bin/{find_aa_freq.rb → aafreqs.rb} +2 -2
- data/bin/bioworks_to_pepxml.rb +1 -0
- data/bin/fasta_shaker.rb +1 -96
- data/bin/filter_and_validate.rb +5 -0
- data/bin/{mzxml_to_lmat.rb → ms_to_lmat.rb} +8 -7
- data/bin/prob_validate.rb +6 -0
- data/bin/raw_to_mzXML.rb +2 -2
- data/bin/srf_group.rb +1 -0
- data/bin/srf_to_sqt.rb +40 -0
- data/changelog.txt +68 -0
- data/lib/align/chams.rb +6 -6
- data/lib/align.rb +4 -3
- data/lib/bsearch.rb +120 -0
- data/lib/fasta.rb +318 -86
- data/lib/group_by.rb +10 -0
- data/lib/index_by.rb +11 -0
- data/lib/merge_deep.rb +21 -0
- data/lib/{spec → ms/converter}/mzxml.rb +77 -109
- data/lib/ms/gradient_program.rb +171 -0
- data/lib/ms/msrun.rb +209 -0
- data/lib/{spec/msrun.rb → ms/msrun_index.rb} +7 -40
- data/lib/ms/parser/mzdata/axml.rb +12 -0
- data/lib/ms/parser/mzdata/dom.rb +160 -0
- data/lib/ms/parser/mzdata/libxml.rb +7 -0
- data/lib/ms/parser/mzdata.rb +25 -0
- data/lib/ms/parser/mzxml/axml.rb +11 -0
- data/lib/ms/parser/mzxml/dom.rb +159 -0
- data/lib/ms/parser/mzxml/hpricot.rb +253 -0
- data/lib/ms/parser/mzxml/libxml.rb +15 -0
- data/lib/ms/parser/mzxml/regexp.rb +122 -0
- data/lib/ms/parser/mzxml/rexml.rb +72 -0
- data/lib/ms/parser/mzxml/xmlparser.rb +248 -0
- data/lib/ms/parser/mzxml.rb +175 -0
- data/lib/ms/parser.rb +108 -0
- data/lib/ms/precursor.rb +10 -0
- data/lib/ms/scan.rb +81 -0
- data/lib/ms/spectrum.rb +193 -0
- data/lib/ms.rb +10 -0
- data/lib/mspire.rb +4 -0
- data/lib/roc.rb +61 -1
- data/lib/sample_enzyme.rb +31 -8
- data/lib/scan_i.rb +21 -0
- data/lib/spec_id/aa_freqs.rb +7 -3
- data/lib/spec_id/bioworks.rb +20 -14
- data/lib/spec_id/digestor.rb +139 -0
- data/lib/spec_id/mass.rb +116 -0
- data/lib/spec_id/parser/proph.rb +236 -0
- data/lib/spec_id/precision/filter/cmdline.rb +209 -0
- data/lib/spec_id/precision/filter/interactive.rb +134 -0
- data/lib/spec_id/precision/filter/output.rb +147 -0
- data/lib/spec_id/precision/filter.rb +623 -0
- data/lib/spec_id/precision/output.rb +60 -0
- data/lib/spec_id/precision/prob/cmdline.rb +139 -0
- data/lib/spec_id/precision/prob/output.rb +88 -0
- data/lib/spec_id/precision/prob.rb +171 -0
- data/lib/spec_id/proph/pep_summary.rb +92 -0
- data/lib/spec_id/proph/prot_summary.rb +484 -0
- data/lib/spec_id/proph.rb +2 -466
- data/lib/spec_id/protein_summary.rb +2 -2
- data/lib/spec_id/sequest/params.rb +316 -0
- data/lib/spec_id/sequest/pepxml.rb +1513 -0
- data/lib/spec_id/sequest.rb +2 -1672
- data/lib/spec_id/srf.rb +445 -177
- data/lib/spec_id.rb +183 -95
- data/lib/spec_id_xml.rb +8 -10
- data/lib/transmem/phobius.rb +147 -0
- data/lib/transmem/toppred.rb +368 -0
- data/lib/transmem.rb +157 -0
- data/lib/validator/aa.rb +135 -0
- data/lib/validator/background.rb +73 -0
- data/lib/validator/bias.rb +95 -0
- data/lib/validator/cmdline.rb +260 -0
- data/lib/validator/decoy.rb +94 -0
- data/lib/validator/digestion_based.rb +69 -0
- data/lib/validator/probability.rb +48 -0
- data/lib/validator/prot_from_pep.rb +234 -0
- data/lib/validator/transmem.rb +272 -0
- data/lib/validator/true_pos.rb +46 -0
- data/lib/validator.rb +214 -0
- data/lib/xml.rb +38 -0
- data/lib/xml_style_parser.rb +105 -0
- data/lib/xmlparser_wrapper.rb +19 -0
- data/script/compile_and_plot_smriti_final.rb +97 -0
- data/script/extract_gradient_programs.rb +56 -0
- data/script/get_apex_values_rexml.rb +44 -0
- data/script/mzXML2timeIndex.rb +1 -1
- data/script/smriti_final_analysis.rb +103 -0
- data/script/toppred_to_yaml.rb +47 -0
- data/script/tpp_installer.rb +1 -1
- data/{test/tc_align.rb → specs/align_spec.rb} +21 -27
- data/{test/tc_bioworks_to_pepxml.rb → specs/bin/bioworks_to_pepxml_spec.rb} +25 -41
- data/specs/bin/fasta_shaker_spec.rb +259 -0
- data/specs/bin/filter_and_validate__multiple_vals_helper.yaml +202 -0
- data/specs/bin/filter_and_validate_spec.rb +124 -0
- data/specs/bin/ms_to_lmat_spec.rb +34 -0
- data/specs/bin/prob_validate_spec.rb +62 -0
- data/specs/bin/protein_summary_spec.rb +10 -0
- data/{test/tc_fasta.rb → specs/fasta_spec.rb} +354 -310
- data/specs/gi_spec.rb +22 -0
- data/specs/load_bin_path.rb +7 -0
- data/specs/merge_deep_spec.rb +13 -0
- data/specs/ms/gradient_program_spec.rb +77 -0
- data/specs/ms/msrun_spec.rb +455 -0
- data/specs/ms/parser_spec.rb +92 -0
- data/specs/ms/spectrum_spec.rb +89 -0
- data/specs/roc_spec.rb +251 -0
- data/specs/rspec_autotest.rb +149 -0
- data/specs/sample_enzyme_spec.rb +41 -0
- data/specs/spec_helper.rb +133 -0
- data/specs/spec_id/aa_freqs_spec.rb +52 -0
- data/{test/tc_bioworks.rb → specs/spec_id/bioworks_spec.rb} +56 -71
- data/specs/spec_id/digestor_spec.rb +75 -0
- data/specs/spec_id/precision/filter/cmdline_spec.rb +20 -0
- data/specs/spec_id/precision/filter/output_spec.rb +31 -0
- data/specs/spec_id/precision/filter_spec.rb +243 -0
- data/specs/spec_id/precision/prob_spec.rb +111 -0
- data/specs/spec_id/precision/prob_spec_helper.rb +0 -0
- data/specs/spec_id/proph/pep_summary_spec.rb +143 -0
- data/{test/tc_proph.rb → specs/spec_id/proph/prot_summary_spec.rb} +52 -32
- data/{test/tc_protein_summary.rb → specs/spec_id/protein_summary_spec.rb} +85 -0
- data/specs/spec_id/sequest/params_spec.rb +68 -0
- data/specs/spec_id/sequest/pepxml_spec.rb +452 -0
- data/specs/spec_id/sqt_spec.rb +138 -0
- data/specs/spec_id/srf_spec.rb +209 -0
- data/specs/spec_id/srf_spec_helper.rb +302 -0
- data/specs/spec_id_helper.rb +33 -0
- data/specs/spec_id_spec.rb +361 -0
- data/specs/spec_id_xml_spec.rb +33 -0
- data/specs/transmem/phobius_spec.rb +423 -0
- data/specs/transmem/toppred_spec.rb +297 -0
- data/specs/transmem_spec.rb +60 -0
- data/specs/transmem_spec_shared.rb +64 -0
- data/specs/validator/aa_spec.rb +107 -0
- data/specs/validator/background_spec.rb +51 -0
- data/specs/validator/bias_spec.rb +146 -0
- data/specs/validator/decoy_spec.rb +51 -0
- data/specs/validator/fasta_helper.rb +26 -0
- data/specs/validator/prot_from_pep_spec.rb +141 -0
- data/specs/validator/transmem_spec.rb +145 -0
- data/specs/validator/true_pos_spec.rb +58 -0
- data/specs/validator_helper.rb +33 -0
- data/specs/xml_spec.rb +12 -0
- data/test_files/000_pepxml18_small.xml +206 -0
- data/test_files/020a.mzXML.timeIndex +4710 -0
- data/test_files/4-03-03_mzXML/000.mzXML.timeIndex +3973 -0
- data/test_files/4-03-03_mzXML/020.mzXML.timeIndex +3872 -0
- data/test_files/4-03-03_small-prot.xml +321 -0
- data/test_files/4-03-03_small.xml +3876 -0
- data/test_files/7MIX_STD_110802_1.sequest_params_fragment.srf +0 -0
- data/test_files/bioworks-3.3_10prots.xml +5999 -0
- data/test_files/bioworks31.params +77 -0
- data/test_files/bioworks32.params +62 -0
- data/test_files/bioworks33.params +63 -0
- data/test_files/bioworks_single_run_small.xml +7237 -0
- data/test_files/bioworks_small.fasta +212 -0
- data/test_files/bioworks_small.params +63 -0
- data/test_files/bioworks_small.phobius +109 -0
- data/test_files/bioworks_small.toppred.out +2847 -0
- data/test_files/bioworks_small.xml +5610 -0
- data/test_files/bioworks_with_INV_small.xml +3753 -0
- data/test_files/bioworks_with_SHUFF_small.xml +2503 -0
- data/test_files/corrupted_900.srf +0 -0
- data/test_files/head_of_7MIX.srf +0 -0
- data/test_files/interact-opd1_mods_small-prot.xml +304 -0
- data/test_files/messups.fasta +297 -0
- data/test_files/opd1/000.my_answer.100lines.xml +101 -0
- data/test_files/opd1/000.tpp_1.2.3.first10.xml +115 -0
- data/test_files/opd1/000.tpp_2.9.2.first10.xml +126 -0
- data/test_files/opd1/000.v2.1.mzXML.timeIndex +3748 -0
- data/test_files/opd1/000_020-prot.png +0 -0
- data/test_files/opd1/000_020_3prots-prot.mod_initprob.xml +62 -0
- data/test_files/opd1/000_020_3prots-prot.xml +62 -0
- data/test_files/opd1/opd1_cat_inv_small-prot.xml +139 -0
- data/test_files/opd1/sequest.3.1.params +77 -0
- data/test_files/opd1/sequest.3.2.params +62 -0
- data/test_files/opd1/twenty_scans.mzXML +418 -0
- data/test_files/opd1/twenty_scans.v2.1.mzXML +382 -0
- data/test_files/opd1/twenty_scans_answ.lmat +0 -0
- data/test_files/opd1/twenty_scans_answ.lmata +9 -0
- data/test_files/opd1_020_beginning.RAW +0 -0
- data/test_files/opd1_2runs_2mods/interact-opd1_mods__small.xml +753 -0
- data/test_files/orbitrap_mzData/000_cut.xml +1920 -0
- data/test_files/pepproph_small.xml +4691 -0
- data/test_files/phobius.small.noheader.txt +50 -0
- data/test_files/phobius.small.small.txt +53 -0
- data/test_files/s01_anC1_ld020mM.key.txt +25 -0
- data/test_files/s01_anC1_ld020mM.meth +0 -0
- data/test_files/small.fasta +297 -0
- data/test_files/smallraw.RAW +0 -0
- data/test_files/tf_bioworks2excel.bioXML +14340 -0
- data/test_files/tf_bioworks2excel.txt.actual +1035 -0
- data/test_files/toppred.small.out +416 -0
- data/test_files/toppred.xml.out +318 -0
- data/test_files/validator_hits_separate/bias_bioworks_small_HS.fasta +7 -0
- data/test_files/validator_hits_separate/bioworks_small_HS.xml +5651 -0
- data/test_files/yeast_gly_small-prot.xml +265 -0
- data/test_files/yeast_gly_small.1.0_1.0_1.0.parentTimes +6 -0
- data/test_files/yeast_gly_small.xml +3807 -0
- data/test_files/yeast_gly_small2.parentTimes +6 -0
- metadata +273 -57
- data/bin/filter.rb +0 -6
- data/bin/precision.rb +0 -5
- data/lib/spec/mzdata/parser.rb +0 -108
- data/lib/spec/mzdata.rb +0 -48
- data/lib/spec/mzxml/parser.rb +0 -449
- data/lib/spec/scan.rb +0 -55
- data/lib/spec_id/filter.rb +0 -797
- data/lib/spec_id/precision.rb +0 -421
- data/lib/toppred.rb +0 -18
- data/script/filter-peps.rb +0 -164
- data/test/tc_aa_freqs.rb +0 -59
- data/test/tc_fasta_shaker.rb +0 -149
- data/test/tc_filter.rb +0 -203
- data/test/tc_filter_peps.rb +0 -46
- data/test/tc_gi.rb +0 -17
- data/test/tc_id_class_anal.rb +0 -70
- data/test/tc_id_precision.rb +0 -89
- data/test/tc_msrun.rb +0 -88
- data/test/tc_mzxml.rb +0 -88
- data/test/tc_mzxml_to_lmat.rb +0 -36
- data/test/tc_peptide_parent_times.rb +0 -27
- data/test/tc_precision.rb +0 -60
- data/test/tc_roc.rb +0 -166
- data/test/tc_sample_enzyme.rb +0 -32
- data/test/tc_scan.rb +0 -26
- data/test/tc_sequest.rb +0 -336
- data/test/tc_spec.rb +0 -78
- data/test/tc_spec_id.rb +0 -201
- data/test/tc_spec_id_xml.rb +0 -36
- data/test/tc_srf.rb +0 -262
data/test/tc_mzxml.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'spec/mzxml/parser'
|
3
|
-
|
4
|
-
class SpecMzXML < Test::Unit::TestCase
|
5
|
-
def initialize(arg)
|
6
|
-
super(arg)
|
7
|
-
@tfiles = File.dirname(__FILE__) + '/tfiles/'
|
8
|
-
@tscans = @tfiles + "opd1/twenty_scans.mzXML"
|
9
|
-
@big_file = "../bioworks2prophet/xml/opd00001_test_set/opd00001_prophprepped/000.mzXML"
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_times_and_spectra
|
13
|
-
#parser = Spec::MzXML::Parser.new
|
14
|
-
#arr = parser.parse_times_and_spectra( @tscans)
|
15
|
-
(times, spectra) = Spec::MzXML::Parser.new.times_and_spectra(@tscans)
|
16
|
-
times = %w(0.440000 5.150000 10.690000 16.400000 22.370000)
|
17
|
-
num_peaks = [992, 814, 796, 849, 813]
|
18
|
-
ind_0_2__3 = [301.430114746094, 22192.0]
|
19
|
-
ind_0_n2__n1 = [1499.09912109375, 111286.0]
|
20
|
-
ind_n1_2__3 = [301.243774414062, 77503.0]
|
21
|
-
ind_n1_n2__n1 = [1499.42016601562, 13.0]
|
22
|
-
assert_equal_pair(ind_0_2__3, spectra[0][2..3])
|
23
|
-
assert_equal_pair(ind_0_n2__n1, spectra[0][-2..-1])
|
24
|
-
assert_equal_pair(ind_n1_2__3, spectra[-1][2..3])
|
25
|
-
assert_equal_pair(ind_n1_n2__n1, spectra[-1][-2..-1])
|
26
|
-
|
27
|
-
num_peaks.each_with_index do |n,i|
|
28
|
-
assert_equal(n, spectra[i].size/2)
|
29
|
-
end
|
30
|
-
times.each_with_index do |t,i|
|
31
|
-
assert_equal(t, times[i])
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_basic_info
|
37
|
-
hash = Spec::MzXML::Parser.new.basic_info(@tscans)
|
38
|
-
assert_equal({:scan_count=>[20, 5, 15], :start_time=>0.44, :end_time=>27.05, :start_mz=>300.0, :end_mz=>1500.0, :ms_level=>1}, hash, "basic info the same")
|
39
|
-
end
|
40
|
-
|
41
|
-
def assert_equal_pair(exp, pair)
|
42
|
-
assert_in_delta(exp[0], pair[0], 0.000000001)
|
43
|
-
assert_in_delta(exp[1], pair[1], 0.000000001)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_file_to_mzxml
|
47
|
-
if has_t2x?
|
48
|
-
sr_raw = @tfiles + 'smallraw.RAW'
|
49
|
-
sr_noext = @tfiles + 'smallraw'
|
50
|
-
sr_mzxml = @tfiles + 'smallraw.mzXML'
|
51
|
-
klass = Spec::MzXML
|
52
|
-
# given raw
|
53
|
-
file = klass.file_to_mzxml(sr_raw)
|
54
|
-
file_to_mzxml_assert(file)
|
55
|
-
# given mzXML
|
56
|
-
file = klass.file_to_mzxml(sr_mzxml)
|
57
|
-
file_to_mzxml_assert(file)
|
58
|
-
File.unlink(sr_mzxml)
|
59
|
-
# given basename (and no mzXML)
|
60
|
-
file = klass.file_to_mzxml(sr_noext)
|
61
|
-
file_to_mzxml_assert(file)
|
62
|
-
# given basename (and mzXML)
|
63
|
-
file = klass.file_to_mzxml(sr_noext)
|
64
|
-
file_to_mzxml_assert(file)
|
65
|
-
File.unlink(sr_mzxml)
|
66
|
-
else
|
67
|
-
puts "SKIPPING tests requiring 't2x' to convert RAW to mzXML"
|
68
|
-
puts "(look in the archive folder of the gem for t2x binary for linux)"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
|
73
|
-
def file_to_mzxml_assert(file)
|
74
|
-
assert(file, "file is not nil")
|
75
|
-
assert(File.exist?(file), "file #{file} exists")
|
76
|
-
assert_match(/\.mzXML$/, file, "file ends in mzXML")
|
77
|
-
end
|
78
|
-
|
79
|
-
# returns true if 't2x' matches 'Usage'
|
80
|
-
def has_t2x?
|
81
|
-
reply = ''
|
82
|
-
eval(%q{reply = `t2x`})
|
83
|
-
reply.include? 't2x'
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
|
data/test/tc_mzxml_to_lmat.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
|
5
|
-
class TestMzXML2LMat < Test::Unit::TestCase
|
6
|
-
ROOT_DIR = File.join(File.dirname(__FILE__), '..')
|
7
|
-
|
8
|
-
def initialize(arg)
|
9
|
-
super(arg)
|
10
|
-
@tfiles = File.dirname(File.expand_path(__FILE__)) + '/tfiles/'
|
11
|
-
@mzxml = @tfiles + "opd1/twenty_scans.mzXML"
|
12
|
-
@mzxml_big = @tfiles + "yeast_gly_mzXML/000.mzXML"
|
13
|
-
@cmd = "ruby -I #{File.join(ROOT_DIR, 'lib')} -S #{File.join(ROOT_DIR, 'bin', 'mzxml_to_lmat.rb')} "
|
14
|
-
@ans_lmata = @tfiles + "opd1/twenty_scans_answ.lmata"
|
15
|
-
@ans_lmat = @tfiles + "opd1/twenty_scans_answ.lmat"
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_basic_ascii
|
19
|
-
cmd = "#{@cmd} #{@mzxml} --ascii"
|
20
|
-
puts `#{cmd}`
|
21
|
-
newfile = @mzxml.sub(".mzXML", ".lmata")
|
22
|
-
assert(File.exist?(newfile), "#{newfile} exists")
|
23
|
-
assert(IO.read(@ans_lmata), IO.read(newfile))
|
24
|
-
File.unlink(newfile)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_basic_binary
|
28
|
-
cmd = "#{@cmd} #{@mzxml}"
|
29
|
-
puts `#{cmd}`
|
30
|
-
newfile = @mzxml.sub(".mzXML", ".lmat")
|
31
|
-
assert(File.exist?(newfile), "#{newfile} exists")
|
32
|
-
assert(IO.read(@ans_lmat), IO.read(newfile))
|
33
|
-
File.unlink(newfile)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
class PeptideParentTimesTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def initialize(arg)
|
7
|
-
super(arg)
|
8
|
-
@tfiles = "tfiles" # relative test file directory
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_blank
|
12
|
-
## need to finish this guy up:
|
13
|
-
puts "\nSKIPPING: tests for peptide_parent_times"
|
14
|
-
end
|
15
|
-
|
16
|
-
def Xtest_run
|
17
|
-
reply = `ruby ../script/peptide_parent_times.rb 1.00 tfiles/yeast_gly_small-prot.xml tfiles/yeast_gly_small.xml tfiles/020a.mzXML.timeIndex`
|
18
|
-
#puts reply
|
19
|
-
string1 = File.open((@tfiles +'/'+'yeast_gly_small.1.0_1.0_1.0.parentTimes__020a.working')).read
|
20
|
-
assert(string1.size > 20)
|
21
|
-
string2 = File.open((@tfiles +'/'+'yeast_gly_small.1.0_1.0_1.0.parentTimes__020a')).read
|
22
|
-
assert_equal(string1, string2)
|
23
|
-
to_delete = %w(yeast_gly_small.xml.seqchargehash yeast_gly_small-prot.xml.1.0_1.0_1.0.protpep yeast_gly_small.1.0_1.0_1.0.parentTimes__020a)
|
24
|
-
with_dir = to_delete.collect { |f| @tfiles + '/' + f }
|
25
|
-
with_dir.each { |f| File.unlink f }
|
26
|
-
end
|
27
|
-
end
|
data/test/tc_precision.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
require File.dirname(File.expand_path(__FILE__)) + '/load_bin_path'
|
4
|
-
|
5
|
-
|
6
|
-
class PrecTest < Test::Unit::TestCase
|
7
|
-
ROOT_DIR = File.join(File.dirname(__FILE__), "..")
|
8
|
-
|
9
|
-
def initialize(arg)
|
10
|
-
super(arg)
|
11
|
-
@tfiles = File.dirname(__FILE__) + '/tfiles/'
|
12
|
-
@tf_bioworks_esmall_xml = @tfiles + "bioworks_with_INV_small.xml"
|
13
|
-
@tf_bioworks_shuff = @tfiles + "bioworks_with_SHUFF_small.xml"
|
14
|
-
@cmd = "ruby -I#{File.join(ROOT_DIR, "lib")} -S precision.rb "
|
15
|
-
@tf_html = @tfiles + "ppv.html"
|
16
|
-
@tf_png = @tfiles + "ppv.png"
|
17
|
-
@nodelete = false
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_usage
|
21
|
-
assert_match(/Usage:/, `#{@cmd}`)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_basic_cat
|
25
|
-
output = `#{@cmd} -o #{@tf_html} -f SHUFF_ --prefix #{@tf_bioworks_shuff}`
|
26
|
-
puts output
|
27
|
-
|
28
|
-
assert_match(/<table.*<\/table>/m, IO.read(@tf_html), "has html table in it")
|
29
|
-
assert_match(/10.*0.3000/m, IO.read(@tf_html), "has values")
|
30
|
-
[@tf_html, @tf_png].each do |file|
|
31
|
-
assert(File.exist?(file), "file #{file} exists")
|
32
|
-
File.unlink(file) unless @nodelete
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_multiple_files
|
37
|
-
output = `#{@cmd} -o #{@tf_html} -f SHUFF_,INV_ --prefix #{@tf_bioworks_shuff} #{@tf_bioworks_esmall_xml}`
|
38
|
-
assert_match(/<table.*<\/table>/m, IO.read(@tf_html), "has html table in it")
|
39
|
-
assert_match(/1.*1.0000.*1.*1.0000.*0.*0.*15.*0.8667/m, IO.read(@tf_html), "has values")
|
40
|
-
[@tf_html, @tf_png].each do |file|
|
41
|
-
assert(File.exist?(file), "file #{file} exists")
|
42
|
-
File.unlink(file) unless @nodelete
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_area_under_curve
|
47
|
-
file = @tfiles + 'ppv_area.txt'
|
48
|
-
`#{@cmd} -o #{file} -a -f SHUFF_ --prefix #{@tf_bioworks_shuff}`
|
49
|
-
assert(File.exist?(file), "file #{file} exists")
|
50
|
-
output = IO.read(file)
|
51
|
-
assert_match(/Prec.*7.39206/, output, "consistency check")
|
52
|
-
File.unlink file
|
53
|
-
|
54
|
-
outfile = File.join(File.dirname(__FILE__), 'other.html')
|
55
|
-
`#{@cmd} -o #{outfile} -f SHUFF_ --prefix #{@tf_bioworks_shuff}`
|
56
|
-
File.unlink outfile
|
57
|
-
File.unlink File.join(File.dirname(__FILE__),'other.png')
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
data/test/tc_roc.rb
DELETED
@@ -1,166 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
require 'roc'
|
5
|
-
|
6
|
-
class ROCTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
def initialize(arg)
|
9
|
-
super(arg)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_area_under_curve
|
13
|
-
x = [1,2,3]
|
14
|
-
y = [2,3,4]
|
15
|
-
_test_auc(6,x,y)
|
16
|
-
|
17
|
-
x = [1,2,3]
|
18
|
-
y = [-2,-3,-4]
|
19
|
-
_test_auc(-6, x, y)
|
20
|
-
|
21
|
-
x = [1,2,3]
|
22
|
-
y = [4,3,2]
|
23
|
-
_test_auc(6, x, y)
|
24
|
-
|
25
|
-
x = [1,2,3]
|
26
|
-
y = [-4,-3,-2]
|
27
|
-
_test_auc(-6, x, y)
|
28
|
-
|
29
|
-
x = [4,5,6]
|
30
|
-
y = [2,1,2]
|
31
|
-
_test_auc(3, x, y)
|
32
|
-
|
33
|
-
x = [4,5,6]
|
34
|
-
y = [-2,-1,-2]
|
35
|
-
_test_auc(-3, x, y)
|
36
|
-
end
|
37
|
-
|
38
|
-
def _test_auc(expected_area,x,y)
|
39
|
-
area = ROC.new.area_under_curve(x,y)
|
40
|
-
assert_equal(expected_area, area)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_prep_list
|
44
|
-
t = true
|
45
|
-
f = false
|
46
|
-
x,y = ROC.new.prep_list([[0,f],[1,f],[2,f],[3,t],[3,f],[0,f],[4,f],[1,t],[2,t]])
|
47
|
-
assert_equal([1,2,3], x)
|
48
|
-
assert_equal([0,0,1,2,3,4], y)
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_tps_and_ppv
|
52
|
-
tp = %w(1 2 3 4 5 6 6 6 7 8 9 10 10 10 10 11 12 ).collect {|c| c.to_f } # 17 total
|
53
|
-
fp = %w(3.5 4 5 5 5 6 6 6.5 7 8 9 9.5 10 15).collect {|c| c.to_f } # 14 total
|
54
|
-
xe = [1, 2, 3, 4, 5, 8, 9, 10, 11, 15, 16, 17]
|
55
|
-
# 1, 2, 3, 4 5, 6, 7, 8, 9
|
56
|
-
# 10 11 12
|
57
|
-
ye = [1, 1, 1, 4.0/6.0, 0.5, 8.0/(7.0+8.0), 9.0/(9.0+9.0), 0.5, 11.0/(11.0+ 11.0), 15.0/(15.0+13.0), 16.0/(16.0+13.0), 17.0/(17.0+13.0)]
|
58
|
-
_test_tps_and_ppv_method(tp,fp,xe,ye,"complex real-life-like scenario")
|
59
|
-
|
60
|
-
## leading fp's
|
61
|
-
tp = [1,2,3]
|
62
|
-
fp = [0,0,1,2,3,4]
|
63
|
-
xe = [1,2,3]
|
64
|
-
ye = [1.0/(1+3), 2.0/(2+4), 3.0/(3+5)]
|
65
|
-
_test_tps_and_ppv_method(tp,fp,xe,ye, "leading fps")
|
66
|
-
|
67
|
-
## leading tp's
|
68
|
-
tp = [-1,2,3]
|
69
|
-
fp = [0,4]
|
70
|
-
xe = [1,2,3]
|
71
|
-
ye = [1.0/(1+0), 2.0/(2+1), 3.0/(3+1)]
|
72
|
-
_test_tps_and_ppv_method(tp,fp,xe,ye, "leading tps")
|
73
|
-
|
74
|
-
## equal tp's leading
|
75
|
-
tp = [0.0001,0.0001,0.0001,2]
|
76
|
-
fp = [0.01,4.0]
|
77
|
-
xe = [3,4]
|
78
|
-
ye = [3.0/(3+0), 4.0/(4+1)]
|
79
|
-
_test_tps_and_ppv_method(tp,fp,xe,ye, "equal tps leading")
|
80
|
-
|
81
|
-
## equal arrays with some repeated values
|
82
|
-
tp = %w(1 2 3 3 4 5 6 ).collect {|x| x.to_f } # 17 total
|
83
|
-
fp = %w(1 2 3 3 4 5 6 ).collect {|x| x.to_f } # 17 total
|
84
|
-
xe = [1,2,4,5,6,7]
|
85
|
-
ye = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
|
86
|
-
_test_tps_and_ppv_method(tp,fp,xe,ye, "equal arrays with some repeated values")
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
def _test_tps_and_ppv_method(tp,fp,xe,ye,message='')
|
91
|
-
(x,y) = ROC.new.tps_and_ppv(tp,fp)
|
92
|
-
assert_equal(x.size, y.size)
|
93
|
-
assert_equal(xe, x)
|
94
|
-
assert_equal(ye, y, "tps_and_ppv: #{message}")
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
class DecoyROCTest < ROCTest
|
100
|
-
|
101
|
-
def test_pred_tps_ppv__leading_fps
|
102
|
-
## leading fp's
|
103
|
-
hits = [1,2,3]
|
104
|
-
decoys = [0,0,1,2,3,4]
|
105
|
-
num_hits_e = [1,2,3]
|
106
|
-
num_fps = [3,4,5]
|
107
|
-
tps_e = make_tps_e(num_fps, num_hits_e)
|
108
|
-
ppv_e = make_ppv_e(tps_e, num_hits_e)
|
109
|
-
_test_pred_and_tps_and_ppv(hits, decoys, num_hits_e, tps_e, ppv_e)
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_pred_tps_ppv__leading_tps
|
113
|
-
## leading tp's
|
114
|
-
hits = [-1,2,3]
|
115
|
-
decoys = [0,4]
|
116
|
-
num_hits_e = [1,2,3]
|
117
|
-
num_fps = [0,1,1]
|
118
|
-
tps_e = make_tps_e(num_fps, num_hits_e)
|
119
|
-
ppv_e = make_ppv_e(tps_e, num_hits_e)
|
120
|
-
_test_pred_and_tps_and_ppv(hits, decoys, num_hits_e, tps_e, ppv_e)
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_pred_tps_ppv__equal_tps_leading
|
124
|
-
hits = [0.0001,0.0001,0.0001,2]
|
125
|
-
decoys = [0.01,4.0]
|
126
|
-
num_hits_e = [3,4]
|
127
|
-
num_fps = [0,1]
|
128
|
-
tps_e = make_tps_e(num_fps, num_hits_e)
|
129
|
-
ppv_e = make_ppv_e(tps_e, num_hits_e)
|
130
|
-
_test_pred_and_tps_and_ppv(hits, decoys, num_hits_e, tps_e, ppv_e)
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_pred_tps_ppv__equal_arrays_with_some_repeated_values
|
134
|
-
hits = %w(1 2 3 3 4 5 6 ).collect {|x| x.to_f } # 17 total
|
135
|
-
decoys = %w(1 2 3 3 4 5 6 ).collect {|x| x.to_f } # 17 total
|
136
|
-
num_hits_e = [1,2,4,5,6,7]
|
137
|
-
num_fps = [1,2,4,5,6,7]
|
138
|
-
tps_e = make_tps_e(num_fps, num_hits_e)
|
139
|
-
ppv_e = make_ppv_e(tps_e, num_hits_e)
|
140
|
-
_test_pred_and_tps_and_ppv(hits, decoys, num_hits_e, tps_e, ppv_e)
|
141
|
-
end
|
142
|
-
|
143
|
-
def _test_pred_and_tps_and_ppv(hits, decoys, num_hits_e, tps_e, ppv_e)
|
144
|
-
answer = DecoyROC.new.pred_and_tps_and_ppv(hits, decoys)
|
145
|
-
expected = [num_hits_e, tps_e, ppv_e]
|
146
|
-
%w(num_hits num_tps ppv).each_with_index do |cat, i|
|
147
|
-
assert_equal(expected[i], answer[i], cat)
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def make_tps_e(num_fps, num_hits_e)
|
152
|
-
tps_e = []
|
153
|
-
num_hits_e.each_with_index do |v,i|
|
154
|
-
tps_e[i] = v - num_fps[i]
|
155
|
-
end
|
156
|
-
tps_e
|
157
|
-
end
|
158
|
-
|
159
|
-
def make_ppv_e(tps_e, num_hits_e)
|
160
|
-
ppv_e = []
|
161
|
-
tps_e.each_with_index {|v,i| ppv_e[i] = v.to_f/num_hits_e[i] }
|
162
|
-
ppv_e
|
163
|
-
end
|
164
|
-
|
165
|
-
end
|
166
|
-
|
data/test/tc_sample_enzyme.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
require 'sample_enzyme'
|
4
|
-
require 'set'
|
5
|
-
|
6
|
-
class Trypsin < Test::Unit::TestCase
|
7
|
-
def test_no_missed_cleavage
|
8
|
-
st = "CRGATKKTAGRPMEK"
|
9
|
-
assert_equal(%w(CR GATK K TAGRPMEK), SampleEnzyme.tryptic(st))
|
10
|
-
st = "CATRP"
|
11
|
-
assert_equal(%w(CATRP), SampleEnzyme.tryptic(st))
|
12
|
-
st = "RCATRP"
|
13
|
-
assert_equal(%w(R CATRP), SampleEnzyme.tryptic(st))
|
14
|
-
st = ""
|
15
|
-
assert_equal([], SampleEnzyme.tryptic(st))
|
16
|
-
st = "R"
|
17
|
-
assert_equal(%w(R), SampleEnzyme.tryptic(st))
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_missed_cleavage
|
21
|
-
st = "CRGATKKTAGRPMEKLLLERTKY"
|
22
|
-
zero = %w(CR GATK K TAGRPMEK LLLER TK Y)
|
23
|
-
assert_equal(zero.to_set, SampleEnzyme.tryptic(st,0).to_set)
|
24
|
-
one = %w(CRGATK GATKK KTAGRPMEK TAGRPMEKLLLER LLLERTK TKY)
|
25
|
-
assert_equal((zero+one).to_set, SampleEnzyme.tryptic(st,1).to_set)
|
26
|
-
two = %w(CRGATKK GATKKTAGRPMEK KTAGRPMEKLLLER TAGRPMEKLLLERTK LLLERTKY)
|
27
|
-
all = zero + one + two
|
28
|
-
assert_equal(all.to_set, SampleEnzyme.tryptic(st,2).to_set)
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
|
-
end
|
data/test/tc_scan.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'test/unit'
|
3
|
-
require 'spec/scan'
|
4
|
-
|
5
|
-
class ScanTest < Test::Unit::TestCase
|
6
|
-
include Spec
|
7
|
-
def test_add_parent_scan
|
8
|
-
s1 = Scan.new(1,1,0.13)
|
9
|
-
s2 = Scan.new(2,2,0.23)
|
10
|
-
s3 = Scan.new(3,2,0.33)
|
11
|
-
s4 = Scan.new(4,3,0.43)
|
12
|
-
s5 = Scan.new(5,3,0.53)
|
13
|
-
s6 = Scan.new(6,1,0.63)
|
14
|
-
s7 = Scan.new(7,2,0.73)
|
15
|
-
s8 = Scan.new(8,3,0.83)
|
16
|
-
s9 = Scan.new(9,2,0.93)
|
17
|
-
scans = [s1,s2,s3,s4,s5,s6,s7,s8,s9]
|
18
|
-
parents = [nil,s1,s1,s3,s3,nil,s6,s7,s6]
|
19
|
-
Scan.add_parent_scan(scans)
|
20
|
-
|
21
|
-
scans.each_with_index do |scan,i|
|
22
|
-
assert_equal parents[i], scan.parent
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|