BinderScriptNotebook

PeptideDB

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.

Parameters

The following table gives an overview of the parameter set:

Parameter

Default Value

Description

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

Parameter Generation

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)

Executing the Tool

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