# make-pin

## Usage:

`crux make-pin [options] <target input>`

## Description:

Make-pin is a utility program that combines a collection of target and decoy peptide-spectrum matches (PSMs) into a single file in pin format, according to this format. The resulting file can be provided as input to `crux percolator`.

`make-pin` requires as input two sets of PSMs, one set derived from matching observed spectra against real ("target") peptides and a second set derived from matching the same spectra against "decoy" peptides. The output file contains, for each PSM, a set of features for use by the Percolator algorithm. These features are summarized here.

Note that, in the stand-alone version of Percolator, the functionality provided by `crux make-pin` is incorporated into a program called `sqt2pin`. However, a significant difference between `crux percolator` and the stand-alone version of the program is that `crux percolator` does not require an explicit call to `crux make-pin`: if input is provided to `crux percolator` in a non-pin format, then the input will be automatically converted to pin format.

## Input:

- `target input` – One or more files, each containing a collection of peptide-spectrum matches (PSMs) in tab-delimited text, PepXML, or mzIdentML format. In tab-delimited text format, only the specified score column is required. However if --estimation-method is tdc, then the columns "scan" and "charge" are required, as well as "protein ID" if the search was run with concat=F. Furthermore, if the --estimation-method is specified to peptide-level is set to T, then the column "peptide" must be included, and if --sidak is set to T, then the "distinct matches/spectrum" column must be included.
  Note that multiple files can also be provided either on the command line or using the --list-of-files option.
  Decoys can be provided in two ways: either as a separate file or embedded within the same file as the targets. Crux will first search the given file for decoys using a prefix (specified via --decoy-prefix) on the protein name. If no decoys are found, then Crux will search for decoys in a separate file. The decoy file name is constructed from the target file name by replacing "target" with "decoy". For example, if tide-search.target.txt is provided as input, then Crux will search for a corresponding file named "tide-search.decoy.txt."
  Note that if decoys are provided in a separate file, then assign-confidence will first carry out a target-decoy competition, identifying corresponding pairs of targets and decoys and eliminating the one with the worse score. In this case, the column/tag called "delta_cn" will be eliminated from the output.

## Output:

The program writes files to the folder `crux-output` by default. The name of the output folder can be set by the user using the `--output-dir` option. The following files will be created:

- `make-pin.pin` – a tab-delimited file containing the input target and decoy PSMs in pin format. This file can be changed to an absolute path (see --output-file option).
- `make-pin.params.txt` – a file containing the name and value of all parameters for the current operation. Not all parameters in the file may have been used in the operation. The resulting file can be used with the --parameter-file option for other crux programs.
- `make-pin.log.txt` – a log file containing a copy of all messages that were printed to standard error.

## Options:

- ### make-pin options

  - `--max-charge-feature <integer>` – Specifies the maximum charge state feature. When set to zero, use the maximum observed charge state. Default = `0`.
  - `--unique-scannr T|F` – Make the ScanNr of each PSM unique in the .pin file. Default = `false`.

- ### Input and output

  - `--decoy-prefix <string>` – Specifies the prefix of the protein names that indicate a decoy. Default = `decoy_`.
  - `--fileroot <string>` – The fileroot string will be added as a prefix to all output file names. Default = `<empty>`.
  - `--output-dir <string>` – The name of the directory where output files will be created. Default = `crux-output`.
  - `--output-file <string>` – Path where pin file will be written instead of make-pin.pin. Default = `<empty>`.
  - `--overwrite T|F` – Replace existing files if true or fail when trying to overwrite a file if false. Default = `false`.
  - `--parameter-file <string>` – A file containing parameters. See the parameter documentation page for details. Default = `<empty>`.
  - `--top-match <integer>` – Specify the number of matches to report for each spectrum. Default = `5`.
  - `--verbosity <integer>` – Specify the verbosity of the current processes. Each level prints the following messages, including all those at lower verbosity levels: 0-fatal errors, 10-non-fatal errors, 20-warnings, 30-information on the progress of execution, 40-more progress information, 50-debug info, 60-detailed debug info. Default = `30`.