MS-based shotgun proteomics estimates protein abundances using a proxy: peptides. An established method to identify acquired MS/MS spectra is the comparison of each spectrum with peptides in a reference database.
The PeptideDB tool helps to create peptide databases by in silico digestion given proteome information in the FASTA format and a set of parameters that allow the user to mimic conditions of their specific experiment.
The created database stores peptide protein relationships in a SQLite database which can then be supplied to other ProteomIQon tools.
The following table gives an overview of the parameter set:
Name |
"YourNameHere" |
Name of the database |
ParseProteinIDRegexPattern |
id |
Regex pattern for parsing of the protein IDs in the database |
Protease |
Protease.Trypsin |
Protease used for the digestion of the proteins |
MinMissedCleavages |
0 |
Minimal amount of missed cleavages a peptide can have |
MaxMissedCleavages |
2 |
Maximal amount of missed cleavages a peptide can have |
MaxMass |
15000. |
Maximal mass of a peptide in Da |
MinPepLength |
4 |
Minimal length of a peptide |
MaxPepLength |
65 |
Maximal length of a peptide |
IsotopicMod |
[IsotopicMod.N15] |
List of isotopic modifications in the experiment |
MassMode |
MassMode.Monoisotopi |
Method for mass calcluation (possibilities: Monoisotopic & Average) |
FixedMods |
[] |
Fixed modifications of the proteins |
VariableMods |
[Modification.Oxidation'Met';Modification.Acetylation'ProtNTerm'] |
Variable Modifications of the proteins |
VarModThreshold |
4 |
Threshold for variable modifications |
Parameters are handed to the cli tool as .json files. You can download an example file here,
or use an F# script, which can be downloaded or run in Binder at the top of the page, to write your own parameter file:
#r "nuget: BioFSharp.Mz, 0.1.5-beta"
#r "nuget: Newtonsoft.Json, 12.0.3"
#r "nuget: ProteomIQon, 0.0.5"
open BioFSharp.Mz.SearchDB
open Newtonsoft.Json
open ProteomIQon
let peptideDBParams: Dto.PeptideDBParams =
{
Name = "Test"
ParseProteinIDRegexPattern = "id"
Protease = Protease.Trypsin
MinMissedCleavages = 0
MaxMissedCleavages = 2
MaxMass = 15000.0
MinPepLength = 4
MaxPepLength = 65
IsotopicMod = [IsotopicMod.N15]
MassMode = MassMode.Monoisotopic
FixedMods = []
VariableMods = [Modification.Oxidation'Met';Modification.Acetylation'ProtNTerm']
VarModThreshold = 4
}
let serialized =
peptideDBParams
|> JsonConvert.SerializeObject
System.IO.File.WriteAllText("path/to/your/params.json",serialized)
To create a peptide data base just call the tool:
proteomiqon-peptidedb -i "path/to/your/proteom.fasta" -o "path/to/your/outDirectory" -p "path/to/your/params.json"
A detailed description of the CLI arguments the tool expects can be obtained by calling the tool:
proteomiqon-peptidedb --help
namespace BioFSharp
namespace BioFSharp.Mz
module SearchDB
from BioFSharp.Mz
namespace Newtonsoft
namespace Newtonsoft.Json
namespace ProteomIQon
val peptideDBParams : Dto.PeptideDBParams
module Dto
from ProteomIQon
Multiple items
module PeptideDBParams
from ProteomIQon.Dto
--------------------
type PeptideDBParams =
{ Name: string
ParseProteinIDRegexPattern: string
Protease: Protease
MinMissedCleavages: int
MaxMissedCleavages: int
MaxMass: float
MinPepLength: int
MaxPepLength: int
IsotopicMod: IsotopicMod list
MassMode: MassMode
... }
Multiple items
module Protease
from ProteomIQon.Common
--------------------
type Protease = | Trypsin
union case Protease.Trypsin: Protease
Multiple items
module IsotopicMod
from ProteomIQon.Common
--------------------
type IsotopicMod = | N15
union case IsotopicMod.N15: IsotopicMod
Multiple items
module MassMode
from ProteomIQon.Common
--------------------
type MassMode =
| Average
| Monoisotopic
override ToString : unit -> string
union case MassMode.Monoisotopic: MassMode
Multiple items
module Modification
from ProteomIQon.Common
--------------------
type Modification =
| Acetylation'ProtNTerm'
| Carbamidomethyl'Cys'
| Oxidation'Met'
| Phosphorylation'Ser'Thr'Tyr'
| Pyro_Glu'GluNterm'
| Pyro_Glu'GlnNterm'
union case Modification.Oxidation'Met': Modification
union case Modification.Acetylation'ProtNTerm': Modification
val serialized : string
type JsonConvert =
static member DeserializeAnonymousType<'T> : value: string * anonymousTypeObject: 'T -> 'T + 1 overload
static member DeserializeObject : value: string -> obj + 7 overloads
static member DeserializeXNode : value: string -> XDocument + 3 overloads
static member DeserializeXmlNode : value: string -> XmlDocument + 3 overloads
static member EnsureDecimalPlace : value: float * text: string -> string + 1 overload
static member EnsureFloatFormat : value: float * text: string * floatFormatHandling: FloatFormatHandling * quoteChar: char * nullable: bool -> string
static member PopulateObject : value: string * target: obj -> unit + 1 overload
static member SerializeObject : value: obj -> string + 7 overloads
static member SerializeObjectInternal : value: obj * type: Type * jsonSerializer: JsonSerializer -> string
static member SerializeXNode : node: XObject -> string + 2 overloads
...
JsonConvert.SerializeObject(value: obj) : string
JsonConvert.SerializeObject(value: obj, settings: JsonSerializerSettings) : string
JsonConvert.SerializeObject(value: obj, [<System.ParamArray>] converters: JsonConverter []) : string
JsonConvert.SerializeObject(value: obj, formatting: Formatting) : string
JsonConvert.SerializeObject(value: obj, formatting: Formatting, settings: JsonSerializerSettings) : string
JsonConvert.SerializeObject(value: obj, type: System.Type, settings: JsonSerializerSettings) : string
JsonConvert.SerializeObject(value: obj, formatting: Formatting, [<System.ParamArray>] converters: JsonConverter []) : string
JsonConvert.SerializeObject(value: obj, type: System.Type, formatting: Formatting, settings: JsonSerializerSettings) : string
namespace System
namespace System.IO
type File =
static member AppendAllLines : path: string * contents: IEnumerable<string> -> unit + 1 overload
static member AppendAllLinesAsync : path: string * contents: IEnumerable<string> * encoding: Encoding *?cancellationToken: CancellationToken -> Task + 1 overload
static member AppendAllText : path: string * contents: string -> unit + 1 overload
static member AppendAllTextAsync : path: string * contents: string * encoding: Encoding *?cancellationToken: CancellationToken -> Task + 1 overload
static member AppendText : path: string -> StreamWriter
static member Copy : sourceFileName: string * destFileName: string -> unit + 1 overload
static member Create : path: string -> FileStream + 2 overloads
static member CreateText : path: string -> StreamWriter
static member Decrypt : path: string -> unit
static member Delete : path: string -> unit
...
System.IO.File.WriteAllText(path: string, contents: string) : unit
System.IO.File.WriteAllText(path: string, contents: string, encoding: System.Text.Encoding) : unit