msf 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +24 -0
- data/Gemfile.lock +67 -0
- data/LICENSE.txt +20 -0
- data/README.md +45 -0
- data/Rakefile +43 -0
- data/VERSION +1 -0
- data/bin/ibspectra +43 -0
- data/erd/config.png +0 -0
- data/erd/empty.png +0 -0
- data/erd/erd.png +0 -0
- data/erd/msf.xcdatamodeld/.xccurrentversion +8 -0
- data/erd/msf.xcdatamodeld/msf.xcdatamodel/contents +330 -0
- data/erd/schema.txt +666 -0
- data/lib/msf.rb +2 -0
- data/lib/msf/models.rb +4 -0
- data/lib/msf/models/amino_acid.rb +50 -0
- data/lib/msf/models/amino_acid_modification.rb +55 -0
- data/lib/msf/models/amino_acid_modification_neutral_loss.rb +31 -0
- data/lib/msf/models/amino_acid_modifications_amino_acid_nls.rb +23 -0
- data/lib/msf/models/amino_acid_modifications_amino_acids.rb +27 -0
- data/lib/msf/models/annotation_data_version.rb +20 -0
- data/lib/msf/models/annotation_dataset.rb +29 -0
- data/lib/msf/models/annotation_group.rb +38 -0
- data/lib/msf/models/annotation_type.rb +23 -0
- data/lib/msf/models/chromatogram.rb +26 -0
- data/lib/msf/models/custom_data_field.rb +56 -0
- data/lib/msf/models/custom_data_peptide.rb +25 -0
- data/lib/msf/models/custom_data_processing_node.rb +25 -0
- data/lib/msf/models/custom_data_protein.rb +25 -0
- data/lib/msf/models/custom_data_spectrum.rb +25 -0
- data/lib/msf/models/enzyme.rb +32 -0
- data/lib/msf/models/fasta_file.rb +50 -0
- data/lib/msf/models/file_info.rb +41 -0
- data/lib/msf/models/mass_peak.rb +36 -0
- data/lib/msf/models/peptide.rb +118 -0
- data/lib/msf/models/peptide_score.rb +34 -0
- data/lib/msf/models/peptide_score_decoy.rb +34 -0
- data/lib/msf/models/peptide_terminal_modification.rb +29 -0
- data/lib/msf/models/peptides_amino_acid_modifications.rb +32 -0
- data/lib/msf/models/peptides_proteins.rb +27 -0
- data/lib/msf/models/processing_node.rb +65 -0
- data/lib/msf/models/processing_node_score.rb +45 -0
- data/lib/msf/models/protein.rb +38 -0
- data/lib/msf/models/protein_annotation.rb +35 -0
- data/lib/msf/models/protein_identification_group.rb +19 -0
- data/lib/msf/models/protein_score.rb +34 -0
- data/lib/msf/models/reporter_ion_quan_result.rb +31 -0
- data/lib/msf/models/reporter_ion_quan_result_search_spectrum.rb +29 -0
- data/lib/msf/models/scan_event.rb +37 -0
- data/lib/msf/models/schema_info.rb +29 -0
- data/lib/msf/models/spectrum.rb +34 -0
- data/lib/msf/models/spectrum_header.rb +63 -0
- data/lib/msf/models/spectrum_score.rb +24 -0
- data/lib/msf/models/taxonomy_name.rb +26 -0
- data/lib/msf/models/workflow_info.rb +46 -0
- data/lib/msf/models/workflow_message.rb +31 -0
- data/lib/msf/msf.rb +32 -0
- data/lib/msf/sql/enzyme_cleavage_specificity.rb +16 -0
- data/lib/msf/sql/false_discovery_rate.rb +24 -0
- data/lib/msf/sql/fasta_file_protein_annotation.rb +17 -0
- data/lib/msf/sql/mass_peak_relation.rb +17 -0
- data/lib/msf/sql/peptide_amino_acid_modification_decoy.rb +23 -0
- data/lib/msf/sql/peptide_decoy.rb +32 -0
- data/lib/msf/sql/peptide_terminal_modification_decoy.rb +20 -0
- data/lib/msf/sql/precursor_ion_quan_result.rb +29 -0
- data/lib/msf/sql/precursor_ion_quan_result_event_spectrum.rb +17 -0
- data/lib/msf/sql/precursor_ion_quan_result_search_spectrum.rb +20 -0
- data/lib/msf/sql/processing_node_filter_parameter.rb +29 -0
- data/lib/msf/sql/processing_node_interface.rb +19 -0
- data/lib/msf/sql/processing_node_parameter.rb +46 -0
- data/lib/msf/sql/processing_node_spectrum.rb +16 -0
- data/lib/msf/sql/quan_result.rb +40 -0
- data/lib/msf/sql/result_filter_set.rb +12 -0
- data/lib/msf/sql/taxonomy_node.rb +26 -0
- data/msf.gemspec +143 -0
- data/spec/msf_spec.rb +7 -0
- data/spec/spec_helper.rb +14 -0
- metadata +275 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
# ActiveRecord model of MSF SpectrumScore
|
2
|
+
#
|
3
|
+
# Example:
|
4
|
+
#
|
5
|
+
# SpectrumScore.first.protein_score
|
6
|
+
class SpectrumScore < ActiveRecord::Base
|
7
|
+
def self.table_name
|
8
|
+
:SpectrumScores
|
9
|
+
end
|
10
|
+
def self.primary_key
|
11
|
+
[:ProcessingNodeNumber, :SpectrumID]
|
12
|
+
end
|
13
|
+
def processing_node_number
|
14
|
+
self.ProcessingNodeNumber
|
15
|
+
end
|
16
|
+
def spectrum_id
|
17
|
+
self.SpectrumID
|
18
|
+
end
|
19
|
+
def score
|
20
|
+
self.Score
|
21
|
+
end
|
22
|
+
belongs_to :spectrum,
|
23
|
+
:foreign_key => "SpectrumID"
|
24
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# ActiveRecord model of MSF TaxonomyName
|
2
|
+
#
|
3
|
+
# Example:
|
4
|
+
#
|
5
|
+
# TaxonomyName.find(1)
|
6
|
+
# TaxonomyName.first.name
|
7
|
+
class TaxonomyName < ActiveRecord::Base
|
8
|
+
def self.table_name
|
9
|
+
:TaxonomyNames
|
10
|
+
end
|
11
|
+
def self.primary_key
|
12
|
+
:TaxonomyID
|
13
|
+
end
|
14
|
+
def taxonomy_id
|
15
|
+
self.TaxonomyID
|
16
|
+
end
|
17
|
+
def name
|
18
|
+
self.Name
|
19
|
+
end
|
20
|
+
def name_category
|
21
|
+
self.NameCategory
|
22
|
+
end
|
23
|
+
# associations
|
24
|
+
belongs_to :taxonomy_names,
|
25
|
+
:foreign_key => "TaxonomyID"
|
26
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# ActiveRecord model of MSF WorkflowInfo
|
2
|
+
#
|
3
|
+
# Example:
|
4
|
+
#
|
5
|
+
# WorkflowInfo.first.workflow_description
|
6
|
+
class WorkflowInfo < ActiveRecord::Base
|
7
|
+
def self.table_name
|
8
|
+
:WorkflowInfo
|
9
|
+
end
|
10
|
+
def workflow_name
|
11
|
+
self.WorkflowName
|
12
|
+
end
|
13
|
+
def workflow_description
|
14
|
+
self.WorkflowDescription
|
15
|
+
end
|
16
|
+
def workflow_state
|
17
|
+
self.WorkflowState
|
18
|
+
end
|
19
|
+
def workflow_start_date
|
20
|
+
self.WorkflowStartDate
|
21
|
+
end
|
22
|
+
def workflow_template
|
23
|
+
self.WorkflowTemplate
|
24
|
+
end
|
25
|
+
def user
|
26
|
+
self.User
|
27
|
+
end
|
28
|
+
def workflow_guid
|
29
|
+
self.WorkflowGUID
|
30
|
+
end
|
31
|
+
def machine_guid
|
32
|
+
self.MachineGUID
|
33
|
+
end
|
34
|
+
def machine_name
|
35
|
+
self.MachineName
|
36
|
+
end
|
37
|
+
def merge_similar_identification_results
|
38
|
+
self.MergeSimilarIdentificationResults
|
39
|
+
end
|
40
|
+
def is_valid
|
41
|
+
self.IsValid
|
42
|
+
end
|
43
|
+
def version
|
44
|
+
self.Version
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# ActiveRecord model of MSF WorkflowMessage
|
2
|
+
#
|
3
|
+
# Example:
|
4
|
+
#
|
5
|
+
# WorkflowMessage.first.message
|
6
|
+
class WorkflowMessage < ActiveRecord::Base
|
7
|
+
def self.table_name
|
8
|
+
:WorkflowMessages
|
9
|
+
end
|
10
|
+
def self.primary_key
|
11
|
+
:MessageID
|
12
|
+
end
|
13
|
+
def message_id
|
14
|
+
self.MessageID
|
15
|
+
end
|
16
|
+
def processing_node_id
|
17
|
+
self.ProcessingNodeID
|
18
|
+
end
|
19
|
+
def processing_node_number
|
20
|
+
self.ProcessingNodeNumber
|
21
|
+
end
|
22
|
+
def time
|
23
|
+
self.Time
|
24
|
+
end
|
25
|
+
def message_kind
|
26
|
+
self.MessageKind
|
27
|
+
end
|
28
|
+
def message
|
29
|
+
self.Message
|
30
|
+
end
|
31
|
+
end
|
data/lib/msf/msf.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
|
3
|
+
# This class establishes an ActiveRecord connection to an MSF file (sqlite3 database) at the specified path.
|
4
|
+
class MSF
|
5
|
+
|
6
|
+
# filesystem PATH to an MSF file
|
7
|
+
attr_accessor :path
|
8
|
+
# the resulting ActiveRecord::Base.connection
|
9
|
+
attr_reader :connection
|
10
|
+
|
11
|
+
# * assign any passed attributes
|
12
|
+
# * define connection
|
13
|
+
#
|
14
|
+
# Example:
|
15
|
+
#
|
16
|
+
# msf = MSF.new({
|
17
|
+
# :path => './my.msf'
|
18
|
+
# })
|
19
|
+
# msf.connection.tables
|
20
|
+
# msf.connection.disconnect!
|
21
|
+
# msf.reconnect
|
22
|
+
def initialize(attributes={})
|
23
|
+
attributes.each do |name, value|
|
24
|
+
send("#{name}=", value)
|
25
|
+
end
|
26
|
+
@connection = ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => @path).connection
|
27
|
+
end
|
28
|
+
# reconnect to the MSF file (sqlite3 database)
|
29
|
+
def reconnect
|
30
|
+
@connection = ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => @path).connection
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class EnzymeCleavageSpecificity < Sequel::Model(:EnzymesCleavageSpecificities)
|
4
|
+
set_primary_key [:EnzymeID, :Specificity]
|
5
|
+
# ruby style accessors
|
6
|
+
def enzyme_id
|
7
|
+
self.EnzymeID
|
8
|
+
end
|
9
|
+
def specificity
|
10
|
+
self.Specificity
|
11
|
+
end
|
12
|
+
# associations
|
13
|
+
many_to_one enzyme, :key => :EnzymeID
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class FalseDiscoveryRate < Sequel::Model(:FalseDiscoveryRates)
|
4
|
+
set_primary_key [:ProcessingNodeNumber, :ConfidenceLevel]
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def confidence_level
|
10
|
+
self.ConfidenceLevel
|
11
|
+
end
|
12
|
+
def true_count
|
13
|
+
self.TrueCount
|
14
|
+
end
|
15
|
+
def false_count
|
16
|
+
self.FalseCount
|
17
|
+
end
|
18
|
+
def target
|
19
|
+
self.Target
|
20
|
+
end
|
21
|
+
# associations
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class FastaFileProteinAnnotation < Sequel::Model(:FastaFilesProteinAnnotations)
|
4
|
+
set_primary_key [:FastaFileID, :ProteinAnnotationID]
|
5
|
+
# ruby style accessors
|
6
|
+
def fasta_file_id
|
7
|
+
self.FastaFileID
|
8
|
+
end
|
9
|
+
def protein_annotation_id
|
10
|
+
self.ProteinAnnotationID
|
11
|
+
end
|
12
|
+
# associations
|
13
|
+
many_to_one fasta_file, :key => :FastaFileID
|
14
|
+
many_to_one protein_annotation, :key => :ProteinAnnotationID
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class MassPeakRelation < Sequel::Model(:MassPeakRelations)
|
4
|
+
set_primary_key [:MassPeakID, :RelatedMassPeakID]
|
5
|
+
# ruby style accessors
|
6
|
+
def mass_peak_id
|
7
|
+
self.MassPeakID
|
8
|
+
end
|
9
|
+
def related_mass_peak_id
|
10
|
+
self.RelatedMassPeakID
|
11
|
+
end
|
12
|
+
# associations
|
13
|
+
many_to_one mass_peak, :key => :MassPeakID
|
14
|
+
many_to_one related_mass_peak, :key => :RelatedMassPeakID
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PeptideAminoAcidModificationDecoy < Sequel::Model(:PeptidesAminoAcidModifications_decoy)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def peptide_id
|
10
|
+
self.PeptideID
|
11
|
+
end
|
12
|
+
def amino_acid_modification_id
|
13
|
+
self.AminoAcidModificationID
|
14
|
+
end
|
15
|
+
def position
|
16
|
+
self.Position
|
17
|
+
end
|
18
|
+
# associations
|
19
|
+
many_to_one peptide, :key => :PeptideID
|
20
|
+
many_to_one amino_acid_modification, :key => :AminoAcidModificationID
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PeptideDecoy < Sequel::Model(:Peptides_decoy)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def peptide_id
|
10
|
+
self.PeptideID
|
11
|
+
end
|
12
|
+
def spectrum_id
|
13
|
+
self.SpectrumID
|
14
|
+
end
|
15
|
+
def total_ions_count
|
16
|
+
self.TotalIonsCount
|
17
|
+
end
|
18
|
+
def matched_ions_count
|
19
|
+
self.MatchedIonsCount
|
20
|
+
end
|
21
|
+
def confidence_level
|
22
|
+
self.ConfidenceLevel
|
23
|
+
end
|
24
|
+
def sequence
|
25
|
+
self.Sequence
|
26
|
+
end
|
27
|
+
# associations
|
28
|
+
many_to_one peptide, :key => :PeptideID
|
29
|
+
many_to_one spectrum, :key => :SpectrumID
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PeptideTerminalModificationDecoy < Sequel::Model(:PeptidesTerminalModifications_decoy)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def peptide_id
|
10
|
+
self.PeptideID
|
11
|
+
end
|
12
|
+
def terminal_modification_id
|
13
|
+
self.TerminalModificationID
|
14
|
+
end
|
15
|
+
# associations
|
16
|
+
many_to_one peptide, :key => :PeptideID
|
17
|
+
many_to_one terminal_modification, :key => :TerminalModificationID
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PrecursorIonQuanResult < Sequel::Model(:PrecursorIonQuanResults)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def quan_channel_id
|
7
|
+
self.QuanChannelID
|
8
|
+
end
|
9
|
+
def quan_result_id
|
10
|
+
self.QuanResultID
|
11
|
+
end
|
12
|
+
def mass
|
13
|
+
self.Mass
|
14
|
+
end
|
15
|
+
def charge
|
16
|
+
self.Charge
|
17
|
+
end
|
18
|
+
def area
|
19
|
+
self.Area
|
20
|
+
end
|
21
|
+
def retention_time
|
22
|
+
self.RetentionTime
|
23
|
+
end
|
24
|
+
# associations
|
25
|
+
many_to_one quan_channel, :key => :QuanChannelID
|
26
|
+
many_to_one quan_result, :key => :QuanResultID
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PrecursorIonQuanResultEventSpectrum < Sequel::Model(:PrecursorIonQuanResultsEventSpectra)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def quan_result_id
|
7
|
+
self.QuanResultID
|
8
|
+
end
|
9
|
+
def quan_spectrum_id
|
10
|
+
self.QuanSpectrumID
|
11
|
+
end
|
12
|
+
# associations
|
13
|
+
many_to_one quan_result, :key => :QuanResultID
|
14
|
+
many_to_one quan_spectrum, :key => :QuanSpectrumID
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class PrecursorIonQuanResultSearchSpectrum < Sequel::Model(:PrecursorIonQuanResultsSearchSpectra)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def quan_result_id
|
10
|
+
self.QuanResultID
|
11
|
+
end
|
12
|
+
def search_spectrum_id
|
13
|
+
self.SearchSpectrumID
|
14
|
+
end
|
15
|
+
# associations
|
16
|
+
many_to_one quan_result, :key => :QuanResultID
|
17
|
+
many_to_one search_spectrum, :key => :SearchSpectrumID
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class ProcessingNodeFilterParameter < Sequel::Model(:ProcessingNodeFilterParameters)
|
4
|
+
set_primary_key [:ProcessingNodeNumber, :FilterParameterName]
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_number
|
7
|
+
self.ProcessingNodeNumber
|
8
|
+
end
|
9
|
+
def filter_parameter_name
|
10
|
+
self.FilterParameterName
|
11
|
+
end
|
12
|
+
def filter_module_type_id
|
13
|
+
self.FilterModuleTypeID
|
14
|
+
end
|
15
|
+
def filter_module_number
|
16
|
+
self.FilterModuleNumber
|
17
|
+
end
|
18
|
+
def processing_node_id
|
19
|
+
self.ProcessingNodeID
|
20
|
+
end
|
21
|
+
def filter_parameter_value
|
22
|
+
self.FilterParameterValue
|
23
|
+
end
|
24
|
+
# associations
|
25
|
+
many_to_one filter_module_type, :key => :FilterModuleTypeID
|
26
|
+
many_to_one processing_node, :key => :ProcessingNodeID
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ThermoMSF
|
2
|
+
module Model
|
3
|
+
class ProcessingNodeInterface < Sequel::Model(:ProcessingNodeInterfaces)
|
4
|
+
set_primary_key :
|
5
|
+
# ruby style accessors
|
6
|
+
def processing_node_id
|
7
|
+
self.ProcessingNodeID
|
8
|
+
end
|
9
|
+
def interface_kind
|
10
|
+
self.InterfaceKind
|
11
|
+
end
|
12
|
+
def interface_name
|
13
|
+
self.InterfaceName
|
14
|
+
end
|
15
|
+
# associations
|
16
|
+
many_to_one processing_node, :key => :ProcessingNodeID
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|