msf 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +67 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +45 -0
  7. data/Rakefile +43 -0
  8. data/VERSION +1 -0
  9. data/bin/ibspectra +43 -0
  10. data/erd/config.png +0 -0
  11. data/erd/empty.png +0 -0
  12. data/erd/erd.png +0 -0
  13. data/erd/msf.xcdatamodeld/.xccurrentversion +8 -0
  14. data/erd/msf.xcdatamodeld/msf.xcdatamodel/contents +330 -0
  15. data/erd/schema.txt +666 -0
  16. data/lib/msf.rb +2 -0
  17. data/lib/msf/models.rb +4 -0
  18. data/lib/msf/models/amino_acid.rb +50 -0
  19. data/lib/msf/models/amino_acid_modification.rb +55 -0
  20. data/lib/msf/models/amino_acid_modification_neutral_loss.rb +31 -0
  21. data/lib/msf/models/amino_acid_modifications_amino_acid_nls.rb +23 -0
  22. data/lib/msf/models/amino_acid_modifications_amino_acids.rb +27 -0
  23. data/lib/msf/models/annotation_data_version.rb +20 -0
  24. data/lib/msf/models/annotation_dataset.rb +29 -0
  25. data/lib/msf/models/annotation_group.rb +38 -0
  26. data/lib/msf/models/annotation_type.rb +23 -0
  27. data/lib/msf/models/chromatogram.rb +26 -0
  28. data/lib/msf/models/custom_data_field.rb +56 -0
  29. data/lib/msf/models/custom_data_peptide.rb +25 -0
  30. data/lib/msf/models/custom_data_processing_node.rb +25 -0
  31. data/lib/msf/models/custom_data_protein.rb +25 -0
  32. data/lib/msf/models/custom_data_spectrum.rb +25 -0
  33. data/lib/msf/models/enzyme.rb +32 -0
  34. data/lib/msf/models/fasta_file.rb +50 -0
  35. data/lib/msf/models/file_info.rb +41 -0
  36. data/lib/msf/models/mass_peak.rb +36 -0
  37. data/lib/msf/models/peptide.rb +118 -0
  38. data/lib/msf/models/peptide_score.rb +34 -0
  39. data/lib/msf/models/peptide_score_decoy.rb +34 -0
  40. data/lib/msf/models/peptide_terminal_modification.rb +29 -0
  41. data/lib/msf/models/peptides_amino_acid_modifications.rb +32 -0
  42. data/lib/msf/models/peptides_proteins.rb +27 -0
  43. data/lib/msf/models/processing_node.rb +65 -0
  44. data/lib/msf/models/processing_node_score.rb +45 -0
  45. data/lib/msf/models/protein.rb +38 -0
  46. data/lib/msf/models/protein_annotation.rb +35 -0
  47. data/lib/msf/models/protein_identification_group.rb +19 -0
  48. data/lib/msf/models/protein_score.rb +34 -0
  49. data/lib/msf/models/reporter_ion_quan_result.rb +31 -0
  50. data/lib/msf/models/reporter_ion_quan_result_search_spectrum.rb +29 -0
  51. data/lib/msf/models/scan_event.rb +37 -0
  52. data/lib/msf/models/schema_info.rb +29 -0
  53. data/lib/msf/models/spectrum.rb +34 -0
  54. data/lib/msf/models/spectrum_header.rb +63 -0
  55. data/lib/msf/models/spectrum_score.rb +24 -0
  56. data/lib/msf/models/taxonomy_name.rb +26 -0
  57. data/lib/msf/models/workflow_info.rb +46 -0
  58. data/lib/msf/models/workflow_message.rb +31 -0
  59. data/lib/msf/msf.rb +32 -0
  60. data/lib/msf/sql/enzyme_cleavage_specificity.rb +16 -0
  61. data/lib/msf/sql/false_discovery_rate.rb +24 -0
  62. data/lib/msf/sql/fasta_file_protein_annotation.rb +17 -0
  63. data/lib/msf/sql/mass_peak_relation.rb +17 -0
  64. data/lib/msf/sql/peptide_amino_acid_modification_decoy.rb +23 -0
  65. data/lib/msf/sql/peptide_decoy.rb +32 -0
  66. data/lib/msf/sql/peptide_terminal_modification_decoy.rb +20 -0
  67. data/lib/msf/sql/precursor_ion_quan_result.rb +29 -0
  68. data/lib/msf/sql/precursor_ion_quan_result_event_spectrum.rb +17 -0
  69. data/lib/msf/sql/precursor_ion_quan_result_search_spectrum.rb +20 -0
  70. data/lib/msf/sql/processing_node_filter_parameter.rb +29 -0
  71. data/lib/msf/sql/processing_node_interface.rb +19 -0
  72. data/lib/msf/sql/processing_node_parameter.rb +46 -0
  73. data/lib/msf/sql/processing_node_spectrum.rb +16 -0
  74. data/lib/msf/sql/quan_result.rb +40 -0
  75. data/lib/msf/sql/result_filter_set.rb +12 -0
  76. data/lib/msf/sql/taxonomy_node.rb +26 -0
  77. data/msf.gemspec +143 -0
  78. data/spec/msf_spec.rb +7 -0
  79. data/spec/spec_helper.rb +14 -0
  80. metadata +275 -0
