BinderScriptNotebook

PeptideDB

PeptideDB digests the proteins of a FASTA file in silico and stores the resulting peptides, with their masses and modifications, in a SQLite database. The search tools compare measured spectra against these peptides, so the digestion settings define the search space of the whole analysis. How the protease, the allowed missed cleavages, the length limits and the modifications shape that space is explained in the BioFSharp.Mz documentation, and the database layout is described on the same page.

Inputs and outputs

Flag

Meaning

Comes from

-i

one FASTA file (no directories)

your proteome

-o

the output directory, created when missing

-p

the parameter file in JSON

this page

The tool writes <Name>.db into the output directory, where Name comes from the parameter file. The database is read by PeptideSpectrumMatching, PSMStatistics, MsFraggerToPSM, PSMBasedQuantification, PSMBasedQuantificationTIMs, AlignmentBasedQuantification and ProteinInference. When a <Name>.db already exists in the output directory and the parameters stored inside it equal the parameter file, the tool reuses that database and only makes sure its index is present. The output directory also receives PeptideDB_log.txt and PeptideDB_<Name>_log.txt.

Parameters

Parameter

Default

Meaning

Name

"AraTest"

Name of the database and stem of the output file.

ParseProteinIDRegexPattern

"id"

How protein identifiers are taken from the FASTA headers. "id" (in any letter case, or an empty string) keeps the whole header line as the identifier. Any other value is a regular expression, and the matched part of the header becomes the identifier, for example "^\S+" for the first word.

Protease

Protease.Trypsin

Enzyme used for the digestion. Other values are Protease.Trypsin_P, Protease.LysC, Protease.LysC_P, Protease.Chymotrypsin and Protease.PepsinA.

MinMissedCleavages

0

Lowest number of missed cleavage sites a peptide may have.

MaxMissedCleavages

2

Highest number of missed cleavage sites a peptide may have.

MaxMass

15000.0

Peptides above this mass in Da are dropped.

MinPepLength

4

Shortest peptide length kept, in residues.

MaxPepLength

65

Longest peptide length kept, in residues.

IsotopicMod

[IsotopicMod.N15]

Isotopic labels of the experiment. Each label adds a labeled variant of every peptide next to the unlabeled one. Use [] for an unlabeled experiment. Other values are IsotopicMod.C13, IsotopicMod.O17, IsotopicMod.O18 and IsotopicMod.D.

MassMode

MassMode.Monoisotopic

Mass calculation, MassMode.Monoisotopic or MassMode.Average.

FixedMods

[]

Modifications applied to every matching residue.

VariableMods

[Modification.Oxidation'Met'; Modification.Acetylation'ProtNTerm']

Modifications that may or may not be present. Every allowed combination becomes its own database entry.

VarModThreshold

4

Maximum number of variable modifications on one peptide.

The available modifications are the cases of ProteomIQon.Modification, for example Modification.Carbamidomethyl'Cys' or Modification.Phosphorylation'Ser'Thr'Tyr'. The default file is peptideDBParams.json. A variant for Thermo data with carbamidomethylation as variable modification is peptideDBParamsThermo.json.

Writing a parameter file

open BioFSharp.Mz.SearchDB
open ProteomIQon

let peptideDBParams : Dto.PeptideDBParams =
    {
        Name                       = "AraTest"
        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
    }

// Replace the temp folder with your project folder.
let outputPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "peptideDBParams.json")

Json.serializeAndWrite outputPath peptideDBParams

Running the tool

Install the tool with dotnet tool install --global ProteomIQon.PeptideDB, then build the database:

proteomiqon-peptidedb -i path/to/proteome.fasta -o path/to/output -p path/to/peptideDBParams.json

All flags:

proteomiqon-peptidedb --help
namespace BioFSharp
namespace BioFSharp.Mz
module SearchDB from BioFSharp.Mz
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 ... } member Equals: PeptideDBParams * IEqualityComparer -> bool
Multiple items
module Protease from ProteomIQon.Common

--------------------
type Protease = | Trypsin | Trypsin_P | LysC | LysC_P | Chymotrypsin | PepsinA member Equals: Protease * IEqualityComparer -> bool member IsChymotrypsin: bool member IsLysC: bool member IsLysC_P: bool member IsPepsinA: bool member IsTrypsin: bool member IsTrypsin_P: bool
union case Protease.Trypsin: Protease
Multiple items
module IsotopicMod from ProteomIQon.Common

--------------------
type IsotopicMod = | N15 | C13 | O17 | O18 | D member Equals: IsotopicMod * IEqualityComparer -> bool member IsC13: bool member IsD: bool member IsN15: bool member IsO17: bool member IsO18: bool
union case IsotopicMod.N15: IsotopicMod
Multiple items
module MassMode from ProteomIQon.Common

--------------------
type MassMode = | Average | Monoisotopic member Equals: MassMode * IEqualityComparer -> bool override ToString: unit -> string member IsAverage: bool member IsMonoisotopic: bool
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' | Methylation'Met'MetNTerm' | Carbamate'Lys' | Hydroxylation'Pro' | Methylation'Cys' ... member Equals: Modification * IEqualityComparer -> bool member IsAcetylation'ProtNTerm': bool member IsCarbamate'Lys': bool member IsCarbamidomethyl'Cys': bool member IsHydroxylation'Pro': bool member IsMethylation'Cys': bool member IsMethylation'Met'MetNTerm': bool member IsMethylation'Thr': bool member IsOxidation'Met': bool member IsPhosphorylation'Ser'Thr'Tyr': bool ...
union case Modification.Oxidation'Met': Modification
union case Modification.Acetylation'ProtNTerm': Modification
val outputPath: string
namespace System
namespace System.IO
type Path = static member ChangeExtension: path: string * extension: string -> string static member Combine: path1: string * path2: string -> string + 4 overloads static member EndsInDirectorySeparator: path: ReadOnlySpan<char> -> bool + 1 overload static member Exists: path: string -> bool static member GetDirectoryName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileNameWithoutExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFullPath: path: string -> string + 1 overload static member GetInvalidFileNameChars: unit -> char array ...
<summary>Performs operations on <see cref="T:System.String" /> instances that contain file or directory path information. These operations are performed in a cross-platform manner.</summary>
System.IO.Path.Combine(paths: System.ReadOnlySpan<string>) : string
System.IO.Path.Combine([<System.ParamArray>] paths: string array) : string
System.IO.Path.Combine(path1: string, path2: string) : string
System.IO.Path.Combine(path1: string, path2: string, path3: string) : string
System.IO.Path.Combine(path1: string, path2: string, path3: string, path4: string) : string
System.IO.Path.GetTempPath() : string
module Json from ProteomIQon
val serializeAndWrite: path: string -> obj: 'a -> unit