PTOF(1)

πŸ’… PTOF(1) β€” bestie, we're converting a protein profile into a frame-search profile ✨

okay so quick vibe check before we dive in: this is the ptof page from the pftools package (manual section 1), and honestly? it's giving legendary. let's get into it 🫢


🌸 NAME 🌸

ptof β€” convert a protein profile into a frame-search profile. that's it, that's the whole job, and she does it beautifully πŸ’–


✨ SYNOPSIS ✨

ptof      [ -hlr ] [ -B init/term_score ] [ -F frameshift ] [ -I
          insert_multiplier ] [ -X stop_codon ] [ -Y intron_open ] [ -Z
          intron_extend ] [ protein_profile | - ] [ parameters ]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so ptof takes a protein profile β€” the kind you'd generate with pftools programs pfmake(1), gtop(1) or htop(1), no big deal β€” and converts it into a so-called "frame-search profile". and a frame-search profile is what you use to search an "interleaved frame-translated" DNA sequence (which you'd generate with the pftools program 2ft(1), iykyk) for occurrences of a protein sequence motif πŸ”₯

so what even is an "interleaved frame-translated" DNA sequence? bestie, it's an amino acid sequence corresponding to the N-2 overlapping codons of a DNA sequence of length N. and heads up: in such a sequence, the character 'O' is used to represent stop codons. iconic of her honestly πŸ’€

now, the conversion procedure β€” and this is the part that lowkey eats:

  • The protein profile is expanded in length by a factor of three to accommodate three translated codons per original match position.
  • Two dummy match positions are placed between two consecutive significant match positions imported from the original profile.
  • The original insert positions are placed between pairs of adjacent dummy match positions.
  • The initiation, termination, and transition scores of the original insert positions are left unchanged; the insert extension scores are divided by a factor of 3, or by the value of the command-line option -I.
  • The two insert positions flanking the significant match positions serve to accommodate frame-shift errors and introns, respectively. the frame-shift insert position allows free insertion opening combined with a high insert extension penalty (command-line option -F) 🌈 whereas the intron insertion position has high opening but low extension penalties (command line options -Y and -Z).
  • The deletion opening and closing penalties next to the significant match positions are set to values that ensure that the total cost of a single-base deletion is the same as the cost of a single base-insertion at a frame-shift insert position.
  • Furthermore, the alphabet of the original profile is extended by the stop codon symbol 'O', which is assigned a constant negative value (command-line option -X) at significant match positions, and zero at dummy match positions. At insert positions, it is set to the average of the other insert extension scores.

periodt. no cap. πŸ’…


πŸŽ€ OPTIONS πŸŽ€

  • protein_profile β€” the input protein profile. the profile sitting in this file is gonna get converted into a frame-search profile. and if you swap the filename for a '-', ptof will read the profile from stdin 🫢
  • -h β€” display usage help text. short king behavior, we love it.
  • -l β€” remove output line length limit. individual lines of the output profile can exceed a length of 132 characters, removing the need to wrap them over several lines. she's long and she's proud πŸ’–
  • -r β€” frame-search parameters are given in normalized score units. this option will only be considered if a linear normalization function with priority over all other normalization functions is specified in the profile. in that case, the frame-search scores specified on the command line will be divided by the slope (R2 parameter) of the normalization function. this option is particularly useful for profiles which are already scaled in units that can be interpreted as βˆ’Log(P)-values, e.g. bits ⭐
  • -B init/term_score β€” minimal initiation and termination score. all internal and external initiation and termination scores will be set to this value if the corresponding value in the original profile is lower than this value. this parameter is used to impose a more local alignment behavior on the frame-search profile in order to deal with discontinuities in DNA sequences (long introns, alternative splicing, chimeric clones, etc.) 😭

Default: -50 (-0.5 with option -r)

  • -F frameshift β€” frame-shift error penalty.

Default: -100 (-1.0 with option -r)

  • -I insert_multiplier β€” insert score multiplier. the values of the original insert extension scores will be multiplied by this factor in order to compensate for the fact that a single amino acid corresponds to three overlapping codon positions in the target sequence.

Default: 1/3

  • -X stop_codon β€” stop codon penalty.

Default: -100 (-1.0 with option -r)

  • -Y intron_open β€” intron opening penalty.

Default: -300 (-3.0 with option -r)

  • -Z intron_extend β€” intron extension penalty.

Default: -1 (-0.01 with option -r)


🌈 PARAMETERS 🌈

Note: for backwards compatibility, release 2.3 of the pftools package will parse the version 2.2 style parameters, but these are deprecated and the corresponding option (refer to the options section) should be used instead. bestie. please. use the option. πŸ₯Ί
  • B=# β€” minimal initiation and termination score. use option -B instead.
  • F=# β€” frame-shift error penalty. use option -F instead.
  • I=# β€” insert score multiplier. use option -I instead.
  • X=# β€” stop codon penalty. use option -X instead.
  • Y=# β€” intron opening penalty. use option -Y instead.
  • Z=# β€” intron extension penalty. use option -Z instead.

πŸ’œ EXAMPLES πŸ’œ

(1) here's the whole main-character pipeline:

ptof -r -F -1.2 -I 0.6 -X -1.5 -B -0.5 sh3.prf > sh3.fsp
2ft - < R76849.seq | pfsearch -fy -C 5.0 sh3.fsp -

so what's happening here? the protein domain profile in 'sh3.prf' gets converted first into a frame-search profile 'sh3.fsp'. then both strands of the Fasta-formatted EST sequence in 'R76849.seq' (GenBank/EMBL-accession: R76849) are converted into interleaved frame-translated protein sequences and searched for SH3 domains with the frame-search profile generated in the preceding step. she ATE that πŸ“

and you can compare that output to the result of a more conventional search strategy using a protein profile in conjunction with a six-frame translation of the same DNA sequence:

6ft - < R76849.seq | pfsearch -fy -C 5.0 sh3.prf -

πŸ”₯ EXIT CODE πŸ”₯

on successful completion of its task, ptof will return an exit code of 0. if an error occurs, a diagnostic message will be output on standard error and the exit code will be different from 0. and when conflicting options were passed to the program but the task could nevertheless be completed, warnings will be issued on standard error β€” not me being like "it worked but also…" πŸ™ˆ


🧚 SEE ALSO 🧚

pfscan(1), pfsearch(1), 2ft(1), 6ft(1) β€” go read these too, they're the friend group πŸ’«


πŸ‘‘ AUTHOR πŸ‘‘

The pftools package was developed by Philipp Bucher.

Any comments or suggestions should be addressed to <pftools@sib.swiss> πŸ’Œ


and that's the whole page bestie πŸ’– this was pftools 2.3, dated August 2003, and she is still serving. mwah. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from