@@ -0,0 +1,2 @@
1
+ require 'msf/msf'
2
+ require 'msf/models'
@@ -0,0 +1,4 @@
1
+ # Load all of the MSF models
2
+ MSF_ROOT = File.expand_path(File.dirname(__FILE__))
3
+ Dir.glob("#{MSF_ROOT}/models/*.rb").each do |r| require r end
4
+ Dir.glob("#{MSF_ROOT}/models/*/*.rb").each do |r| require r end
@@ -0,0 +1,50 @@
1
+ # ActiveRecord model of MSF AminoAcid
2
+ #
3
+ # Example:
4
+ #
5
+ # AminoAcid.find(1)
6
+ # AminoAcid.first.monoisotopic_mass
7
+ # AminoAcid.first.amino_acid_modifications.first.modification_name
8
+ class AminoAcid < ActiveRecord::Base
9
+ def self.masses
10
+ if @masses.nil?
11
+ @masses = {}
12
+ AminoAcid.select("OneLetterCode,MonoisotopicMass").where("OneLetterCode != ' '").map {|aa| @masses[aa.one_letter_code] = aa.monoisotopic_mass}
13
+ end
14
+ @masses
15
+ end
16
+ def self.mass_for_one_letter_code(aa)
17
+ self.masses[aa]
18
+ end
19
+ def self.table_name
20
+ :AminoAcids
21
+ end
22
+ def self.primary_key
23
+ :AminoAcidID
24
+ end
25
+ def amino_acid_id
26
+ self.AminoAcidID
27
+ end
28
+ def amino_acid_name
29
+ self.AminoAcidName
30
+ end
31
+ def one_letter_code
32
+ self.OneLetterCode
33
+ end
34
+ def three_letter_code
35
+ self.ThreeLetterCode
36
+ end
37
+ def monoisotopic_mass
38
+ self.MonoisotopicMass
39
+ end
40
+ def average_mass
41
+ self.AverageMass
42
+ end
43
+ def sum_formula
44
+ self.SumFormula
45
+ end
46
+ # associations
47
+ has_many :amino_acid_modifications,
48
+ :class_name => 'AminoAcidModificationsAminoAcids',
49
+ :foreign_key => "AminoAcidID"
50
+ end
@@ -0,0 +1,55 @@
1
+ # ActiveRecord model of MSF AminoAcidModification
2
+ #
3
+ # Example:
4
+ #
5
+ # AminoAcidModification.find(1)
6
+ # AminoAcidModification.first.modification_name
7
+ # AminoAcidModification.first.amino_acids.first.amino_acid_name
8
+ class AminoAcidModification < ActiveRecord::Base
9
+ def self.table_name
10
+ :AminoAcidModifications
11
+ end
12
+ def self.primary_key
13
+ :AminoAcidModificationID
14
+ end
15
+ def amino_acid_modification_id
16
+ self.AminoAcidModificationID
17
+ end
18
+ def modification_name
19
+ self.ModificationName
20
+ end
21
+ def delta_mass
22
+ self.DeltaMass
23
+ end
24
+ def substitution
25
+ self.Substitution
26
+ end
27
+ def leaving_group
28
+ self.LeavingGroup
29
+ end
30
+ def abbreviation
31
+ self.Abbreviation
32
+ end
33
+ def position_type
34
+ self.PositionType
35
+ end
36
+ def is_active
37
+ self.IsActive
38
+ end
39
+ def delta_average_mass
40
+ self.DeltaAverageMass
41
+ end
42
+ def unimod_accession
43
+ self.UnimodAccession
44
+ end
45
+ def is_substitution
46
+ self.IsSubstitution
47
+ end
48
+ # associations
49
+ # join table for amino_acid
50
+ has_one :amino_acid_modification_amino_acid,
51
+ :class_name => 'AminoAcidModificationsAminoAcids',
52
+ :foreign_key => "AminoAcidModificationID"
53
+ has_one :amino_acid, :through => :amino_acid_modification_amino_acid
54
+
55
+ end
@@ -0,0 +1,31 @@
1
+ # ActiveRecord model of MSF AminoAcidModificationsNeutralLoss
2
+ #
3
+ # Example:
4
+ #
5
+ # AminoAcidModificationNeutralLoss.find(1)
6
+ # AminoAcidModificationNeutralLoss.first
7
+ # AminoAcidModificationNeutralLoss.first.amino_acids.first.monoisotopic_mass
8
+ class AminoAcidModificationNeutralLoss < ActiveRecord::Base
9
+ def self.table_name
10
+ :AminoAcidModificationsNeutralLosses
11
+ end
12
+ def self.primary_key
13
+ :NeutralLossID
14
+ end
15
+ def neutral_loss_id
16
+ self.NeutralLossID
17
+ end
18
+ def name
19
+ self.Name
20
+ end
21
+ def monoisotopic_mass
22
+ self.MonoisotopicMass
23
+ end
24
+ def average_mass
25
+ self.AverageMass
26
+ end
27
+ has_and_belongs_to_many :amino_acids,
28
+ :join_table => "AminoAcidModificationsAminoAcidsNL",
29
+ :foreign_key => "NeutralLossID",
30
+ :association_foreign_key => "AminoAcidID"
31
+ end
@@ -0,0 +1,23 @@
1
+ # ActiveRecord model of MSF AminoAcidModificationsAminoAcidNLs
2
+ # Join table for AminoAcid and AminoAcidModificationsNeutralLosses HABTM
3
+ #
4
+ # Example:
5
+ #
6
+ # AminoAcidModificationsAminoAcidNLs.first
7
+ class AminoAcidModificationsAminoAcidNLs < ActiveRecord::Base
8
+ def self.table_name
9
+ :AminoAcidModificationsAminoAcidsNL
10
+ end
11
+ def self.primary_key
12
+ [:AminoAcidModificationID, :AminoAcidID, :NeutralLossID]
13
+ end
14
+ def amino_acid_modification_id
15
+ self.AminoAcidModificationID
16
+ end
17
+ def amino_acid_id
18
+ self.AminoAcidID
19
+ end
20
+ def neutral_loss_id
21
+ self.NeutralLossID
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ # ActiveRecord model of MSF AminoAcidModificationsAminoAcids
2
+ # Join table for AminoAcid and AminoAcidModification HABTM
3
+ #
4
+ # Example:
5
+ #
6
+ # AminoAcidModificationsAminoAcids.first.classification
7
+ class AminoAcidModificationsAminoAcids < ActiveRecord::Base
8
+ def self.table_name
9
+ :AminoAcidModificationsAminoAcids
10
+ end
11
+ def self.primary_key
12
+ [:AminoAcidModificationID, :AminoAcidID]
13
+ end
14
+ def amino_acid_modification_id
15
+ self.AminoAcidModificationID
16
+ end
17
+ def amino_acid_id
18
+ self.AminoAcidID
19
+ end
20
+ def classification
21
+ self.Classification
22
+ end
23
+ belongs_to :amino_acid,
24
+ :foreign_key => "AminoAcidID"
25
+ belongs_to :amino_acid_modification,
26
+ :foreign_key => "AminoAcidModificationID"
27
+ end
@@ -0,0 +1,20 @@
1
+ # ActiveRecord model of MSF AnnotationDataVersion
2
+ #
3
+ # Example:
4
+ #
5
+ # AnnotationDataVersion.find(1)
6
+ # AnnotationDataVersion.first.name
7
+ class AnnotationDataVersion < ActiveRecord::Base
8
+ def self.table_name
9
+ :AnnotationDataVersion
10
+ end
11
+ def self.primary_key
12
+ :PcDataVersion
13
+ end
14
+ def pc_data_version
15
+ self.PcDataVersion
16
+ end
17
+ def pc_data_release
18
+ self.PcDataRelease
19
+ end
20
+ end
@@ -0,0 +1,29 @@
1
+ # ActiveRecord model of MSF AnnotationDataset
2
+ #
3
+ # Example:
4
+ #
5
+ # AnnotationDataset.find(1)
6
+ # AnnotationDataset.first.name
7
+ class AnnotationDataset < ActiveRecord::Base
8
+ def self.table_name
9
+ :AnnotationDataset
10
+ end
11
+ def self.primary_key
12
+ :DatasetId
13
+ end
14
+ def dataset_id
15
+ self.DatasetId
16
+ end
17
+ def name
18
+ self.Name
19
+ end
20
+ def display_name
21
+ self.DisplayName
22
+ end
23
+ def guid
24
+ self.Guid
25
+ end
26
+ def description
27
+ self.Description
28
+ end
29
+ end
@@ -0,0 +1,38 @@
1
+ # ActiveRecord model of MSF AnnotationGroup
2
+ #
3
+ # Example:
4
+ #
5
+ # AnnotationGroup.find(1)
6
+ # AnnotationGroup.first.name
7
+ class AnnotationGroup < ActiveRecord::Base
8
+ def self.table_name
9
+ :AnnotationGroups
10
+ end
11
+ def self.primary_key
12
+ [:AnnotationGroupId, :DatasetId]
13
+ end
14
+ def annotation_group_id
15
+ self.AnnotationGroupId
16
+ end
17
+ def dataset_id
18
+ self.DatasetId
19
+ end
20
+ def description
21
+ self.Description
22
+ end
23
+ def position
24
+ self.Position
25
+ end
26
+ def color_r
27
+ self.ColorR
28
+ end
29
+ def color_g
30
+ self.ColorG
31
+ end
32
+ def color_b
33
+ self.ColorB
34
+ end
35
+ def group_definition
36
+ self.GroupDefinition
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ # ActiveRecord model of MSF AnnotationType
2
+ #
3
+ # Example:
4
+ #
5
+ # AnnotationType.find(1)
6
+ # AnnotationType.first.name
7
+ class AnnotationType < ActiveRecord::Base
8
+ def self.table_name
9
+ :AnnotationTypes
10
+ end
11
+ def self.primary_key
12
+ :AnnotationTypeId
13
+ end
14
+ def annotation_type_id
15
+ self.AnnotationTypeId
16
+ end
17
+ def name
18
+ self.Name
19
+ end
20
+ def description
21
+ self.Description
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ # ActiveRecord model of MSF Chromatogram
2
+ #
3
+ # Example:
4
+ #
5
+ # Chromatogram.find(1)
6
+ # Chromatogram.all.first.trace_type
7
+ # Chromatogram.first.file_infos.file_name
8
+ class Chromatogram < ActiveRecord::Base
9
+ def self.table_name
10
+ :Chromatograms
11
+ end
12
+ def self.primary_key
13
+ [:FileID, :TraceType]
14
+ end
15
+ def file_id
16
+ self.FileID
17
+ end
18
+ def trace_type
19
+ self.TraceType
20
+ end
21
+ def chromatogram
22
+ self.Chromatogram
23
+ end
24
+ belongs_to :file_info,
25
+ :foreign_key => "FileID"
26
+ end
@@ -0,0 +1,56 @@
1
+ # ActiveRecord model of MSF CustomDataField
2
+ #
3
+ # Example:
4
+ #
5
+ # CustomDataField.find(1)
6
+ # CustomDataField.first.display_name
7
+ class CustomDataField < ActiveRecord::Base
8
+ def self.table_name
9
+ :CustomDataFields
10
+ end
11
+ def self.primary_key
12
+ :FieldID
13
+ end
14
+ def field_id
15
+ self.FieldID
16
+ end
17
+ def guid
18
+ self.Guid
19
+ end
20
+ def display_name
21
+ self.DisplayName
22
+ end
23
+ def source_node_number
24
+ self.SourceNodeNumber
25
+ end
26
+ def target_node_number
27
+ self.TargetNodeNumber
28
+ end
29
+ def data_type
30
+ self.DataType
31
+ end
32
+ def data_target
33
+ self.DataTarget
34
+ end
35
+ def version
36
+ self.Version
37
+ end
38
+ def access_mode
39
+ self.AccessMode
40
+ end
41
+ def visibility
42
+ self.Visibility
43
+ end
44
+ def group_visibility
45
+ self.GroupVisibility
46
+ end
47
+ def format
48
+ self.Format
49
+ end
50
+ def plot_type
51
+ self.PlotType
52
+ end
53
+ def data_purpose
54
+ self.DataPurpose
55
+ end
56
+ end
@@ -0,0 +1,25 @@
1
+ # ActiveRecord model of MSF CustomDataPeptide
2
+ #
3
+ # Example:
4
+ #
5
+ # CustomDataPeptide.find(1)
6
+ # CustomDataPeptide.first.field_value
7
+ class CustomDataPeptide < ActiveRecord::Base
8
+ def self.table_name
9
+ :CustomDataPeptides
10
+ end
11
+ def self.primary_key
12
+ [:FieldID, :PeptideID]
13
+ end
14
+ def field_id
15
+ self.FieldID
16
+ end
17
+ def peptide_id
18
+ self.PeptideID
19
+ end
20
+ def field_value
21
+ self.FieldValue
22
+ end
23
+ belongs_to :custom_data_field,
24
+ :foreign_key => "FieldID"
25
+ end
@@ -0,0 +1,25 @@
1
+ # ActiveRecord model of MSF CustomDataProcessingNode
2
+ #
3
+ # Example:
4
+ #
5
+ # CustomDataProcessingNode.find(1)
6
+ # CustomDataProcessingNode.first.field_value
7
+ class CustomDataProcessingNode < ActiveRecord::Base
8
+ def self.table_name
9
+ :CustomDataProcessingNodes
10
+ end
11
+ def self.primary_key
12
+ [:FieldID, :ProcessingNodeNumber]
13
+ end
14
+ def field_id
15
+ self.FieldID
16
+ end
17
+ def processing_node_number
18
+ self.ProcessingNodeNumber
19
+ end
20
+ def field_value
21
+ self.FieldValue
22
+ end
23
+ belongs_to :custom_data_field,
24
+ :foreign_key => "FieldID"
25
+ end