Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- data/README.md +14 -0
- flax_model/alphafold3/_tools/hmmer/bin/esl-selectn +0 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/alimask.1 +362 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-afetch.1 +133 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimanip.1 +383 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimap.1 +211 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimerge.1 +184 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alipid.1 +137 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alirev.1 +153 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alistat.1 +259 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-compalign.1 +166 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-histplot.1 +87 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-mask.1 +198 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-mixdchlet.1 +212 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-reformat.1 +271 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-selectn.1 +81 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-seqstat.1 +117 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-sfetch.1 +278 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-shuffle.1 +234 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-ssdraw.1 +882 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-translate.1 +314 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-weight.1 +105 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmbuild.1 +556 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmconvert.1 +106 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmemit.1 +250 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmer.1 +199 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmfetch.1 +213 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmlogo.1 +99 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmpgmd.1 +219 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmpress.1 +106 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmscan.1 +470 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmsearch.1 +444 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmsim.1 +515 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/jackhmmer.1 +808 -0
- flax_model/alphafold3/_tools/hmmer/share/man/man1/phmmer.1 +523 -0
- flax_model/alphafold3/data/__init__.py +0 -0
- flax_model/alphafold3/data/cpp/msa_profile_pybind.h +24 -0
- flax_model/alphafold3/data/featurisation.py +96 -0
- flax_model/alphafold3/data/msa_config.py +203 -0
- flax_model/alphafold3/data/msa_features.py +194 -0
- flax_model/alphafold3/data/msa_identifiers.py +77 -0
- flax_model/alphafold3/data/parsers.py +261 -0
- flax_model/alphafold3/data/pipeline.py +677 -0
- flax_model/alphafold3/data/structure_stores.py +92 -0
- flax_model/alphafold3/data/template_store.py +38 -0
- flax_model/alphafold3/data/tools/msa_tool.py +31 -0
- flax_model/alphafold3/data/tools/nhmmer.py +351 -0
- flax_model/alphafold3/jax/attention/attention_call_arg_specs.py +54 -0
- flax_model/alphafold3/model/components/__init__.py +0 -0
- flax_model/alphafold3/model/merging_features.py +84 -0
data/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This model repository does not upload the AlphaFold3 dataset payload.
|
| 2 |
+
|
| 3 |
+
Download the required dataset separately:
|
| 4 |
+
|
| 5 |
+
```bash
|
| 6 |
+
modelscope download --dataset OneScience/AlphaFold3_dataset
|
| 7 |
+
```
|
| 8 |
+
|
| 9 |
+
Then link the dataset package data directory into this model package:
|
| 10 |
+
|
| 11 |
+
```bash
|
| 12 |
+
mkdir -p data
|
| 13 |
+
ln -s /path/to/AlphaFold3_dataset/data data/alphafold3_dataset
|
| 14 |
+
```
|
flax_model/alphafold3/_tools/hmmer/bin/esl-selectn
ADDED
|
Binary file (76.8 kB). View file
|
|
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/alimask.1
ADDED
|
@@ -0,0 +1,362 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "alimask" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
alimask \- calculate and add column mask to a multiple sequence alignment
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B alimask
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile
|
| 10 |
+
.I postmsafile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B alimask
|
| 17 |
+
is used to apply a mask line to a multiple sequence
|
| 18 |
+
alignment, based on provided alignment or model coordinates.
|
| 19 |
+
When
|
| 20 |
+
.B hmmbuild
|
| 21 |
+
receives a masked alignment as input, it produces a profile
|
| 22 |
+
model in which the emission probabilities at masked positions
|
| 23 |
+
are set to match the background frequency, rather than being
|
| 24 |
+
set based on observed frequencies in the alignment.
|
| 25 |
+
Position-specific insertion and deletion rates are not
|
| 26 |
+
altered, even in masked regions.
|
| 27 |
+
.B alimask
|
| 28 |
+
autodetects input format, and produces masked alignments
|
| 29 |
+
in Stockholm format.
|
| 30 |
+
.I msafile
|
| 31 |
+
may contain only one sequence alignment.
|
| 32 |
+
|
| 33 |
+
.PP
|
| 34 |
+
A common motivation for masking a region in an alignment is
|
| 35 |
+
that the region contains a simple tandem repeat that is
|
| 36 |
+
observed to cause an unacceptably high rate of false positive
|
| 37 |
+
hits.
|
| 38 |
+
|
| 39 |
+
.PP
|
| 40 |
+
In the simplest case, a mask range is given in coordinates
|
| 41 |
+
relative to the input alignment, using
|
| 42 |
+
.BI \-\-alirange " <s>".
|
| 43 |
+
However it is more often the case that the region to be
|
| 44 |
+
masked has been identified in coordinates relative to
|
| 45 |
+
the profile model (e.g. based on recognizing a simple
|
| 46 |
+
repeat pattern in false hit alignments or in the HMM logo).
|
| 47 |
+
Not all alignment columns are converted to match state
|
| 48 |
+
positions in the profile (see the
|
| 49 |
+
.B \-\-symfrac
|
| 50 |
+
flag for
|
| 51 |
+
.B hmmbuild
|
| 52 |
+
for discussion), so model positions do not necessarily match
|
| 53 |
+
up to alignment column positions.
|
| 54 |
+
To remove the burden of converting model positions to
|
| 55 |
+
alignment positions,
|
| 56 |
+
.B alimask
|
| 57 |
+
accepts the mask range input in model coordinates as well,
|
| 58 |
+
using
|
| 59 |
+
.BI \-\-modelrange " <s>".
|
| 60 |
+
When using this flag,
|
| 61 |
+
.I alimask
|
| 62 |
+
determines which alignment positions would be identified by
|
| 63 |
+
.B hmmbuild
|
| 64 |
+
as match states, a process that requires that all
|
| 65 |
+
.B hmmbuild
|
| 66 |
+
flags impacting that decision be supplied to
|
| 67 |
+
.BR alimask .
|
| 68 |
+
It is for this reason that many of the
|
| 69 |
+
.B hmmbuild
|
| 70 |
+
flags are also used by
|
| 71 |
+
.BR alimask .
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
.SH OPTIONS
|
| 76 |
+
|
| 77 |
+
.TP
|
| 78 |
+
.B \-h
|
| 79 |
+
Help; print a brief reminder of command line usage and all available
|
| 80 |
+
options.
|
| 81 |
+
|
| 82 |
+
.TP
|
| 83 |
+
.BI \-o " <f>"
|
| 84 |
+
Direct the summary output to file
|
| 85 |
+
.IR <f> ,
|
| 86 |
+
rather than to stdout.
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
.SH OPTIONS FOR SPECIFYING MASK RANGE
|
| 90 |
+
|
| 91 |
+
A single mask range is given as a dash-separated pair, like
|
| 92 |
+
.B "\-\-modelrange 10\-20"
|
| 93 |
+
and multiple ranges may be submitted as a comma-separated list,
|
| 94 |
+
.BR "\-\-modelrange 10\-20,30\-42" .
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
.TP
|
| 98 |
+
.BI \-\-modelrange " <s>"
|
| 99 |
+
Supply the given range(s) in model coordinates.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.BI \-\-alirange " <s>"
|
| 103 |
+
Supply the given range(s) in alignment coordinates.
|
| 104 |
+
|
| 105 |
+
.TP
|
| 106 |
+
.B \-\-appendmask
|
| 107 |
+
Add to the existing mask found with the alignment.
|
| 108 |
+
The default is to overwrite any existing mask.
|
| 109 |
+
|
| 110 |
+
.TP
|
| 111 |
+
.BI \-\-model2ali " <s>"
|
| 112 |
+
Print model range(s) and the corresponding alignment range(s).
|
| 113 |
+
No masked alignment is produced.
|
| 114 |
+
The output is a single line for each input range, of the form
|
| 115 |
+
.nf
|
| 116 |
+
i..j -> m..n
|
| 117 |
+
.fi
|
| 118 |
+
with i & j representing model range values, and m & n
|
| 119 |
+
representing alignment range values.
|
| 120 |
+
|
| 121 |
+
.TP
|
| 122 |
+
.BI \-\-ali2model " <s>"
|
| 123 |
+
Print alignment range(s) and the corresponding model range(s).
|
| 124 |
+
No masked alignment is produced.
|
| 125 |
+
Because some alignment positions may not map to model positions,
|
| 126 |
+
the range(s) produced will begin with the first alignment
|
| 127 |
+
position between <from> and <to> (inclusive) that maps to a
|
| 128 |
+
model position, and end with the final alignment position in
|
| 129 |
+
that range that maps to a model position.
|
| 130 |
+
The output is a single line for each input range, of
|
| 131 |
+
the form
|
| 132 |
+
.nf
|
| 133 |
+
i..j -> m..n
|
| 134 |
+
.fi
|
| 135 |
+
with i & j representing alignment range values, and m & n
|
| 136 |
+
representing model range values.
|
| 137 |
+
If no alignment positions in the range <from>..<to> map
|
| 138 |
+
to a model position, the output prints the input <from>
|
| 139 |
+
and <to> mapping to nothing, with the format:
|
| 140 |
+
.nf
|
| 141 |
+
i..j -> \-..\- (no map) .
|
| 142 |
+
.fi
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
.SH OPTIONS FOR SPECIFYING THE ALPHABET
|
| 146 |
+
|
| 147 |
+
.TP
|
| 148 |
+
.B \-\-amino
|
| 149 |
+
Assert that sequences in
|
| 150 |
+
.I msafile
|
| 151 |
+
are protein, bypassing alphabet autodetection.
|
| 152 |
+
|
| 153 |
+
.TP
|
| 154 |
+
.B \-\-dna
|
| 155 |
+
Assert that sequences in
|
| 156 |
+
.I msafile
|
| 157 |
+
are DNA, bypassing alphabet autodetection.
|
| 158 |
+
|
| 159 |
+
.TP
|
| 160 |
+
.B \-\-rna
|
| 161 |
+
Assert that sequences in
|
| 162 |
+
.I msafile
|
| 163 |
+
are RNA, bypassing alphabet autodetection.
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION
|
| 168 |
+
|
| 169 |
+
These options control how consensus columns are defined in an alignment.
|
| 170 |
+
|
| 171 |
+
.TP
|
| 172 |
+
.B \-\-fast
|
| 173 |
+
Define consensus columns as those that have a fraction >=
|
| 174 |
+
.B symfrac
|
| 175 |
+
of residues as opposed to gaps. (See below for the
|
| 176 |
+
.B \-\-symfrac
|
| 177 |
+
option.) This is the default.
|
| 178 |
+
|
| 179 |
+
.TP
|
| 180 |
+
.B \-\-hand
|
| 181 |
+
Define consensus columns in next profile using reference annotation to
|
| 182 |
+
the multiple alignment.
|
| 183 |
+
This allows you to define any consensus columns you like.
|
| 184 |
+
|
| 185 |
+
.TP
|
| 186 |
+
.BI \-\-symfrac " <x>"
|
| 187 |
+
Define the residue fraction threshold necessary to define a
|
| 188 |
+
consensus column when using the
|
| 189 |
+
.B \-\-fast
|
| 190 |
+
option. The default is 0.5. The symbol fraction in each column
|
| 191 |
+
is calculated after taking relative sequence weighting into account,
|
| 192 |
+
and ignoring gap characters corresponding to ends of sequence
|
| 193 |
+
fragments
|
| 194 |
+
(as opposed to internal insertions/deletions).
|
| 195 |
+
Setting this to 0.0 means that every alignment column will be assigned
|
| 196 |
+
as consensus, which may be useful in some cases. Setting it to 1.0
|
| 197 |
+
means that only columns that include 0 gaps (internal
|
| 198 |
+
insertions/deletions) will be assigned as consensus.
|
| 199 |
+
|
| 200 |
+
.TP
|
| 201 |
+
.BI \-\-fragthresh " <x>"
|
| 202 |
+
We only want to count terminal gaps as deletions if the aligned
|
| 203 |
+
sequence is known to be full-length, not if it is a fragment (for
|
| 204 |
+
instance, because only part of it was sequenced). HMMER uses a simple
|
| 205 |
+
rule to infer fragments: if the sequence length L is less than
|
| 206 |
+
or equal to a fraction
|
| 207 |
+
.I <x>
|
| 208 |
+
times the alignment length in columns,
|
| 209 |
+
then the sequence is handled as a fragment. The default is 0.5.
|
| 210 |
+
Setting
|
| 211 |
+
.B \-\-fragthresh 0
|
| 212 |
+
will define no (nonempty) sequence as a fragment; you might want to do
|
| 213 |
+
this if you know you've got a carefully curated alignment of full-length
|
| 214 |
+
sequences.
|
| 215 |
+
Setting
|
| 216 |
+
.B \-\-fragthresh 1
|
| 217 |
+
will define all sequences as fragments; you might want to do this if
|
| 218 |
+
you know your alignment is entirely composed of fragments, such as
|
| 219 |
+
translated short reads in metagenomic shotgun data.
|
| 220 |
+
|
| 221 |
+
|
| 222 |
+
.SH OPTIONS CONTROLLING RELATIVE WEIGHTS
|
| 223 |
+
|
| 224 |
+
HMMER uses an ad hoc sequence weighting algorithm to downweight
|
| 225 |
+
closely related sequences and upweight distantly related ones. This
|
| 226 |
+
has the effect of making models less biased by uneven phylogenetic
|
| 227 |
+
representation. For example, two identical sequences would typically
|
| 228 |
+
each receive half the weight that one sequence would. These options
|
| 229 |
+
control which algorithm gets used.
|
| 230 |
+
|
| 231 |
+
.TP
|
| 232 |
+
.B \-\-wpb
|
| 233 |
+
Use the Henikoff position-based sequence weighting scheme [Henikoff
|
| 234 |
+
and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default.
|
| 235 |
+
|
| 236 |
+
.TP
|
| 237 |
+
.B \-\-wgsc
|
| 238 |
+
Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et
|
| 239 |
+
al, J. Mol. Biol. 235:1067, 1994].
|
| 240 |
+
|
| 241 |
+
.TP
|
| 242 |
+
.B \-\-wblosum
|
| 243 |
+
Use the same clustering scheme that was used to weight data in
|
| 244 |
+
calculating BLOSUM substitution matrices [Henikoff and Henikoff,
|
| 245 |
+
Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
|
| 246 |
+
clustered at an identity threshold (default 0.62; see
|
| 247 |
+
.BR \-\-wid )
|
| 248 |
+
and within each cluster of c sequences, each sequence gets relative
|
| 249 |
+
weight 1/c.
|
| 250 |
+
|
| 251 |
+
.TP
|
| 252 |
+
.B \-\-wnone
|
| 253 |
+
No relative weights. All sequences are assigned uniform weight.
|
| 254 |
+
|
| 255 |
+
.TP
|
| 256 |
+
.BI \-\-wid " <x>"
|
| 257 |
+
Sets the identity threshold used by single-linkage clustering when
|
| 258 |
+
using
|
| 259 |
+
.BR \-\-wblosum .
|
| 260 |
+
Invalid with any other weighting scheme. Default is 0.62.
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
|
| 265 |
+
|
| 266 |
+
.SH OTHER OPTIONS
|
| 267 |
+
|
| 268 |
+
.TP
|
| 269 |
+
.BI \-\-informat " <s>"
|
| 270 |
+
Assert that input
|
| 271 |
+
.I msafile
|
| 272 |
+
is in alignment format
|
| 273 |
+
.IR <s> ,
|
| 274 |
+
bypassing format autodetection.
|
| 275 |
+
Common choices for
|
| 276 |
+
.I <s>
|
| 277 |
+
include:
|
| 278 |
+
.BR stockholm ,
|
| 279 |
+
.BR a2m ,
|
| 280 |
+
.BR afa ,
|
| 281 |
+
.BR psiblast ,
|
| 282 |
+
.BR clustal ,
|
| 283 |
+
.BR phylip .
|
| 284 |
+
For more information, and for codes for some less common formats,
|
| 285 |
+
see main documentation.
|
| 286 |
+
The string
|
| 287 |
+
.I <s>
|
| 288 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 289 |
+
|
| 290 |
+
|
| 291 |
+
.TP
|
| 292 |
+
.BI \-\-outformat " <s>"
|
| 293 |
+
Write the output
|
| 294 |
+
.I postmsafile
|
| 295 |
+
in alignment format
|
| 296 |
+
.IR <s> .
|
| 297 |
+
Common choices for
|
| 298 |
+
.I <s>
|
| 299 |
+
include:
|
| 300 |
+
.BR stockholm ,
|
| 301 |
+
.BR a2m ,
|
| 302 |
+
.BR afa ,
|
| 303 |
+
.BR psiblast ,
|
| 304 |
+
.BR clustal ,
|
| 305 |
+
.BR phylip .
|
| 306 |
+
The string
|
| 307 |
+
.I <s>
|
| 308 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 309 |
+
Default is
|
| 310 |
+
.BR stockholm .
|
| 311 |
+
|
| 312 |
+
|
| 313 |
+
.TP
|
| 314 |
+
.BI \-\-seed " <n>"
|
| 315 |
+
Seed the random number generator with
|
| 316 |
+
.IR <n> ,
|
| 317 |
+
an integer >= 0.
|
| 318 |
+
If
|
| 319 |
+
.I <n>
|
| 320 |
+
is nonzero, any stochastic simulations will be reproducible; the same
|
| 321 |
+
command will give the same results.
|
| 322 |
+
If
|
| 323 |
+
.I <n>
|
| 324 |
+
is 0, the random number generator is seeded arbitrarily, and
|
| 325 |
+
stochastic simulations will vary from run to run of the same command.
|
| 326 |
+
The default seed is 42.
|
| 327 |
+
|
| 328 |
+
|
| 329 |
+
|
| 330 |
+
.SH SEE ALSO
|
| 331 |
+
|
| 332 |
+
See
|
| 333 |
+
.BR hmmer (1)
|
| 334 |
+
for a master man page with a list of all the individual man pages
|
| 335 |
+
for programs in the HMMER package.
|
| 336 |
+
|
| 337 |
+
.PP
|
| 338 |
+
For complete documentation, see the user guide that came with your
|
| 339 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 340 |
+
(http://hmmer.org/).
|
| 341 |
+
|
| 342 |
+
|
| 343 |
+
|
| 344 |
+
.SH COPYRIGHT
|
| 345 |
+
|
| 346 |
+
.nf
|
| 347 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 348 |
+
Freely distributed under the BSD open source license.
|
| 349 |
+
.fi
|
| 350 |
+
|
| 351 |
+
For additional information on copyright and licensing, see the file
|
| 352 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 353 |
+
web page
|
| 354 |
+
(http://hmmer.org/).
|
| 355 |
+
|
| 356 |
+
|
| 357 |
+
.SH AUTHOR
|
| 358 |
+
|
| 359 |
+
.nf
|
| 360 |
+
http://eddylab.org
|
| 361 |
+
.fi
|
| 362 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-afetch.1
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-afetch" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-afetch \- retrieve alignments from a multi-MSA database
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBesl\-afetch\fR [\fIoptions\fR] \fImsafile key\fR
|
| 10 |
+
(single MSA retrieval)
|
| 11 |
+
|
| 12 |
+
\fBesl\-afetch \-f\fR [\fIoptions\fR] \fImsafile keyfile\fR
|
| 13 |
+
(multiple MSA retrieval, from a file of keys)
|
| 14 |
+
|
| 15 |
+
\fBesl\-afetch \-\-index \fR\fImsafile\fR
|
| 16 |
+
(index an MSA file for retrieval)
|
| 17 |
+
|
| 18 |
+
.SH DESCRIPTION
|
| 19 |
+
|
| 20 |
+
.B esl\-afetch
|
| 21 |
+
retrieves the alignment named
|
| 22 |
+
.I key
|
| 23 |
+
from an alignment database in file
|
| 24 |
+
.I msafile.
|
| 25 |
+
The
|
| 26 |
+
.I msafile
|
| 27 |
+
is a "multiple multiple alignment" file in Stockholm (e.g. native
|
| 28 |
+
Pfam or Rfam) format.
|
| 29 |
+
The
|
| 30 |
+
.I key
|
| 31 |
+
is either the name (ID) of the alignment, or its accession
|
| 32 |
+
number (AC).
|
| 33 |
+
|
| 34 |
+
.PP
|
| 35 |
+
Alternatively,
|
| 36 |
+
.B esl\-afetch \-f
|
| 37 |
+
provides the ability to fetch many alignments at once.
|
| 38 |
+
The
|
| 39 |
+
.B \-f
|
| 40 |
+
option has it interpret the second argument as a
|
| 41 |
+
.IR keyfile ,
|
| 42 |
+
a file consisting of one name or accession per line.
|
| 43 |
+
|
| 44 |
+
.PP
|
| 45 |
+
The
|
| 46 |
+
.I msafile
|
| 47 |
+
should first be SSI indexed with
|
| 48 |
+
.B esl\-afetch \-\-index
|
| 49 |
+
for efficient retrieval. An SSI index is
|
| 50 |
+
not required, but without one alignment retrieval may
|
| 51 |
+
be painfully slow.
|
| 52 |
+
|
| 53 |
+
.SH OPTIONS
|
| 54 |
+
|
| 55 |
+
.TP
|
| 56 |
+
.B \-h
|
| 57 |
+
Print brief help; includes version number and summary of
|
| 58 |
+
all options, including expert options.
|
| 59 |
+
|
| 60 |
+
.TP
|
| 61 |
+
.B \-f
|
| 62 |
+
Interpret the second argument as a
|
| 63 |
+
.I keyfile
|
| 64 |
+
instead of as just one
|
| 65 |
+
.IR key .
|
| 66 |
+
The
|
| 67 |
+
.I keyfile
|
| 68 |
+
contains one name or accession per line.
|
| 69 |
+
This option doesn't work with the
|
| 70 |
+
.B \-\-index
|
| 71 |
+
option.
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
.TP
|
| 75 |
+
.BI \-o " <f>"
|
| 76 |
+
Output retrieved alignments to a file
|
| 77 |
+
.I <f>
|
| 78 |
+
instead of to stdout.
|
| 79 |
+
|
| 80 |
+
.TP
|
| 81 |
+
.BI \-O
|
| 82 |
+
Output retrieved alignment to a file named
|
| 83 |
+
.IR key .
|
| 84 |
+
This is a convenience for saving some typing:
|
| 85 |
+
instead of
|
| 86 |
+
.nf
|
| 87 |
+
\fB% esl\-afetch \-o RRM_1 msafile RRM_1\fR
|
| 88 |
+
.fi
|
| 89 |
+
you can just type
|
| 90 |
+
.nf
|
| 91 |
+
\fB% esl\-afetch \-O msafile RRM_1\fR
|
| 92 |
+
.fi
|
| 93 |
+
The
|
| 94 |
+
.B \-O
|
| 95 |
+
option only works if you're retrieving a
|
| 96 |
+
single alignment; it is incompatible with
|
| 97 |
+
.B \-f.
|
| 98 |
+
|
| 99 |
+
.TP
|
| 100 |
+
.B \-\-index
|
| 101 |
+
Instead of retrieving a
|
| 102 |
+
.I key,
|
| 103 |
+
the special command
|
| 104 |
+
.B esl\-afetch \-\-index
|
| 105 |
+
.I msafile
|
| 106 |
+
produces an SSI index of the names and accessions
|
| 107 |
+
of the alignments in
|
| 108 |
+
the
|
| 109 |
+
.I msafile.
|
| 110 |
+
Indexing should be done once on the
|
| 111 |
+
.I msafile
|
| 112 |
+
to prepare it for all future fetches.
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
.SH SEE ALSO
|
| 116 |
+
|
| 117 |
+
.nf
|
| 118 |
+
http://bioeasel.org/
|
| 119 |
+
.fi
|
| 120 |
+
|
| 121 |
+
.SH COPYRIGHT
|
| 122 |
+
|
| 123 |
+
.nf
|
| 124 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 125 |
+
Freely distributed under the BSD open source license.
|
| 126 |
+
.fi
|
| 127 |
+
|
| 128 |
+
.SH AUTHOR
|
| 129 |
+
|
| 130 |
+
.nf
|
| 131 |
+
http://eddylab.org
|
| 132 |
+
.fi
|
| 133 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimanip.1
ADDED
|
@@ -0,0 +1,383 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alimanip" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alimanip \- manipulate a multiple sequence alignment
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.B esl\-alimanip
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I msafile
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.B esl\-alimanip
|
| 15 |
+
can manipulate the multiple sequence alignment(s) in
|
| 16 |
+
.I msafile
|
| 17 |
+
in various ways. Options exist to remove
|
| 18 |
+
specific sequences, reorder sequences, designate reference columns
|
| 19 |
+
using Stockholm "#=GC RF" markup, and add annotation that numbers
|
| 20 |
+
columns.
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
The alignments can be of protein or DNA/RNA sequences. All alignments
|
| 24 |
+
in the same
|
| 25 |
+
.I msafile
|
| 26 |
+
must be either protein or DNA/RNA. The alphabet will be autodetected
|
| 27 |
+
unless one of the options
|
| 28 |
+
.B \-\-amino,
|
| 29 |
+
.B \-\-dna,
|
| 30 |
+
or
|
| 31 |
+
.B \-\-rna
|
| 32 |
+
are given.
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
.SH OPTIONS
|
| 37 |
+
|
| 38 |
+
.TP
|
| 39 |
+
.B \-h
|
| 40 |
+
Print brief help; includes version number and summary of
|
| 41 |
+
all options, including expert options.
|
| 42 |
+
|
| 43 |
+
.TP
|
| 44 |
+
.BI \-o " <f>"
|
| 45 |
+
Save the resulting, modified alignment in Stockholm format to a file
|
| 46 |
+
.I <f>.
|
| 47 |
+
The default is to write it to standard output.
|
| 48 |
+
|
| 49 |
+
.TP
|
| 50 |
+
.BI \-\-informat " <s>"
|
| 51 |
+
Assert that
|
| 52 |
+
.I msafile
|
| 53 |
+
is in alignment format
|
| 54 |
+
.IR <s> ,
|
| 55 |
+
bypassing format autodetection.
|
| 56 |
+
Common choices for
|
| 57 |
+
.I <s>
|
| 58 |
+
include:
|
| 59 |
+
.BR stockholm ,
|
| 60 |
+
.BR a2m ,
|
| 61 |
+
.BR afa ,
|
| 62 |
+
.BR psiblast ,
|
| 63 |
+
.BR clustal ,
|
| 64 |
+
.BR phylip .
|
| 65 |
+
For more information, and for codes for some less common formats,
|
| 66 |
+
see main documentation.
|
| 67 |
+
The string
|
| 68 |
+
.I <s>
|
| 69 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
.TP
|
| 73 |
+
.BI \-\-outformat " <s>"
|
| 74 |
+
Write the output in alignment format
|
| 75 |
+
.IR <s> .
|
| 76 |
+
Common choices for
|
| 77 |
+
.I <s>
|
| 78 |
+
include:
|
| 79 |
+
.BR stockholm ,
|
| 80 |
+
.BR a2m ,
|
| 81 |
+
.BR afa ,
|
| 82 |
+
.BR psiblast ,
|
| 83 |
+
.BR clustal ,
|
| 84 |
+
.BR phylip .
|
| 85 |
+
The string
|
| 86 |
+
.I <s>
|
| 87 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 88 |
+
Default is
|
| 89 |
+
.BR stockholm .
|
| 90 |
+
|
| 91 |
+
.TP
|
| 92 |
+
.B \-\-devhelp
|
| 93 |
+
Print help, as with
|
| 94 |
+
.B \-h,
|
| 95 |
+
but also include undocumented developer options. These options are not
|
| 96 |
+
listed below, are under development or experimental, and are not
|
| 97 |
+
guaranteed to even work correctly. Use developer options at your own
|
| 98 |
+
risk. The only resources for understanding what they actually do are
|
| 99 |
+
the brief one-line description printed when
|
| 100 |
+
.B \-\-devhelp
|
| 101 |
+
is enabled, and the source code.
|
| 102 |
+
|
| 103 |
+
.SH EXPERT OPTIONS
|
| 104 |
+
|
| 105 |
+
.TP
|
| 106 |
+
.BI \-\-lnfract " <x>"
|
| 107 |
+
Remove any sequences with length less than
|
| 108 |
+
.I <x>
|
| 109 |
+
fraction the length of the median length sequence in the alignment.
|
| 110 |
+
|
| 111 |
+
.TP
|
| 112 |
+
.BI \-\-lxfract " <x>"
|
| 113 |
+
Remove any sequences with length more than
|
| 114 |
+
.I <x>
|
| 115 |
+
fraction the length of the median length sequence in the alignment.
|
| 116 |
+
|
| 117 |
+
.TP
|
| 118 |
+
.BI \-\-lmin " <n>"
|
| 119 |
+
Remove any sequences with length less than
|
| 120 |
+
.I <n>
|
| 121 |
+
residues.
|
| 122 |
+
|
| 123 |
+
.TP
|
| 124 |
+
.BI \-\-lmax " <n>"
|
| 125 |
+
Remove any sequences with length more than
|
| 126 |
+
.I <n>
|
| 127 |
+
residues.
|
| 128 |
+
|
| 129 |
+
.TP
|
| 130 |
+
.BI \-\-rfnfract " <x>"
|
| 131 |
+
Remove any sequences with nongap RF length less than
|
| 132 |
+
.I <x>
|
| 133 |
+
fraction the nongap RF length of the alignment.
|
| 134 |
+
|
| 135 |
+
.TP
|
| 136 |
+
.BI \-\-detrunc " <n>"
|
| 137 |
+
Remove any sequences that have all gaps in the first
|
| 138 |
+
.I <n>
|
| 139 |
+
non-gap #=GC RF columns or the last
|
| 140 |
+
.I <n>
|
| 141 |
+
non-gap #=GC RF columns.
|
| 142 |
+
|
| 143 |
+
.TP
|
| 144 |
+
.BI \-\-xambig " <n>"
|
| 145 |
+
Remove any sequences that has more than
|
| 146 |
+
.I <n>
|
| 147 |
+
ambiguous (degenerate) residues.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-\-seq\-r " <f>"
|
| 151 |
+
Remove any sequences with names listed in file
|
| 152 |
+
.I <f>.
|
| 153 |
+
Sequence names listed in
|
| 154 |
+
.I <f>
|
| 155 |
+
can be separated by tabs, new lines, or spaces.
|
| 156 |
+
The file must be in Stockholm format for this option to work.
|
| 157 |
+
|
| 158 |
+
.TP
|
| 159 |
+
.BI \-\-seq\-k " <f>"
|
| 160 |
+
Keep only sequences with names listed in file
|
| 161 |
+
.I <f>.
|
| 162 |
+
Sequence names listed in
|
| 163 |
+
.I <f>
|
| 164 |
+
can be separated by tabs, new lines, or spaces.
|
| 165 |
+
By default, the kept sequences will remain in the original order
|
| 166 |
+
they appeared in
|
| 167 |
+
.I msafile,
|
| 168 |
+
but the order from
|
| 169 |
+
.I <f>
|
| 170 |
+
will be used if the
|
| 171 |
+
.B \-\-k\-reorder
|
| 172 |
+
option is enabled.
|
| 173 |
+
The file must be in Stockholm format for this option to work.
|
| 174 |
+
|
| 175 |
+
.TP
|
| 176 |
+
.B \-\-small
|
| 177 |
+
With
|
| 178 |
+
.B \-\-seq\-k
|
| 179 |
+
or
|
| 180 |
+
.B \-\-seq\-r,
|
| 181 |
+
operate in small memory mode.
|
| 182 |
+
The alignment(s) will not be stored in memory, thus
|
| 183 |
+
.B \-\-seq\-k
|
| 184 |
+
and
|
| 185 |
+
.B \-\-seq\-r
|
| 186 |
+
will be able to work on very large alignments regardless
|
| 187 |
+
of the amount of available RAM.
|
| 188 |
+
The alignment file must be in Pfam
|
| 189 |
+
format and
|
| 190 |
+
.B \-\-informat pfam
|
| 191 |
+
and one of
|
| 192 |
+
.B \-\-amino,
|
| 193 |
+
.B \-\-dna,
|
| 194 |
+
or
|
| 195 |
+
.B \-\-rna
|
| 196 |
+
must be given as well.
|
| 197 |
+
|
| 198 |
+
.TP
|
| 199 |
+
.B \-\-k\-reorder
|
| 200 |
+
With
|
| 201 |
+
.BI \-\-seq\-k " <f>",
|
| 202 |
+
reorder the kept sequences in the output alignment to the order
|
| 203 |
+
from the list file
|
| 204 |
+
.I <f>.
|
| 205 |
+
|
| 206 |
+
.TP
|
| 207 |
+
.BI \-\-seq\-ins " <n>"
|
| 208 |
+
Keep only sequences that have at least 1 inserted residue after
|
| 209 |
+
nongap RF position
|
| 210 |
+
.I <n>.
|
| 211 |
+
|
| 212 |
+
.TP
|
| 213 |
+
.BI \-\-seq\-ni " <n>"
|
| 214 |
+
With
|
| 215 |
+
.B \-\-seq\-ins
|
| 216 |
+
require at least
|
| 217 |
+
.I <n>
|
| 218 |
+
inserted residues in a sequence for it to be kept.
|
| 219 |
+
|
| 220 |
+
.TP
|
| 221 |
+
.BI \-\-seq\-xi " <n>"
|
| 222 |
+
With
|
| 223 |
+
.B \-\-seq\-ins
|
| 224 |
+
allow at most
|
| 225 |
+
.I <n>
|
| 226 |
+
inserted residues in a sequence for it to be kept.
|
| 227 |
+
|
| 228 |
+
.TP
|
| 229 |
+
.BI \-\-trim " <f>"
|
| 230 |
+
File
|
| 231 |
+
.I <f>
|
| 232 |
+
is an unaligned FASTA file containing truncated versions of each
|
| 233 |
+
sequence in the
|
| 234 |
+
.I msafile.
|
| 235 |
+
Trim the sequences in the alignment to match their truncated versions
|
| 236 |
+
in
|
| 237 |
+
.I <f>.
|
| 238 |
+
If the alignment output format is Stockholm (the default output
|
| 239 |
+
format), all per-column (GC) and per-residue (GR) annotation will be
|
| 240 |
+
removed from the alignment when
|
| 241 |
+
.B \-\-trim
|
| 242 |
+
is used. However, if
|
| 243 |
+
.B \-\-t\-keeprf
|
| 244 |
+
is also used, the reference annotation (GC RF) will be kept.
|
| 245 |
+
|
| 246 |
+
.TP
|
| 247 |
+
.B \-\-t\-keeprf
|
| 248 |
+
Specify that the 'trimmed' alignment maintain the original
|
| 249 |
+
reference (GC RF) annotation. Only works in combination with
|
| 250 |
+
.B \-\-trim.
|
| 251 |
+
|
| 252 |
+
.TP
|
| 253 |
+
.BI \-\-minpp " <x>"
|
| 254 |
+
Replace all residues in the alignments for which the posterior
|
| 255 |
+
probability annotation (#=GR PP) is less than
|
| 256 |
+
.I <x>
|
| 257 |
+
with gaps. The PP annotation for these residues is also converted to
|
| 258 |
+
gaps.
|
| 259 |
+
.I <x>
|
| 260 |
+
must be greater than 0.0 and less than or equal to 0.95.
|
| 261 |
+
|
| 262 |
+
.TP
|
| 263 |
+
.BI \-\-tree " <f>"
|
| 264 |
+
Reorder sequences by tree order.
|
| 265 |
+
Perform single linkage clustering on the sequences in the alignment
|
| 266 |
+
based on sequence identity given the alignment to define a 'tree'
|
| 267 |
+
of the sequences. The sequences in the alignment are reordered
|
| 268 |
+
according to the tree, which groups similar sequences together. The
|
| 269 |
+
tree is output in Newick format to
|
| 270 |
+
.I <f>.
|
| 271 |
+
|
| 272 |
+
.TP
|
| 273 |
+
.BI \-\-reorder " <f>"
|
| 274 |
+
Reorder sequences to the order listed in file
|
| 275 |
+
.I <f>.
|
| 276 |
+
Each sequence in the alignment must be listed in
|
| 277 |
+
.I <f>.
|
| 278 |
+
Use
|
| 279 |
+
.B \-\-k\-reorder
|
| 280 |
+
to reorder only a subset of sequences to a subset alignment file.
|
| 281 |
+
The file must be in Stockholm format for this option to work.
|
| 282 |
+
|
| 283 |
+
.TP
|
| 284 |
+
.BI \-\-mask2rf " <f>"
|
| 285 |
+
Read in the 'mask' file
|
| 286 |
+
.I <f>
|
| 287 |
+
and use it to define new #=GC RF annotation for the
|
| 288 |
+
alignment.
|
| 289 |
+
.I <f>
|
| 290 |
+
must be a single line, with exactly
|
| 291 |
+
.I <alen>
|
| 292 |
+
or
|
| 293 |
+
.I <rflen>
|
| 294 |
+
characters, either the full alignment length or the number of nongap #=GC RF characters, respectively.
|
| 295 |
+
Each character must be either a '1'
|
| 296 |
+
or a '0'. The new #=GC RF markup will contain an 'x' for each column
|
| 297 |
+
that is a '1' in lane mask file, and a '.' for each column that is a '0'.
|
| 298 |
+
If the mask is of length
|
| 299 |
+
.I <rflen>
|
| 300 |
+
then it is interpreted as applying to only nongap RF characters in the
|
| 301 |
+
existing RF annotation, all gap RF characters will remain gaps and
|
| 302 |
+
nongap RF characters will be redefined as above.
|
| 303 |
+
|
| 304 |
+
.TP
|
| 305 |
+
.BI \-\-m\-keeprf
|
| 306 |
+
With
|
| 307 |
+
.B \-\-mask2rf,
|
| 308 |
+
do not overwrite existing nongap RF characters that are included by
|
| 309 |
+
the input mask as 'x', leave them as the character they are.
|
| 310 |
+
|
| 311 |
+
.TP
|
| 312 |
+
.BI \-\-num\-all
|
| 313 |
+
Add annotation to the alignment numbering all of the columns in the
|
| 314 |
+
alignment.
|
| 315 |
+
|
| 316 |
+
.TP
|
| 317 |
+
.BI \-\-num\-rf
|
| 318 |
+
Add annotation to the alignment numbering the non-gap (non '.') #=GC
|
| 319 |
+
RF columns of the alignment.
|
| 320 |
+
|
| 321 |
+
.TP
|
| 322 |
+
.BI \-\-rm\-gc " <s>"
|
| 323 |
+
Remove certain types of #=GC annotation from the alignment.
|
| 324 |
+
.I "<s>"
|
| 325 |
+
must be one of:
|
| 326 |
+
.BR RF ,
|
| 327 |
+
.BR SS_cons ,
|
| 328 |
+
.BR SA_cons ,
|
| 329 |
+
.BR PP_cons .
|
| 330 |
+
|
| 331 |
+
.TP
|
| 332 |
+
.BI \-\-sindi
|
| 333 |
+
Annotate individual secondary structures for each sequence by imposing
|
| 334 |
+
the consensus secondary structure defined by the #=GC SS_cons
|
| 335 |
+
annotation.
|
| 336 |
+
|
| 337 |
+
.TP
|
| 338 |
+
.BI \-\-post2pp
|
| 339 |
+
Update Infernal's cmalign 0.72-1.0.2 posterior probability "POST"
|
| 340 |
+
annotation to "PP" annotation, which is read by other miniapps,
|
| 341 |
+
including
|
| 342 |
+
.B esl\-alimask
|
| 343 |
+
and
|
| 344 |
+
.B esl\-alistat.
|
| 345 |
+
|
| 346 |
+
.TP
|
| 347 |
+
.B \-\-amino
|
| 348 |
+
Assert that the
|
| 349 |
+
.I msafile
|
| 350 |
+
contains protein sequences.
|
| 351 |
+
|
| 352 |
+
.TP
|
| 353 |
+
.B \-\-dna
|
| 354 |
+
Assert that the
|
| 355 |
+
.I msafile
|
| 356 |
+
contains DNA sequences.
|
| 357 |
+
|
| 358 |
+
.TP
|
| 359 |
+
.B \-\-rna
|
| 360 |
+
Assert that the
|
| 361 |
+
.I msafile
|
| 362 |
+
contains RNA sequences.
|
| 363 |
+
|
| 364 |
+
|
| 365 |
+
|
| 366 |
+
.SH SEE ALSO
|
| 367 |
+
|
| 368 |
+
.nf
|
| 369 |
+
http://bioeasel.org/
|
| 370 |
+
.fi
|
| 371 |
+
|
| 372 |
+
.SH COPYRIGHT
|
| 373 |
+
|
| 374 |
+
.nf
|
| 375 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 376 |
+
Freely distributed under the BSD open source license.
|
| 377 |
+
.fi
|
| 378 |
+
|
| 379 |
+
.SH AUTHOR
|
| 380 |
+
|
| 381 |
+
.nf
|
| 382 |
+
http://eddylab.org
|
| 383 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimap.1
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alimap" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alimap \- map two alignments to each other
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-alimap
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile1
|
| 10 |
+
.I msafile2
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.B esl\-alimap
|
| 15 |
+
is a highly specialized application that determines the optimal
|
| 16 |
+
alignment mapping of columns between two alignments of the same
|
| 17 |
+
sequences. An alignment mapping defines for each column in alignment 1
|
| 18 |
+
a matching column in alignment 2. The number of residues in the
|
| 19 |
+
aligned sequences that are in common between the two matched columns
|
| 20 |
+
are considered 'shared' by those two columns.
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
For example, if the nth residue of sequence i occurs in alignment 1
|
| 24 |
+
column x and alignment 2 column y, then only a mapping of alignment
|
| 25 |
+
1 and 2 that includes column x mapping to column y would correctly map
|
| 26 |
+
and share the residue.
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
The optimal mapping of the two alignments is the mapping which
|
| 30 |
+
maximizes the sum of shared residues between all pairs of matching
|
| 31 |
+
columns. The fraction of total residues that are shared is reported as
|
| 32 |
+
the coverage in the
|
| 33 |
+
.B esl\-alimap
|
| 34 |
+
output.
|
| 35 |
+
|
| 36 |
+
.PP
|
| 37 |
+
Only the first alignments in
|
| 38 |
+
.I msafile1
|
| 39 |
+
and
|
| 40 |
+
.I msafile2
|
| 41 |
+
will be mapped to each other. If the files contain more than one
|
| 42 |
+
alignment, all alignments after the first will be ignored.
|
| 43 |
+
|
| 44 |
+
.PP
|
| 45 |
+
The two alignments (one from each file) must contain exactly the same
|
| 46 |
+
sequences (if they were unaligned, they'd be identical) in precisely
|
| 47 |
+
the same order. They must also be in Stockholm format.
|
| 48 |
+
|
| 49 |
+
.PP
|
| 50 |
+
The output of
|
| 51 |
+
.B esl\-alimap
|
| 52 |
+
differs depending on whether one or both of the alignments
|
| 53 |
+
contain reference (#=GC RF) annotation. If so, the
|
| 54 |
+
coverage for residues from nongap RF positions will be reported
|
| 55 |
+
separately from the total coverage.
|
| 56 |
+
|
| 57 |
+
.PP
|
| 58 |
+
.B esl\-alimap
|
| 59 |
+
uses a dynamic programming algorithm to compute the optimal
|
| 60 |
+
mapping. The algorithm is similar to the Needleman-Wunsch-Sellers
|
| 61 |
+
algorithm but the scores used at each step of the recursion are not
|
| 62 |
+
residue-residue comparison scores but rather the number of residues
|
| 63 |
+
shared between two columns.
|
| 64 |
+
|
| 65 |
+
The
|
| 66 |
+
.BI \-\-mask\-a2a " <f>",
|
| 67 |
+
.BI \-\-mask\-a2rf " <f>",
|
| 68 |
+
.BI \-\-mask\-rf2a " <f>",
|
| 69 |
+
and
|
| 70 |
+
.BI \-\-mask\-rf2rf " <f>"
|
| 71 |
+
options create 'mask' files that pertain to the optimal mapping in
|
| 72 |
+
slightly different ways. A mask file consists of a single line, of
|
| 73 |
+
only '0' and '1' characters. These denote which positions of the
|
| 74 |
+
alignment from
|
| 75 |
+
.I msafile1
|
| 76 |
+
map to positions of the alignment from
|
| 77 |
+
.I msafile2
|
| 78 |
+
as described below for each of the four respective masking options.
|
| 79 |
+
These masks can be used to extract only those columns of the
|
| 80 |
+
.I msafile1
|
| 81 |
+
alignment
|
| 82 |
+
that optimally map to columns of the
|
| 83 |
+
.I msafile2
|
| 84 |
+
alignment
|
| 85 |
+
using the
|
| 86 |
+
.B esl\-alimask
|
| 87 |
+
miniapp. To extract the corresponding set of columns
|
| 88 |
+
from
|
| 89 |
+
.I msafile2
|
| 90 |
+
(that optimally map to columns of the alignment from
|
| 91 |
+
.IR msafile1 ),
|
| 92 |
+
it is necessary to rerun the program with the order of the two
|
| 93 |
+
msafiles reversed, save new masks, and use
|
| 94 |
+
.B esl\-alimask
|
| 95 |
+
again.
|
| 96 |
+
|
| 97 |
+
.SH OPTIONS
|
| 98 |
+
|
| 99 |
+
.TP
|
| 100 |
+
.B \-h
|
| 101 |
+
Print brief help; includes version number and summary of
|
| 102 |
+
all options.
|
| 103 |
+
|
| 104 |
+
.TP
|
| 105 |
+
.B \-q
|
| 106 |
+
Be quiet; don't print information the optimal mapping of each column,
|
| 107 |
+
only report coverage and potentially save masks to optional output files.
|
| 108 |
+
|
| 109 |
+
.TP
|
| 110 |
+
.BI \-\-mask\-a2a " <f>"
|
| 111 |
+
Save a mask of '0's and '1's to file
|
| 112 |
+
.I <f>.
|
| 113 |
+
A '1' at position x means that position x of the alignment from
|
| 114 |
+
.I msafile1
|
| 115 |
+
maps to an alignment position in the alignment from
|
| 116 |
+
.I msafile2
|
| 117 |
+
in the optimal map.
|
| 118 |
+
|
| 119 |
+
.TP
|
| 120 |
+
.BI \-\-mask\-a2rf " <f>"
|
| 121 |
+
Save a mask of '0's and '1's to file
|
| 122 |
+
.I <f>.
|
| 123 |
+
A '1' at position x means that position x of the alignment from
|
| 124 |
+
.I msafile1
|
| 125 |
+
maps to a nongap RF position in the alignment from
|
| 126 |
+
.I msafile2
|
| 127 |
+
in the optimal map.
|
| 128 |
+
|
| 129 |
+
.TP
|
| 130 |
+
.BI \-\-mask\-rf2a " <f>"
|
| 131 |
+
Save a mask of '0's and '1's to file
|
| 132 |
+
.I <f>.
|
| 133 |
+
A '1' at position x means that nongap RF position x of the alignment from
|
| 134 |
+
.I msafile1
|
| 135 |
+
maps to an alignment position in the alignment from
|
| 136 |
+
.I msafile2
|
| 137 |
+
in the optimal map.
|
| 138 |
+
|
| 139 |
+
.TP
|
| 140 |
+
.BI \-\-mask\-rf2rf " <f>"
|
| 141 |
+
Save a mask of '0's and '1's to file
|
| 142 |
+
.I <f>.
|
| 143 |
+
A '1' at position x means that nongap RF position x of the alignment from
|
| 144 |
+
.I msafile1
|
| 145 |
+
maps to a nongap RF position in the alignment from
|
| 146 |
+
.I msafile2
|
| 147 |
+
in the optimal map.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-\-submap " <f>"
|
| 151 |
+
Specify that all of the columns from the alignment from
|
| 152 |
+
.I msafile1
|
| 153 |
+
exist identically (contain the same residues from all sequences) in
|
| 154 |
+
the alignment from
|
| 155 |
+
.I msafile2.
|
| 156 |
+
This makes the task of mapping trivial.
|
| 157 |
+
However, not all columns of
|
| 158 |
+
.I msafile1
|
| 159 |
+
must exist in
|
| 160 |
+
.I msafile2.
|
| 161 |
+
Save the mask to file
|
| 162 |
+
.I <f>.
|
| 163 |
+
A '1' at position x of the mask means that position x of the alignment from
|
| 164 |
+
.I msafile1
|
| 165 |
+
is the same as position y of
|
| 166 |
+
.I msafile2,
|
| 167 |
+
where y is the number of '1's that occur at positions <= x in the mask.
|
| 168 |
+
|
| 169 |
+
.TP
|
| 170 |
+
.B \-\-amino
|
| 171 |
+
Assert that
|
| 172 |
+
.I msafile1
|
| 173 |
+
and
|
| 174 |
+
.I msafile2
|
| 175 |
+
contain protein sequences.
|
| 176 |
+
|
| 177 |
+
.TP
|
| 178 |
+
.B \-\-dna
|
| 179 |
+
Assert that
|
| 180 |
+
.I msafile1
|
| 181 |
+
and
|
| 182 |
+
.I msafile2
|
| 183 |
+
contain DNA sequences.
|
| 184 |
+
|
| 185 |
+
.TP
|
| 186 |
+
.B \-\-rna
|
| 187 |
+
Assert that the
|
| 188 |
+
.I msafile1
|
| 189 |
+
and
|
| 190 |
+
.I msafile2
|
| 191 |
+
contain RNA sequences.
|
| 192 |
+
|
| 193 |
+
|
| 194 |
+
.SH SEE ALSO
|
| 195 |
+
|
| 196 |
+
.nf
|
| 197 |
+
http://bioeasel.org/
|
| 198 |
+
.fi
|
| 199 |
+
|
| 200 |
+
.SH COPYRIGHT
|
| 201 |
+
|
| 202 |
+
.nf
|
| 203 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 204 |
+
Freely distributed under the BSD open source license.
|
| 205 |
+
.fi
|
| 206 |
+
|
| 207 |
+
.SH AUTHOR
|
| 208 |
+
|
| 209 |
+
.nf
|
| 210 |
+
http://eddylab.org
|
| 211 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alimerge.1
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alimerge" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alimerge \- merge alignments based on their reference (RF) annotation
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBesl\-alimerge \fR[\fIoptions\fR] \fIalifile1 alifile2\fR
|
| 10 |
+
(merge two alignment files)
|
| 11 |
+
|
| 12 |
+
\fBesl\-alimerge \-\-list \fR[\fIoptions\fR] \fIlistfile\fR
|
| 13 |
+
(merge many alignment files listed in a file)
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
.SH DESCRIPTION
|
| 17 |
+
|
| 18 |
+
.PP
|
| 19 |
+
.B esl\-alimerge
|
| 20 |
+
reads more than one input alignments, merges them into a single
|
| 21 |
+
alignment and outputs it.
|
| 22 |
+
|
| 23 |
+
.PP
|
| 24 |
+
The input alignments must all be in Stockholm format. All alignments
|
| 25 |
+
must have reference ('#=GC RF') annotation. Further, the RF annotation
|
| 26 |
+
must be identical in all alignments once gap characters in the RF
|
| 27 |
+
annotation ('.','\-','_') have been removed. This requirement allows
|
| 28 |
+
alignments with different numbers of total columns to be merged
|
| 29 |
+
together based on consistent RF annotation, such as alignments created
|
| 30 |
+
by successive runs of the
|
| 31 |
+
.B cmalign
|
| 32 |
+
program of the INFERNAL package using the same CM. Columns which have
|
| 33 |
+
a gap character in the RF annotation are called 'insert' columns.
|
| 34 |
+
|
| 35 |
+
.PP
|
| 36 |
+
All sequence data in all input alignments will be included in the
|
| 37 |
+
output alignment regardless of the output format (see
|
| 38 |
+
.B \-\-outformat
|
| 39 |
+
option below). However, sequences in the merged alignment will usually
|
| 40 |
+
contain more gaps ('.') than they did in their respective input
|
| 41 |
+
alignments. This is because
|
| 42 |
+
.B esl\-alimerge
|
| 43 |
+
must add 100% gap columns to each individual input alignment so that
|
| 44 |
+
insert columns in the other input alignments can be accomodated in the
|
| 45 |
+
merged alignment.
|
| 46 |
+
|
| 47 |
+
.PP
|
| 48 |
+
If the output format is Stockholm or Pfam, annotation will be
|
| 49 |
+
transferred from the input alignments to the merged alignment as
|
| 50 |
+
follows. All per-sequence ('#=GS') and per-residue ('#=GR') annotation
|
| 51 |
+
is transferred. Per-file ('#=GF') annotation is transferred if it is
|
| 52 |
+
present and identical in all alignments. Per-column ('#=GC') annotation is
|
| 53 |
+
transferred if it is present and identical in all alignments once all
|
| 54 |
+
insert positions have been removed and
|
| 55 |
+
the '#=GC' annotation includes zero non-gap characters in insert
|
| 56 |
+
columns.
|
| 57 |
+
|
| 58 |
+
.PP
|
| 59 |
+
With the
|
| 60 |
+
.BI \-\-list " <f>"
|
| 61 |
+
option,
|
| 62 |
+
.I <f>
|
| 63 |
+
is a file listing alignment files to merge. In the list file, blank
|
| 64 |
+
lines and lines that start with '#' (comments) are ignored. Each data
|
| 65 |
+
line contains a single word: the name of an alignment file to be
|
| 66 |
+
merged. All alignments in each file will be merged.
|
| 67 |
+
|
| 68 |
+
.PP
|
| 69 |
+
With the
|
| 70 |
+
.B \-\-small
|
| 71 |
+
option,
|
| 72 |
+
.B esl\-alimerge
|
| 73 |
+
will operate in memory saving mode and the required RAM for the merge
|
| 74 |
+
will be minimal (should be only a few Mb) and independent of the
|
| 75 |
+
alignment sizes. To use
|
| 76 |
+
.BR \-\-small ,
|
| 77 |
+
all alignments must be in Pfam format (non-interleaved, 1
|
| 78 |
+
line/sequence Stockholm format). You can reformat alignments to Pfam
|
| 79 |
+
using the
|
| 80 |
+
.B esl\-reformat
|
| 81 |
+
Easel miniapp. Without
|
| 82 |
+
.B \-\-small
|
| 83 |
+
the required RAM will be equal to roughly the size of the final merged
|
| 84 |
+
alignment file which will necessarily be at least the summed size of
|
| 85 |
+
all of the input alignment files to be merged and sometimes several
|
| 86 |
+
times larger. If you're merging large alignments or you're
|
| 87 |
+
experiencing very slow performance of
|
| 88 |
+
.BR esl\-alimerge ,
|
| 89 |
+
try reformatting to Pfam and using
|
| 90 |
+
.BR \-\-small .
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
.SH OPTIONS
|
| 95 |
+
|
| 96 |
+
.TP
|
| 97 |
+
.B \-h
|
| 98 |
+
Print brief help; includes version number and summary of
|
| 99 |
+
all options, including expert options.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.BI \-o " <f>"
|
| 103 |
+
Output merged alignment to file
|
| 104 |
+
.I <f>
|
| 105 |
+
instead of to stdout.
|
| 106 |
+
|
| 107 |
+
.TP
|
| 108 |
+
.B \-v
|
| 109 |
+
Be verbose; print information on the size of the alignments being merged,
|
| 110 |
+
and the annotation transferred to the merged alignment to stdout.
|
| 111 |
+
This option can only be used in combination with the
|
| 112 |
+
.B \-o
|
| 113 |
+
option (so that the printed info doesn't corrupt the output alignment
|
| 114 |
+
file).
|
| 115 |
+
|
| 116 |
+
.TP
|
| 117 |
+
.B \-\-small
|
| 118 |
+
Operate in memory saving mode. Required RAM will be independent of the
|
| 119 |
+
sizes of the alignments to merge, instead of roughly the size of the
|
| 120 |
+
eventual merged alignment. When enabled, all alignments must be in
|
| 121 |
+
Pfam Stockholm (non-interleaved 1 line/seq) format; see
|
| 122 |
+
.BR esl\-reformat (1).
|
| 123 |
+
The output alignment will be in Pfam format.
|
| 124 |
+
|
| 125 |
+
.TP
|
| 126 |
+
.B \-\-rfonly
|
| 127 |
+
Only include columns that are not gaps in the GC RF annotation in the
|
| 128 |
+
merged alignment.
|
| 129 |
+
|
| 130 |
+
.TP
|
| 131 |
+
.BI \-\-outformat " <s>"
|
| 132 |
+
Write the output alignment in format
|
| 133 |
+
.IR <s> .
|
| 134 |
+
Common choices for
|
| 135 |
+
.I <s>
|
| 136 |
+
include:
|
| 137 |
+
.BR stockholm ,
|
| 138 |
+
.BR a2m ,
|
| 139 |
+
.BR afa ,
|
| 140 |
+
.BR psiblast ,
|
| 141 |
+
.BR clustal ,
|
| 142 |
+
.BR phylip .
|
| 143 |
+
The string
|
| 144 |
+
.I <s>
|
| 145 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 146 |
+
Default is
|
| 147 |
+
.BR stockholm .
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
.TP
|
| 151 |
+
.B \-\-rna
|
| 152 |
+
Specify that the input alignments are RNA alignments. By default
|
| 153 |
+
.B esl\-alimerge
|
| 154 |
+
will try to autodetect the alphabet, but if the alignment is sufficiently
|
| 155 |
+
small it may be ambiguous. This option defines the alphabet as RNA.
|
| 156 |
+
|
| 157 |
+
.TP
|
| 158 |
+
.B \-\-dna
|
| 159 |
+
Specify that the input alignments are DNA alignments.
|
| 160 |
+
|
| 161 |
+
.TP
|
| 162 |
+
.B \-\-amino
|
| 163 |
+
Specify that the input alignments are protein alignments.
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
.SH SEE ALSO
|
| 168 |
+
|
| 169 |
+
.nf
|
| 170 |
+
http://bioeasel.org/
|
| 171 |
+
.fi
|
| 172 |
+
|
| 173 |
+
.SH COPYRIGHT
|
| 174 |
+
|
| 175 |
+
.nf
|
| 176 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 177 |
+
Freely distributed under the BSD open source license.
|
| 178 |
+
.fi
|
| 179 |
+
|
| 180 |
+
.SH AUTHOR
|
| 181 |
+
|
| 182 |
+
.nf
|
| 183 |
+
http://eddylab.org
|
| 184 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alipid.1
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alipid" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alipid \- calculate pairwise percent identities for all sequence pairs in an MSA
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-alipid
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
.B esl\-alistat
|
| 16 |
+
calculates the pairwise percent identity of each sequence pair in
|
| 17 |
+
in the MSA(s) in
|
| 18 |
+
.I msafile.
|
| 19 |
+
For each sequence pair, it outputs a line of
|
| 20 |
+
.I <seqname1> <seqname2> <%id> <nid> <denomid> <%match> <nmatch> <denommatch>
|
| 21 |
+
where
|
| 22 |
+
.I <%id>
|
| 23 |
+
is the percent identity,
|
| 24 |
+
.I <nid>
|
| 25 |
+
is the number of identical aligned pairs,
|
| 26 |
+
and
|
| 27 |
+
.I <denomid>
|
| 28 |
+
is the denominator used for the calculation: the
|
| 29 |
+
shorter of the two (unaligned) sequence lengths.
|
| 30 |
+
The %identity is defined as 100*nid/denomid.
|
| 31 |
+
|
| 32 |
+
.PP
|
| 33 |
+
The last three fields are the pairwise percent match calculation, in
|
| 34 |
+
the pair\-HMM sense of a "match state" that aligns two residues XY
|
| 35 |
+
(whether identical or different) versus delete \-Y and insert X\- states
|
| 36 |
+
that have a residue in one sequence and a gap character in the other.
|
| 37 |
+
That is, the %match is the percentage of the alignment that
|
| 38 |
+
consists of aligned residues as opposed to insertions or deletions in
|
| 39 |
+
either sequence. The %match is defined as 100*nmatch/denommatch.
|
| 40 |
+
|
| 41 |
+
.PP
|
| 42 |
+
There are many ways that one could choose a denominator for these
|
| 43 |
+
percentages. We always define %id using MIN(len1,len2) as the
|
| 44 |
+
denominator. In multiple sequence alignments, you will often have short
|
| 45 |
+
sequence fragments which may have very little overlap, or even none at
|
| 46 |
+
all. Several ways to calculate %identity, such as ignoring columns
|
| 47 |
+
with gaps (100* n_identities / (n_identities + n_mismatches)) , or
|
| 48 |
+
dividing by the total alignment length (100 * n_identities / ali_len),
|
| 49 |
+
are not robust to having overlapping fragments or long indels, because
|
| 50 |
+
you can get spuriously high or low %id's.
|
| 51 |
+
|
| 52 |
+
.PP
|
| 53 |
+
For both %identity and %match calculations, alignments of a gap
|
| 54 |
+
character in both sequences, \-\-, aren't counted. Also, if the denominator
|
| 55 |
+
is zero (which can happen, when two sequence fragments in the same MSA
|
| 56 |
+
don't overlap each other), the resulting % is defined to be 0.
|
| 57 |
+
|
| 58 |
+
.PP
|
| 59 |
+
If
|
| 60 |
+
.I msafile
|
| 61 |
+
is \- (a single dash), alignment input is read from
|
| 62 |
+
stdin.
|
| 63 |
+
|
| 64 |
+
.PP
|
| 65 |
+
Only canonical residues are counted toward
|
| 66 |
+
.I <nid>
|
| 67 |
+
and
|
| 68 |
+
.I <n>.
|
| 69 |
+
Degenerate residue codes are not counted.
|
| 70 |
+
|
| 71 |
+
.SH OPTIONS
|
| 72 |
+
|
| 73 |
+
.TP
|
| 74 |
+
.B \-h
|
| 75 |
+
Print brief help; includes version number and summary of
|
| 76 |
+
all options, including expert options.
|
| 77 |
+
|
| 78 |
+
.TP
|
| 79 |
+
.BI \-\-informat " <s>"
|
| 80 |
+
Assert that input
|
| 81 |
+
.I msafile
|
| 82 |
+
is in alignment format
|
| 83 |
+
.IR <s> ,
|
| 84 |
+
bypassing format autodetection.
|
| 85 |
+
Common choices for
|
| 86 |
+
.I <s>
|
| 87 |
+
include:
|
| 88 |
+
.BR stockholm ,
|
| 89 |
+
.BR a2m ,
|
| 90 |
+
.BR afa ,
|
| 91 |
+
.BR psiblast ,
|
| 92 |
+
.BR clustal ,
|
| 93 |
+
.BR phylip .
|
| 94 |
+
For more information, and for codes for some less common formats,
|
| 95 |
+
see main documentation.
|
| 96 |
+
The string
|
| 97 |
+
.I <s>
|
| 98 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 99 |
+
|
| 100 |
+
.TP
|
| 101 |
+
.B \-\-amino
|
| 102 |
+
Assert that the
|
| 103 |
+
.I msafile
|
| 104 |
+
contains protein sequences.
|
| 105 |
+
|
| 106 |
+
.TP
|
| 107 |
+
.B \-\-dna
|
| 108 |
+
Assert that the
|
| 109 |
+
.I msafile
|
| 110 |
+
contains DNA sequences.
|
| 111 |
+
|
| 112 |
+
.TP
|
| 113 |
+
.B \-\-rna
|
| 114 |
+
Assert that the
|
| 115 |
+
.I msafile
|
| 116 |
+
contains RNA sequences.
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
.SH SEE ALSO
|
| 121 |
+
|
| 122 |
+
.nf
|
| 123 |
+
http://bioeasel.org/
|
| 124 |
+
.fi
|
| 125 |
+
|
| 126 |
+
.SH COPYRIGHT
|
| 127 |
+
|
| 128 |
+
.nf
|
| 129 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 130 |
+
Freely distributed under the BSD open source license.
|
| 131 |
+
.fi
|
| 132 |
+
|
| 133 |
+
.SH AUTHOR
|
| 134 |
+
|
| 135 |
+
.nf
|
| 136 |
+
http://eddylab.org
|
| 137 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alirev.1
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alirev" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alirev \- reverse complement a multiple alignment
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B esl\-alirev
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I msafile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B esl\-alirev
|
| 17 |
+
reads the multiple alignment in
|
| 18 |
+
.I msafile
|
| 19 |
+
and outputs its reverse complement to stdout.
|
| 20 |
+
|
| 21 |
+
.PP
|
| 22 |
+
An example of where you might need to do this is when you've
|
| 23 |
+
downloaded a chunk of multiway genomic alignment from one of the
|
| 24 |
+
genome browsers, but your RNA of interest is on the opposite strand.
|
| 25 |
+
|
| 26 |
+
.PP
|
| 27 |
+
Any per-column and per-residue annotation lines are reversed as well,
|
| 28 |
+
including Stockholm format and old SELEX format annotations.
|
| 29 |
+
Annotations that Easel recognizes as secondary structure annotation (a
|
| 30 |
+
consensus structure line, individual secondary structure lines) will
|
| 31 |
+
be "reverse complemented" to preserve proper bracketing orders: for
|
| 32 |
+
example, ...<<<...>>> is reverse complemented to <<<...>>>..., not
|
| 33 |
+
simply reversed to >>>...<<<..., which would be wrong.
|
| 34 |
+
|
| 35 |
+
.PP
|
| 36 |
+
If
|
| 37 |
+
.I msafile
|
| 38 |
+
is \- (a single dash), alignment input is read from stdin.
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
.PP
|
| 42 |
+
By default the output alignment is written in the same format as the
|
| 43 |
+
input alignment. See the
|
| 44 |
+
.B \-\-outformat
|
| 45 |
+
option to use a different output format.
|
| 46 |
+
|
| 47 |
+
.PP
|
| 48 |
+
Because the alignment is parsed into Easel's digital internal
|
| 49 |
+
representation, the output alignment may differ in certain details
|
| 50 |
+
from the original alignment; these details should be inconsequential
|
| 51 |
+
but may catch your eye. One is that if you have a reference annotation
|
| 52 |
+
line, Easel's output will put consensus residues in upper case,
|
| 53 |
+
nonconsensus (inserted) residues in lower case. Another is that the
|
| 54 |
+
headers for some formats, such as Clustal format, are written with an
|
| 55 |
+
arbitrary version number - so you may find yourself revcomping an
|
| 56 |
+
alignment in "MUSCLE (3.7) multiple sequence alignment" format and it
|
| 57 |
+
could come out claiming to be a "CLUSTAL 2.1 multiple sequence
|
| 58 |
+
alignment", just because Easel writes all of its Clustal format
|
| 59 |
+
alignment files with that header.
|
| 60 |
+
|
| 61 |
+
.PP
|
| 62 |
+
The
|
| 63 |
+
.I msafile
|
| 64 |
+
must contain nucleic acid sequences (DNA or RNA).
|
| 65 |
+
The alphabet will be autodetected by default.
|
| 66 |
+
See the
|
| 67 |
+
.B \-\-dna
|
| 68 |
+
or
|
| 69 |
+
.B \-\-rna
|
| 70 |
+
options to assert an alphabet.
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
.SH OPTIONS
|
| 75 |
+
|
| 76 |
+
.TP
|
| 77 |
+
.B \-h
|
| 78 |
+
Print brief help; includes version number and summary of
|
| 79 |
+
all options, including expert options.
|
| 80 |
+
|
| 81 |
+
.TP
|
| 82 |
+
.BI \-\-informat " <s>"
|
| 83 |
+
Assert that input
|
| 84 |
+
.I msafile
|
| 85 |
+
is in alignment format
|
| 86 |
+
.IR <s> ,
|
| 87 |
+
bypassing format autodetection.
|
| 88 |
+
Common choices for
|
| 89 |
+
.I <s>
|
| 90 |
+
include:
|
| 91 |
+
.BR stockholm ,
|
| 92 |
+
.BR a2m ,
|
| 93 |
+
.BR afa ,
|
| 94 |
+
.BR psiblast ,
|
| 95 |
+
.BR clustal ,
|
| 96 |
+
.BR phylip .
|
| 97 |
+
For more information, and for codes for some less common formats,
|
| 98 |
+
see main documentation.
|
| 99 |
+
The string
|
| 100 |
+
.I <s>
|
| 101 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 102 |
+
|
| 103 |
+
.TP
|
| 104 |
+
.BI \-\-outformat " <s>"
|
| 105 |
+
Write the output alignment in alignment format
|
| 106 |
+
.IR <s> .
|
| 107 |
+
Common choices for
|
| 108 |
+
.I <s>
|
| 109 |
+
include:
|
| 110 |
+
.BR stockholm ,
|
| 111 |
+
.BR a2m ,
|
| 112 |
+
.BR afa ,
|
| 113 |
+
.BR psiblast ,
|
| 114 |
+
.BR clustal ,
|
| 115 |
+
.BR phylip .
|
| 116 |
+
The string
|
| 117 |
+
.I <s>
|
| 118 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 119 |
+
Default is to use same format as the input
|
| 120 |
+
.IR msafile .
|
| 121 |
+
|
| 122 |
+
.TP
|
| 123 |
+
.B \-\-dna
|
| 124 |
+
Assert that the
|
| 125 |
+
.I msafile
|
| 126 |
+
contains DNA sequences.
|
| 127 |
+
|
| 128 |
+
.TP
|
| 129 |
+
.B \-\-rna
|
| 130 |
+
Assert that the
|
| 131 |
+
.I msafile
|
| 132 |
+
contains RNA sequences.
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
.SH SEE ALSO
|
| 136 |
+
|
| 137 |
+
.nf
|
| 138 |
+
http://bioeasel.org/
|
| 139 |
+
.fi
|
| 140 |
+
|
| 141 |
+
.SH COPYRIGHT
|
| 142 |
+
|
| 143 |
+
.nf
|
| 144 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 145 |
+
Freely distributed under the BSD open source license.
|
| 146 |
+
.fi
|
| 147 |
+
|
| 148 |
+
.SH AUTHOR
|
| 149 |
+
|
| 150 |
+
.nf
|
| 151 |
+
http://eddylab.org
|
| 152 |
+
.fi
|
| 153 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-alistat.1
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-alistat" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-alistat \- summarize a multiple sequence alignment file
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-alistat
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile
|
| 10 |
+
|
| 11 |
+
.SH DESCRIPTION
|
| 12 |
+
|
| 13 |
+
.PP
|
| 14 |
+
.B esl\-alistat
|
| 15 |
+
summarizes the contents of the multiple sequence alignment(s) in
|
| 16 |
+
.I msafile,
|
| 17 |
+
such as the alignment name, format, alignment length (number of
|
| 18 |
+
aligned columns), number of sequences, average pairwise % identity,
|
| 19 |
+
and mean, smallest, and largest raw (unaligned) lengths of the
|
| 20 |
+
sequences.
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
If
|
| 24 |
+
.I msafile
|
| 25 |
+
is \- (a single dash),
|
| 26 |
+
multiple alignment input is read from stdin.
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
.PP
|
| 31 |
+
The
|
| 32 |
+
.BR \-\-list ,
|
| 33 |
+
.BR \-\-icinfo ,
|
| 34 |
+
.BR \-\-rinfo ,
|
| 35 |
+
.BR \-\-pcinfo ,
|
| 36 |
+
.BR \-\-psinfo ,
|
| 37 |
+
.BR \-\-cinfo ,
|
| 38 |
+
.BR \-\-bpinfo ,
|
| 39 |
+
and
|
| 40 |
+
.B \-\-iinfo
|
| 41 |
+
options allow dumping various statistics on the alignment to optional
|
| 42 |
+
output files as described for each of those options below.
|
| 43 |
+
|
| 44 |
+
.PP
|
| 45 |
+
The
|
| 46 |
+
.B \-\-small
|
| 47 |
+
option allows summarizing alignments without storing them in memory
|
| 48 |
+
and can be useful for large alignment files with sizes that approach
|
| 49 |
+
or exceed the amount of available RAM. When
|
| 50 |
+
.B \-\-small
|
| 51 |
+
is used,
|
| 52 |
+
.B esl\-alistat
|
| 53 |
+
will print fewer statistics on the alignment, omitting data on the
|
| 54 |
+
smallest and largest sequences and the average identity of the
|
| 55 |
+
alignment.
|
| 56 |
+
.B \-\-small
|
| 57 |
+
only works on Pfam formatted alignments (a special type of
|
| 58 |
+
non-interleaved Stockholm alignment in which each sequence occurs on a
|
| 59 |
+
single line) and
|
| 60 |
+
.B \-\-informat pfam
|
| 61 |
+
must be given with
|
| 62 |
+
.BR \-\-small .
|
| 63 |
+
Further, when
|
| 64 |
+
.B \-\-small
|
| 65 |
+
is used, the alphabet must be specified with
|
| 66 |
+
.BR \-\-amino ,
|
| 67 |
+
.BR \-\-dna ,
|
| 68 |
+
or
|
| 69 |
+
.BR \-\-rna .
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
.SH OPTIONS
|
| 74 |
+
|
| 75 |
+
.TP
|
| 76 |
+
.B \-h
|
| 77 |
+
Print brief help; includes version number and summary of
|
| 78 |
+
all options, including expert options.
|
| 79 |
+
|
| 80 |
+
.TP
|
| 81 |
+
.B \-1
|
| 82 |
+
Use a tabular output format with one line of statistics per alignment
|
| 83 |
+
in
|
| 84 |
+
.I msafile.
|
| 85 |
+
This is most useful when
|
| 86 |
+
.I msafile
|
| 87 |
+
contains many different alignments (such as a Pfam database in
|
| 88 |
+
Stockholm format).
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
.SH EXPERT OPTIONS
|
| 92 |
+
|
| 93 |
+
.TP
|
| 94 |
+
.BI \-\-informat " <s>"
|
| 95 |
+
Assert that input
|
| 96 |
+
.I msafile
|
| 97 |
+
is in alignment format
|
| 98 |
+
.IR <s> ,
|
| 99 |
+
bypassing format autodetection.
|
| 100 |
+
Common choices for
|
| 101 |
+
.I <s>
|
| 102 |
+
include:
|
| 103 |
+
.BR stockholm ,
|
| 104 |
+
.BR a2m ,
|
| 105 |
+
.BR afa ,
|
| 106 |
+
.BR psiblast ,
|
| 107 |
+
.BR clustal ,
|
| 108 |
+
.BR phylip .
|
| 109 |
+
For more information, and for codes for some less common formats,
|
| 110 |
+
see main documentation.
|
| 111 |
+
The string
|
| 112 |
+
.I <s>
|
| 113 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
.TP
|
| 117 |
+
.B \-\-amino
|
| 118 |
+
Assert that the
|
| 119 |
+
.I msafile
|
| 120 |
+
contains protein sequences.
|
| 121 |
+
|
| 122 |
+
.TP
|
| 123 |
+
.B \-\-dna
|
| 124 |
+
Assert that the
|
| 125 |
+
.I msafile
|
| 126 |
+
contains DNA sequences.
|
| 127 |
+
|
| 128 |
+
.TP
|
| 129 |
+
.B \-\-rna
|
| 130 |
+
Assert that the
|
| 131 |
+
.I msafile
|
| 132 |
+
contains RNA sequences.
|
| 133 |
+
|
| 134 |
+
.TP
|
| 135 |
+
.B \-\-small
|
| 136 |
+
Operate in small memory mode for Pfam formatted alignments.
|
| 137 |
+
.B \-\-informat pfam
|
| 138 |
+
and one of
|
| 139 |
+
.BR \-\-amino ,
|
| 140 |
+
.BR \-\-dna ,
|
| 141 |
+
or
|
| 142 |
+
.B \-\-rna
|
| 143 |
+
must be given as well.
|
| 144 |
+
|
| 145 |
+
.TP
|
| 146 |
+
.BI \-\-list " <f>"
|
| 147 |
+
List the names of all sequences in all alignments in
|
| 148 |
+
.B msafile
|
| 149 |
+
to file
|
| 150 |
+
.IR <f> .
|
| 151 |
+
Each sequence name is written on its own line.
|
| 152 |
+
|
| 153 |
+
.TP
|
| 154 |
+
.BI \-\-icinfo " <f>"
|
| 155 |
+
Dump the information content per position in tabular format to file
|
| 156 |
+
.IR <f> .
|
| 157 |
+
Lines prefixed with "#" are comment lines, which explain the
|
| 158 |
+
meanings of each of the tab-delimited fields.
|
| 159 |
+
|
| 160 |
+
.TP
|
| 161 |
+
.BI \-\-rinfo " <f>"
|
| 162 |
+
Dump information on the frequency of gaps versus nongap residues per position in tabular format to file
|
| 163 |
+
.IR <f> .
|
| 164 |
+
Lines prefixed with "#" are comment lines, which explain the
|
| 165 |
+
meanings of each of the tab-delimited fields.
|
| 166 |
+
|
| 167 |
+
.TP
|
| 168 |
+
.BI \-\-pcinfo " <f>"
|
| 169 |
+
Dump per column information on posterior probabilities in tabular format to file
|
| 170 |
+
.IR <f> .
|
| 171 |
+
Lines prefixed with "#" are comment lines, which explain the
|
| 172 |
+
meanings of each of the tab-delimited fields.
|
| 173 |
+
|
| 174 |
+
.TP
|
| 175 |
+
.BI \-\-psinfo " <f>"
|
| 176 |
+
Dump per sequence information on posterior probabilities in tabular format to file
|
| 177 |
+
.IR <f> .
|
| 178 |
+
Lines prefixed with "#" are comment lines, which explain the
|
| 179 |
+
meanings of each of the tab-delimited fields.
|
| 180 |
+
|
| 181 |
+
.TP
|
| 182 |
+
.BI \-\-iinfo " <f>"
|
| 183 |
+
Dump information on inserted residues in tabular format to file
|
| 184 |
+
.IR <f> .
|
| 185 |
+
Insert columns of the alignment are those that are gaps in the
|
| 186 |
+
reference (#=GC RF) annotation. This option only works if the input
|
| 187 |
+
file is in Stockholm format with reference annotation.
|
| 188 |
+
Lines prefixed with "#" are comment lines, which explain the
|
| 189 |
+
meanings of each of the tab-delimited fields.
|
| 190 |
+
|
| 191 |
+
.TP
|
| 192 |
+
.BI \-\-cinfo " <f>"
|
| 193 |
+
Dump per-column residue counts to file
|
| 194 |
+
.IR <f> .
|
| 195 |
+
If used in combination with
|
| 196 |
+
.B \-\-noambig
|
| 197 |
+
ambiguous (degenerate) residues will be ignored and not
|
| 198 |
+
counted. Otherwise, they will be marginalized. For example, in an RNA
|
| 199 |
+
sequence file, a 'N' will be counted as 0.25 'A', 0.25 'C', 0.25 'G',
|
| 200 |
+
and 0.25 'U'.
|
| 201 |
+
|
| 202 |
+
.TP
|
| 203 |
+
.B \-\-noambig
|
| 204 |
+
With
|
| 205 |
+
.BR \-\-cinfo ,
|
| 206 |
+
do not count ambiguous (degenerate) residues.
|
| 207 |
+
|
| 208 |
+
.TP
|
| 209 |
+
.B \-\-bpinfo
|
| 210 |
+
Dump per-column basepair counts to file
|
| 211 |
+
.IR <f> .
|
| 212 |
+
Counts appear for each basepair in the consensus secondary structure (annotated as
|
| 213 |
+
"#=GC SS_cons"). Only basepairs from sequences for which both paired positions are
|
| 214 |
+
canonical residues will be counted. That is, any basepair that is a gap
|
| 215 |
+
or an ambiguous (degenerate) residue at either position of the pair is
|
| 216 |
+
ignored and not counted.
|
| 217 |
+
|
| 218 |
+
|
| 219 |
+
.TP
|
| 220 |
+
.B \-\-weight
|
| 221 |
+
With
|
| 222 |
+
.BR \-\-icinfo ,
|
| 223 |
+
.BR \-\-rinfo ,
|
| 224 |
+
.BR \-\-pcinfo ,
|
| 225 |
+
.BR \-\-iinfo ,
|
| 226 |
+
.BR \-\-cinfo ,
|
| 227 |
+
and
|
| 228 |
+
.BR \-\-bpinfo ,
|
| 229 |
+
weight counts based on #=GS WT annotation in the input
|
| 230 |
+
.IR msafile .
|
| 231 |
+
A residue or basepair from a sequence with a weight of
|
| 232 |
+
.I <x>
|
| 233 |
+
will be considered
|
| 234 |
+
.I <x>
|
| 235 |
+
counts.
|
| 236 |
+
By default, raw, unweighted counts are reported; corresponding to each
|
| 237 |
+
sequence having an equal weight of 1.
|
| 238 |
+
|
| 239 |
+
|
| 240 |
+
|
| 241 |
+
|
| 242 |
+
.SH SEE ALSO
|
| 243 |
+
|
| 244 |
+
.nf
|
| 245 |
+
http://bioeasel.org/
|
| 246 |
+
.fi
|
| 247 |
+
|
| 248 |
+
.SH COPYRIGHT
|
| 249 |
+
|
| 250 |
+
.nf
|
| 251 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 252 |
+
Freely distributed under the BSD open source license.
|
| 253 |
+
.fi
|
| 254 |
+
|
| 255 |
+
.SH AUTHOR
|
| 256 |
+
|
| 257 |
+
.nf
|
| 258 |
+
http://eddylab.org
|
| 259 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-compalign.1
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-compalign" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-compalign \- compare two multiple sequence alignments
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-compalign
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I trusted_file
|
| 10 |
+
.I test_file
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
.SH DESCRIPTION
|
| 15 |
+
|
| 16 |
+
.PP
|
| 17 |
+
.B esl\-compalign
|
| 18 |
+
evaluates the accuracy of a predicted multiple sequence alignment with
|
| 19 |
+
respect to a trusted alignment of the same sequences.
|
| 20 |
+
|
| 21 |
+
.PP
|
| 22 |
+
The
|
| 23 |
+
.I trusted_file
|
| 24 |
+
and
|
| 25 |
+
.I test_file
|
| 26 |
+
must contain the same number of alignments. Each predicted alignment in the
|
| 27 |
+
.I test_file
|
| 28 |
+
will be compared against a single trusted alignment from the
|
| 29 |
+
.I trusted_file.
|
| 30 |
+
The first alignments in each file correspond to each other and will be
|
| 31 |
+
compared, the second alignment in each file correspond to each other
|
| 32 |
+
and will be compared, and so on. Each corresponding pair of
|
| 33 |
+
alignments must contain the same sequences (i.e. if they were
|
| 34 |
+
unaligned they would be identical) in the same order in both
|
| 35 |
+
files. Further, both alignment files must be in Stockholm format and
|
| 36 |
+
contain 'reference' annotation, which appears as "#=GC RF" per-column
|
| 37 |
+
markup for each alignment. The number of nongap (non '.' characters)
|
| 38 |
+
in the reference (RF) annotation must be identical between all
|
| 39 |
+
corresponding alignments in the two files.
|
| 40 |
+
|
| 41 |
+
.PP
|
| 42 |
+
.B esl\-compalign
|
| 43 |
+
reads an alignment from each file, and compares them based on
|
| 44 |
+
their 'reference' annotation. The number of correctly predicted
|
| 45 |
+
residues for each sequence is computed as follows. A residue that is
|
| 46 |
+
in the Nth nongap RF column in the trusted alignment must also appear
|
| 47 |
+
in the Nth nongap RF column in the predicted alignment to be counted
|
| 48 |
+
as 'correct', otherwise it is 'incorrect'. A residue that appears in a
|
| 49 |
+
gap RF column in the trusted alignment between nongap RF columns N and
|
| 50 |
+
N+1 must also appear in a nongap RF column in the predicted alignment
|
| 51 |
+
between nongap RF columns N and N+1 to be counted as 'correct',
|
| 52 |
+
otherwise it is incorrect.
|
| 53 |
+
|
| 54 |
+
.PP
|
| 55 |
+
The default output of
|
| 56 |
+
.B esl\-compalign
|
| 57 |
+
lists each sequence and the number of correctly and incorrectly
|
| 58 |
+
predicted residues for that sequence. These counts are broken down
|
| 59 |
+
into counts for residues in the predicted alignments that occur
|
| 60 |
+
in 'match' columns and 'insert' columns. A 'match' column is one for
|
| 61 |
+
which the RF annotation does not contain a gap. An 'insert' column is
|
| 62 |
+
one for which the RF annotation does contain a gap.
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
.SH OPTIONS
|
| 67 |
+
|
| 68 |
+
.TP
|
| 69 |
+
.B \-h
|
| 70 |
+
Print brief help; includes version number and summary of
|
| 71 |
+
all options.
|
| 72 |
+
|
| 73 |
+
.TP
|
| 74 |
+
.B \-c
|
| 75 |
+
Print per-column statistics instead of per-sequence statistics.
|
| 76 |
+
|
| 77 |
+
.TP
|
| 78 |
+
.B \-p
|
| 79 |
+
Print statistics on accuracy versus posterior probability values. The
|
| 80 |
+
.I test_file
|
| 81 |
+
must be annotated with posterior probabilities (#=GR PP) for this
|
| 82 |
+
option to work.
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
.SH EXPERT OPTIONS
|
| 86 |
+
|
| 87 |
+
.TP
|
| 88 |
+
.BI \-\-p\-mask " <f>"
|
| 89 |
+
This option may only be used in combination with the
|
| 90 |
+
.B \-p
|
| 91 |
+
option. Read a "mask" from file
|
| 92 |
+
.IR <f> .
|
| 93 |
+
The mask file must consist of a single line, of only '0' and '1'
|
| 94 |
+
characters. There must be exactly RFLEN characters where RFLEN is the
|
| 95 |
+
number of nongap characters in the RF annotation of all alignments in
|
| 96 |
+
both
|
| 97 |
+
.I trusted_file
|
| 98 |
+
and
|
| 99 |
+
.IR test_file .
|
| 100 |
+
Positions of the mask that are '1' characters indicate that the
|
| 101 |
+
corresponding nongap RF position is included by the mask. The
|
| 102 |
+
posterior probability accuracy statistics for match columns will only
|
| 103 |
+
pertain to positions that are included by the mask, those that are
|
| 104 |
+
excluded will be ignored from the accuracy calculation.
|
| 105 |
+
|
| 106 |
+
.BI \-\-c2dfile " <f>"
|
| 107 |
+
Save a 'draw file' to file
|
| 108 |
+
.I <f>
|
| 109 |
+
which can be read into the
|
| 110 |
+
.B esl\-ssdraw
|
| 111 |
+
miniapp. This draw file will define two postscript pages for
|
| 112 |
+
.BR esl\-ssdraw .
|
| 113 |
+
The first page will depict the frequency of errors per match position and
|
| 114 |
+
frequency of gaps per match position, indicated by magenta and yellow,
|
| 115 |
+
respectively. The darker magenta, the more errors and the darker
|
| 116 |
+
yellow, the more gaps. The second page will depict the frequency of
|
| 117 |
+
errors in insert positions in shades of magenta, the darker the
|
| 118 |
+
magenta the more errors in inserts after each position. See
|
| 119 |
+
.B esl\-ssdraw
|
| 120 |
+
documentation for more information on these diagrams.
|
| 121 |
+
|
| 122 |
+
.TP
|
| 123 |
+
.B \-\-amino
|
| 124 |
+
Assert that
|
| 125 |
+
.I trusted_file
|
| 126 |
+
and
|
| 127 |
+
.I test_file
|
| 128 |
+
contain protein sequences.
|
| 129 |
+
|
| 130 |
+
.TP
|
| 131 |
+
.B \-\-dna
|
| 132 |
+
Assert that
|
| 133 |
+
.I trusted_file
|
| 134 |
+
and
|
| 135 |
+
.I test_file
|
| 136 |
+
contain DNA sequences.
|
| 137 |
+
|
| 138 |
+
.TP
|
| 139 |
+
.B \-\-rna
|
| 140 |
+
Assert that the
|
| 141 |
+
.I trusted_file
|
| 142 |
+
and
|
| 143 |
+
.I test_file
|
| 144 |
+
contain RNA sequences.
|
| 145 |
+
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
.SH SEE ALSO
|
| 149 |
+
|
| 150 |
+
.nf
|
| 151 |
+
http://bioeasel.org/
|
| 152 |
+
.fi
|
| 153 |
+
|
| 154 |
+
.SH COPYRIGHT
|
| 155 |
+
|
| 156 |
+
.nf
|
| 157 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 158 |
+
Freely distributed under the BSD open source license.
|
| 159 |
+
.fi
|
| 160 |
+
|
| 161 |
+
.SH AUTHOR
|
| 162 |
+
|
| 163 |
+
.nf
|
| 164 |
+
http://eddylab.org
|
| 165 |
+
.fi
|
| 166 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-histplot.1
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-histplot" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-histplot \- collate data histogram, output xmgrace datafile
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-histplot
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I datafile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
.B esl\-histplot
|
| 16 |
+
summarizes numerical data in the input file
|
| 17 |
+
.I datafile.
|
| 18 |
+
|
| 19 |
+
.PP
|
| 20 |
+
One real-numbered value is taken from each line of the input file.
|
| 21 |
+
Each line is split into whitespace-delimited fields, and one field
|
| 22 |
+
is converted to data. By default this is the first field; this can be
|
| 23 |
+
changed by the
|
| 24 |
+
.B \-f
|
| 25 |
+
option.
|
| 26 |
+
|
| 27 |
+
.PP
|
| 28 |
+
Default output is a survival plot (Prob(value > x)) in xmgrace XY data
|
| 29 |
+
format, to stdout.
|
| 30 |
+
Output may be directed to a file with the
|
| 31 |
+
.B \-o
|
| 32 |
+
option.
|
| 33 |
+
|
| 34 |
+
.PP
|
| 35 |
+
If
|
| 36 |
+
.I datafile
|
| 37 |
+
is \- (a single dash), input lines are read from stdin
|
| 38 |
+
instead of opening a file.
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
.SH OPTIONS
|
| 44 |
+
|
| 45 |
+
.TP
|
| 46 |
+
.BI \-f " <n>"
|
| 47 |
+
Read data from whitespace-delimited field
|
| 48 |
+
.I <n>
|
| 49 |
+
on each line, instead of the first field.
|
| 50 |
+
Fields are numbered starting from 1.
|
| 51 |
+
|
| 52 |
+
.TP
|
| 53 |
+
.B \-h
|
| 54 |
+
Print brief help; includes version number and summary of
|
| 55 |
+
all options, including expert options.
|
| 56 |
+
|
| 57 |
+
.TP
|
| 58 |
+
.BI \-o " <f>"
|
| 59 |
+
Send output to file
|
| 60 |
+
.I <f>
|
| 61 |
+
instead of stdout.
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
.SH SEE ALSO
|
| 66 |
+
|
| 67 |
+
.nf
|
| 68 |
+
http://bioeasel.org/
|
| 69 |
+
.fi
|
| 70 |
+
|
| 71 |
+
.SH COPYRIGHT
|
| 72 |
+
|
| 73 |
+
.nf
|
| 74 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 75 |
+
Freely distributed under the BSD open source license.
|
| 76 |
+
.fi
|
| 77 |
+
|
| 78 |
+
.SH AUTHOR
|
| 79 |
+
|
| 80 |
+
.nf
|
| 81 |
+
http://eddylab.org
|
| 82 |
+
.fi
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-mask.1
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-mask" 1 "Aug 2023" "Easel @EASELVERSION@" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-mask \- mask sequence residues with X's (or other characters)
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-mask
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I seqfile
|
| 10 |
+
.I maskfile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B esl\-mask
|
| 17 |
+
reads lines from
|
| 18 |
+
.I maskfile
|
| 19 |
+
that give start/end coordinates for
|
| 20 |
+
regions in each sequence in
|
| 21 |
+
.IR seqfile ,
|
| 22 |
+
masks these residues (changes
|
| 23 |
+
them to X's), and outputs the masked sequence.
|
| 24 |
+
|
| 25 |
+
.PP
|
| 26 |
+
The
|
| 27 |
+
.I maskfile
|
| 28 |
+
is a space-delimited file. Blank lines and lines that start with '#'
|
| 29 |
+
(comments) are ignored. Each data line contains at least three
|
| 30 |
+
fields:
|
| 31 |
+
.IR seqname ,
|
| 32 |
+
.IR start ,
|
| 33 |
+
and
|
| 34 |
+
.IR end .
|
| 35 |
+
The
|
| 36 |
+
.I seqname
|
| 37 |
+
is the name of a sequence in the
|
| 38 |
+
.IR seqfile ,
|
| 39 |
+
and
|
| 40 |
+
.I start
|
| 41 |
+
and
|
| 42 |
+
.I end
|
| 43 |
+
are coordinates defining a region in that sequence.
|
| 44 |
+
The coordinates are indexed <1..L> with respect to a
|
| 45 |
+
sequence of length <L>.
|
| 46 |
+
|
| 47 |
+
.PP
|
| 48 |
+
By default, the sequence names must appear in exactly the same order
|
| 49 |
+
and number as the sequences in the
|
| 50 |
+
.IR seqfile.
|
| 51 |
+
This is easy to enforce, because the format of
|
| 52 |
+
.I maskfile
|
| 53 |
+
is also legal as a list of names for
|
| 54 |
+
.BR esl\-sfetch ,
|
| 55 |
+
so you can always fetch a temporary sequence file with
|
| 56 |
+
.B esl\-sfetch
|
| 57 |
+
and pipe that to
|
| 58 |
+
.BR esl\-mask .
|
| 59 |
+
(Alternatively, see the
|
| 60 |
+
.B \-R
|
| 61 |
+
option for fetching from an SSI-indexed
|
| 62 |
+
.IR seqfile .)
|
| 63 |
+
|
| 64 |
+
.PP
|
| 65 |
+
The default is to mask the region indicated by
|
| 66 |
+
\fI<start>\fR..\fI<end>\fR.
|
| 67 |
+
Alternatively, everything but this region can be masked;
|
| 68 |
+
see the
|
| 69 |
+
.B \-r
|
| 70 |
+
reverse masking option.
|
| 71 |
+
|
| 72 |
+
.PP
|
| 73 |
+
The default is to mask residues by converting them to X's.
|
| 74 |
+
Any other masking character can be chosen (see
|
| 75 |
+
.B \-m
|
| 76 |
+
option), or alternatively, masked residues can be lowercased (see
|
| 77 |
+
.B \-l
|
| 78 |
+
option).
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
|
| 82 |
+
.SH OPTIONS
|
| 83 |
+
|
| 84 |
+
.TP
|
| 85 |
+
.B \-h
|
| 86 |
+
Print brief help; includes version number and summary of
|
| 87 |
+
all options, including expert options.
|
| 88 |
+
|
| 89 |
+
.TP
|
| 90 |
+
.B \-l
|
| 91 |
+
Lowercase; mask by converting masked characters to lower case and
|
| 92 |
+
unmasked characters to upper case.
|
| 93 |
+
|
| 94 |
+
.TP
|
| 95 |
+
.BI \-m " <c>"
|
| 96 |
+
Mask by converting masked residues to
|
| 97 |
+
.I <c>
|
| 98 |
+
instead of the default X.
|
| 99 |
+
|
| 100 |
+
.TP
|
| 101 |
+
.BI \-o " <f>"
|
| 102 |
+
Send output to file
|
| 103 |
+
.I <f>
|
| 104 |
+
instead of stdout.
|
| 105 |
+
|
| 106 |
+
.TP
|
| 107 |
+
.B \-r
|
| 108 |
+
Reverse mask; mask everything outside the region
|
| 109 |
+
.I start..end,
|
| 110 |
+
as opposed to the default of masking that region.
|
| 111 |
+
|
| 112 |
+
.TP
|
| 113 |
+
.B \-R
|
| 114 |
+
Random access;
|
| 115 |
+
fetch sequences from
|
| 116 |
+
.I seqfile
|
| 117 |
+
rather than requiring that sequence names in
|
| 118 |
+
.I maskfile
|
| 119 |
+
and
|
| 120 |
+
.I seqfile
|
| 121 |
+
come in exactly the same order and number. The
|
| 122 |
+
.I seqfile
|
| 123 |
+
must be SSI indexed (see \fBesl\-sfetch \-\-index\fR.)
|
| 124 |
+
|
| 125 |
+
.TP
|
| 126 |
+
.BI \-x " <n>"
|
| 127 |
+
Extend all masked regions by up to <n> residues on each side.
|
| 128 |
+
For normal masking, this means masking
|
| 129 |
+
\fI<start>\fR\-\fI<n>\fR..\fI<end>\fR+\fI<n>\fR.
|
| 130 |
+
For reverse masking, this means masking
|
| 131 |
+
1..\fI<start>\fR\-1+\fI<n>\fR
|
| 132 |
+
and
|
| 133 |
+
\fI<end>\fR+1\-\fI<n>\fR..L
|
| 134 |
+
in a sequence of length L.
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
.TP
|
| 138 |
+
.BI \-\-informat " <s>"
|
| 139 |
+
Assert that input
|
| 140 |
+
.I seqfile
|
| 141 |
+
is in format
|
| 142 |
+
.IR <s> ,
|
| 143 |
+
bypassing format autodetection.
|
| 144 |
+
Common choices for
|
| 145 |
+
.I <s>
|
| 146 |
+
include:
|
| 147 |
+
.BR fasta ,
|
| 148 |
+
.BR embl ,
|
| 149 |
+
.BR genbank.
|
| 150 |
+
Alignment formats also work;
|
| 151 |
+
common choices include:
|
| 152 |
+
.BR stockholm ,
|
| 153 |
+
.BR a2m ,
|
| 154 |
+
.BR afa ,
|
| 155 |
+
.BR psiblast ,
|
| 156 |
+
.BR clustal ,
|
| 157 |
+
.BR phylip .
|
| 158 |
+
For more information, and for codes for some less common formats,
|
| 159 |
+
see main documentation.
|
| 160 |
+
The string
|
| 161 |
+
.I <s>
|
| 162 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
.SH SEE ALSO
|
| 168 |
+
|
| 169 |
+
.nf
|
| 170 |
+
http://bioeasel.org/
|
| 171 |
+
.fi
|
| 172 |
+
|
| 173 |
+
.SH COPYRIGHT
|
| 174 |
+
|
| 175 |
+
.nf
|
| 176 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 177 |
+
Freely distributed under the BSD open source license.
|
| 178 |
+
.fi
|
| 179 |
+
|
| 180 |
+
.SH AUTHOR
|
| 181 |
+
|
| 182 |
+
.nf
|
| 183 |
+
http://eddylab.org
|
| 184 |
+
.fi
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-mixdchlet.1
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-mixdchlet" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-mixdchlet \- fitting mixture Dirichlets to count data
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBesl\-mixdchlet fit\fR [\fIoptions\fR] \fIQ K in_countfile out_mixchlet\fR
|
| 10 |
+
(train a new mixture Dirichlet)
|
| 11 |
+
|
| 12 |
+
\fBesl\-mixdchlet score\fR [\fIoptions\fR] \fImixdchlet_file counts_file\fR
|
| 13 |
+
(calculate log likelihood of count data, given mixture Dirichlet)
|
| 14 |
+
|
| 15 |
+
\fBesl\-mixdchlet gen \fR[\fIoptions\fR] \fImixdchlet_file\fR
|
| 16 |
+
(generate synthetic count data from mixture Dirichlet)
|
| 17 |
+
|
| 18 |
+
\fBesl\-mixdchlet sample \fR[\fIoptions\fR]
|
| 19 |
+
(sample a random mixture Dirichlet for testing)
|
| 20 |
+
.fi
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
.SH DESCRIPTION
|
| 24 |
+
|
| 25 |
+
.PP
|
| 26 |
+
The
|
| 27 |
+
.B esl\-mixdchlet
|
| 28 |
+
miniapp is for training mixture Dirichlet priors, such as the priors
|
| 29 |
+
used in HMMER and Infernal. It has four subcommands:
|
| 30 |
+
.B fit,
|
| 31 |
+
.B score,
|
| 32 |
+
.B gen,
|
| 33 |
+
and
|
| 34 |
+
.B sample.
|
| 35 |
+
The most important subcommand is
|
| 36 |
+
.B fit,
|
| 37 |
+
which is the subcommand for fitting a new mixture Dirichlet
|
| 38 |
+
distribution to a collection of count vectors (for example,
|
| 39 |
+
emission or transition count vectors from Pfam or Rfam training
|
| 40 |
+
sets).
|
| 41 |
+
|
| 42 |
+
.PP
|
| 43 |
+
Specifically,
|
| 44 |
+
.B esl\-mixdchlet fit
|
| 45 |
+
fits a new mixture Dirichlet distribution with
|
| 46 |
+
.I Q
|
| 47 |
+
mixture components to the count vectors (of alphabet size
|
| 48 |
+
.I K
|
| 49 |
+
) in input file
|
| 50 |
+
.I in_countfile,
|
| 51 |
+
and saves the mixture Dirichlet into output file
|
| 52 |
+
.I out_mixdchlet.
|
| 53 |
+
|
| 54 |
+
.PP
|
| 55 |
+
The input count vector file
|
| 56 |
+
.I in_countfile
|
| 57 |
+
contains one count vector of length
|
| 58 |
+
.I K
|
| 59 |
+
fields per line, for any number of lines.
|
| 60 |
+
Blank lines and lines starting in # (comments) are ignored.
|
| 61 |
+
Fields are nonnegative real values; they do not have to be integers,
|
| 62 |
+
because they can be weighted counts.
|
| 63 |
+
|
| 64 |
+
.PP
|
| 65 |
+
The format of a mixture Dirichlet file
|
| 66 |
+
.I out_mixdchlet
|
| 67 |
+
is as follows. The first line has two fields,
|
| 68 |
+
.I K Q,
|
| 69 |
+
where
|
| 70 |
+
.I K
|
| 71 |
+
is the alphabet size and
|
| 72 |
+
.I Q
|
| 73 |
+
is the number of mixture components.
|
| 74 |
+
The next
|
| 75 |
+
.I Q
|
| 76 |
+
lines consist of
|
| 77 |
+
.I K+1
|
| 78 |
+
fields. The first field is the mixture coefficient
|
| 79 |
+
.I q_k,
|
| 80 |
+
followed by
|
| 81 |
+
.I K
|
| 82 |
+
fields with the Dirichlet alpha[k][a] parameters
|
| 83 |
+
for this component.
|
| 84 |
+
|
| 85 |
+
.PP
|
| 86 |
+
The
|
| 87 |
+
.B esl\-mixdchlet score
|
| 88 |
+
subcommand calculates the log likelihood of the count vector data in
|
| 89 |
+
.I counts_file,
|
| 90 |
+
given the mixture Dirichlet in
|
| 91 |
+
.I mixdchlet_file.
|
| 92 |
+
|
| 93 |
+
.PP
|
| 94 |
+
The
|
| 95 |
+
.B esl\-mixdchlet gen
|
| 96 |
+
subcommand generates synthetic count data, given
|
| 97 |
+
a mixture Dirichlet.
|
| 98 |
+
|
| 99 |
+
.PP
|
| 100 |
+
The
|
| 101 |
+
.B esl\-mixdchlet sample
|
| 102 |
+
subcommand creates a random mixture Dirichlet distribution
|
| 103 |
+
and outputs it to standard output.
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
.SH OPTIONS FOR FIT SUBCOMMAND
|
| 107 |
+
|
| 108 |
+
.TP
|
| 109 |
+
.B \-h
|
| 110 |
+
Print brief help specific to the
|
| 111 |
+
.B fit
|
| 112 |
+
subcommand.
|
| 113 |
+
|
| 114 |
+
.TP
|
| 115 |
+
.BI \-s " <seed>"
|
| 116 |
+
Set random number generator seed to nonnegative integer
|
| 117 |
+
.I <seed>.
|
| 118 |
+
Default is 0, which means to use a quasirandom arbitrary seed.
|
| 119 |
+
Values >0 give reproducible results.
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
|
| 124 |
+
.SH OPTIONS FOR SCORE SUBCOMMAND
|
| 125 |
+
|
| 126 |
+
.TP
|
| 127 |
+
.B \-h
|
| 128 |
+
Print brief help specific to the
|
| 129 |
+
.B score
|
| 130 |
+
subcommand.
|
| 131 |
+
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
.SH OPTIONS FOR GEN SUBCOMMAND
|
| 135 |
+
|
| 136 |
+
.TP
|
| 137 |
+
.B \-h
|
| 138 |
+
Print brief help specific to the
|
| 139 |
+
.B gen
|
| 140 |
+
subcommand.
|
| 141 |
+
|
| 142 |
+
.TP
|
| 143 |
+
.BI \-s " <seed>"
|
| 144 |
+
Set random number generator seed to nonnegative integer
|
| 145 |
+
.I <seed>.
|
| 146 |
+
Default is 0, which means to use a quasirandom arbitrary seed.
|
| 147 |
+
Values >0 give reproducible results.
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
.TP
|
| 151 |
+
.BI \-M " <M>"
|
| 152 |
+
Generate
|
| 153 |
+
.I <M>
|
| 154 |
+
counts per sampled vector. (Default 100.)
|
| 155 |
+
|
| 156 |
+
.TP
|
| 157 |
+
.BI \-N " <N>"
|
| 158 |
+
Generate
|
| 159 |
+
.I <N>
|
| 160 |
+
count vectors. (Default 1000.)
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
.SH OPTIONS FOR SAMPLE SUBCOMMAND
|
| 164 |
+
|
| 165 |
+
.TP
|
| 166 |
+
.B \-h
|
| 167 |
+
Print brief help specific to the
|
| 168 |
+
.B sample
|
| 169 |
+
subcommand.
|
| 170 |
+
|
| 171 |
+
.TP
|
| 172 |
+
.BI \-s " <seed>"
|
| 173 |
+
Set random number generator seed to nonnegative integer
|
| 174 |
+
.I <seed>.
|
| 175 |
+
Default is 0, which means to use a quasirandom arbitrary seed.
|
| 176 |
+
Values >0 give reproducible results.
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
.TP
|
| 180 |
+
.BI \-K " <K>"
|
| 181 |
+
Set the alphabet size to
|
| 182 |
+
.I <K>.
|
| 183 |
+
(Default is 20, for amino acids.)
|
| 184 |
+
|
| 185 |
+
.TP
|
| 186 |
+
.BI \-Q " <Q>"
|
| 187 |
+
Set the number of mixture components to
|
| 188 |
+
.I <Q>.
|
| 189 |
+
(Default is 9.)
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
|
| 194 |
+
.SH SEE ALSO
|
| 195 |
+
|
| 196 |
+
.nf
|
| 197 |
+
http://bioeasel.org/
|
| 198 |
+
.fi
|
| 199 |
+
|
| 200 |
+
.SH COPYRIGHT
|
| 201 |
+
|
| 202 |
+
.nf
|
| 203 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 204 |
+
Freely distributed under the BSD open source license.
|
| 205 |
+
.fi
|
| 206 |
+
|
| 207 |
+
.SH AUTHOR
|
| 208 |
+
|
| 209 |
+
.nf
|
| 210 |
+
http://eddylab.org
|
| 211 |
+
.fi
|
| 212 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-reformat.1
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-reformat" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-reformat \- convert sequence file formats
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-reformat
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I format
|
| 10 |
+
.I seqfile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B esl\-reformat
|
| 17 |
+
reads the sequence file
|
| 18 |
+
.I seqfile
|
| 19 |
+
in any supported format, reformats it
|
| 20 |
+
into a new format specified by
|
| 21 |
+
.IR format ,
|
| 22 |
+
then outputs the reformatted text.
|
| 23 |
+
|
| 24 |
+
.PP
|
| 25 |
+
The
|
| 26 |
+
.I format
|
| 27 |
+
argument must (case-insensitively) match a supported sequence file format.
|
| 28 |
+
Common choices for
|
| 29 |
+
.I format
|
| 30 |
+
include:
|
| 31 |
+
.BR fasta ,
|
| 32 |
+
.BR embl ,
|
| 33 |
+
.BR genbank.
|
| 34 |
+
If
|
| 35 |
+
.I seqfile
|
| 36 |
+
is an alignment file,
|
| 37 |
+
alignment output formats also work.
|
| 38 |
+
Common choices include:
|
| 39 |
+
.BR stockholm ,
|
| 40 |
+
.BR a2m ,
|
| 41 |
+
.BR afa ,
|
| 42 |
+
.BR psiblast ,
|
| 43 |
+
.BR clustal ,
|
| 44 |
+
.BR phylip .
|
| 45 |
+
For more information, and for codes for some less common formats,
|
| 46 |
+
see main documentation.
|
| 47 |
+
The string
|
| 48 |
+
.I <s>
|
| 49 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 50 |
+
|
| 51 |
+
.PP
|
| 52 |
+
Unaligned format files cannot be reformatted to
|
| 53 |
+
aligned formats.
|
| 54 |
+
However, aligned formats can be reformatted
|
| 55 |
+
to unaligned formats, in which case gap characters are
|
| 56 |
+
simply stripped out.
|
| 57 |
+
|
| 58 |
+
.SH OPTIONS
|
| 59 |
+
|
| 60 |
+
.TP
|
| 61 |
+
.B \-d
|
| 62 |
+
DNA; convert U's to T's, to make sure a nucleic acid
|
| 63 |
+
sequence is shown as DNA not RNA. See
|
| 64 |
+
.B \-r.
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
.TP
|
| 68 |
+
.B \-h
|
| 69 |
+
Print brief help; includes version number and summary of
|
| 70 |
+
all options, including expert options.
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
.TP
|
| 74 |
+
.B \-l
|
| 75 |
+
Lowercase; convert all sequence residues to lower case.
|
| 76 |
+
See
|
| 77 |
+
.BR \-u .
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
.TP
|
| 81 |
+
.B \-n
|
| 82 |
+
For DNA/RNA sequences, converts any character that's not unambiguous
|
| 83 |
+
RNA/DNA (e.g. ACGTU/acgtu) to an N. Used to convert IUPAC ambiguity
|
| 84 |
+
codes to N's, for software that can't handle all IUPAC codes (some
|
| 85 |
+
public RNA folding codes, for example). If the file is an alignment,
|
| 86 |
+
gap characters are also left unchanged. If sequences are not
|
| 87 |
+
nucleic acid sequences, this option will corrupt the data in
|
| 88 |
+
a predictable fashion.
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
.TP
|
| 92 |
+
.BI \-o " <f>"
|
| 93 |
+
Send output to file
|
| 94 |
+
.I <f>
|
| 95 |
+
instead of stdout.
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
.TP
|
| 99 |
+
.B \-r
|
| 100 |
+
RNA; convert T's to U's, to make sure a nucleic acid
|
| 101 |
+
sequence is shown as RNA not DNA. See
|
| 102 |
+
.BR \-d .
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
.TP
|
| 106 |
+
.B \-u
|
| 107 |
+
Uppercase; convert all sequence residues to upper case.
|
| 108 |
+
See
|
| 109 |
+
.BR \-l .
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
.TP
|
| 113 |
+
.B \-x
|
| 114 |
+
For DNA sequences, convert non-IUPAC characters (such as X's) to N's.
|
| 115 |
+
This is for compatibility with benighted people who insist on using X
|
| 116 |
+
instead of the IUPAC ambiguity character N. (X is for ambiguity
|
| 117 |
+
in an amino acid residue).
|
| 118 |
+
.IP
|
| 119 |
+
Warning: like the
|
| 120 |
+
.B \-n
|
| 121 |
+
option, the code doesn't check that you are actually giving it DNA. It
|
| 122 |
+
simply literally just converts non-IUPAC DNA symbols to N. So if you
|
| 123 |
+
accidentally give it protein sequence, it will happily convert most
|
| 124 |
+
every amino acid residue to an N.
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
.SH EXPERT OPTIONS
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
.TP
|
| 133 |
+
.BI \-\-gapsym " <c>"
|
| 134 |
+
Convert all gap characters to
|
| 135 |
+
.IR <c> .
|
| 136 |
+
Used to prepare alignment files for programs with strict
|
| 137 |
+
requirements for gap symbols. Only makes sense if
|
| 138 |
+
the input
|
| 139 |
+
.I seqfile
|
| 140 |
+
is an alignment.
|
| 141 |
+
|
| 142 |
+
.TP
|
| 143 |
+
.BI \-\-informat " <s>"
|
| 144 |
+
Assert that input
|
| 145 |
+
.I seqfile
|
| 146 |
+
is in format
|
| 147 |
+
.IR <s> ,
|
| 148 |
+
bypassing format autodetection.
|
| 149 |
+
Common choices for
|
| 150 |
+
.I <s>
|
| 151 |
+
include:
|
| 152 |
+
.BR fasta ,
|
| 153 |
+
.BR embl ,
|
| 154 |
+
.BR genbank.
|
| 155 |
+
Alignment formats also work;
|
| 156 |
+
common choices include:
|
| 157 |
+
.BR stockholm ,
|
| 158 |
+
.BR a2m ,
|
| 159 |
+
.BR afa ,
|
| 160 |
+
.BR psiblast ,
|
| 161 |
+
.BR clustal ,
|
| 162 |
+
.BR phylip .
|
| 163 |
+
For more information, and for codes for some less common formats,
|
| 164 |
+
see main documentation.
|
| 165 |
+
The string
|
| 166 |
+
.I <s>
|
| 167 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 168 |
+
|
| 169 |
+
.TP
|
| 170 |
+
.B \-\-mingap
|
| 171 |
+
If
|
| 172 |
+
.I seqfile
|
| 173 |
+
is an alignment, remove any columns that contain 100% gap or missing
|
| 174 |
+
data characters, minimizing the overall length of the alignment.
|
| 175 |
+
(Often useful if you've extracted a subset of aligned sequences from a
|
| 176 |
+
larger alignment.)
|
| 177 |
+
|
| 178 |
+
.TP
|
| 179 |
+
.B \-\-keeprf
|
| 180 |
+
When used in combination with
|
| 181 |
+
.BR \-\-mingap ,
|
| 182 |
+
never remove a column that is not a gap in the reference (#=GC RF)
|
| 183 |
+
annotation, even if the column contains 100% gap characters in
|
| 184 |
+
all aligned sequences. By default with
|
| 185 |
+
.BR \-\-mingap ,
|
| 186 |
+
nongap RF columns that are 100% gaps in all sequences are removed.
|
| 187 |
+
|
| 188 |
+
.TP
|
| 189 |
+
.B \-\-nogap
|
| 190 |
+
Remove any aligned columns that contain any gap or missing data
|
| 191 |
+
symbols at all. Useful as a prelude to phylogenetic analyses, where
|
| 192 |
+
you only want to analyze columns containing 100% residues, so you want
|
| 193 |
+
to strip out any columns with gaps in them. Only makes sense if the
|
| 194 |
+
file is an alignment file.
|
| 195 |
+
|
| 196 |
+
.TP
|
| 197 |
+
.B \-\-wussify
|
| 198 |
+
Convert RNA secondary structure annotation strings (both consensus
|
| 199 |
+
and individual) from old "KHS" format, ><, to the new WUSS notation,
|
| 200 |
+
<>. If the notation is already in WUSS format, this option will screw it
|
| 201 |
+
up, without warning. Only SELEX and Stockholm format files have
|
| 202 |
+
secondary structure markup at present.
|
| 203 |
+
|
| 204 |
+
.TP
|
| 205 |
+
.B \-\-dewuss
|
| 206 |
+
Convert RNA secondary structure annotation strings from the new
|
| 207 |
+
WUSS notation, <>, back to the old KHS format, ><. If the annotation
|
| 208 |
+
is already in KHS, this option will corrupt it, without warning.
|
| 209 |
+
Only SELEX and Stockholm format files have secondary structure
|
| 210 |
+
markup.
|
| 211 |
+
|
| 212 |
+
.TP
|
| 213 |
+
.B \-\-fullwuss
|
| 214 |
+
Convert RNA secondary structure annotation strings from simple
|
| 215 |
+
(input) WUSS notation to full (output) WUSS notation.
|
| 216 |
+
|
| 217 |
+
.TP
|
| 218 |
+
.BI \-\-replace " <s>"
|
| 219 |
+
.I <s>
|
| 220 |
+
must be in the format
|
| 221 |
+
.I <s1>:<s2>
|
| 222 |
+
with equal numbers of characters in
|
| 223 |
+
.I <s1>
|
| 224 |
+
and
|
| 225 |
+
.I <s2>
|
| 226 |
+
separated by a ":" symbol. Each character from
|
| 227 |
+
.I <s1>
|
| 228 |
+
in the input file will be replaced by its counterpart (at the same
|
| 229 |
+
position) from
|
| 230 |
+
.IR <s2> .
|
| 231 |
+
Note that special characters in
|
| 232 |
+
.I <s>
|
| 233 |
+
(such as "~") may need to be prefixed by
|
| 234 |
+
a "\\" character.
|
| 235 |
+
|
| 236 |
+
.TP
|
| 237 |
+
.B \-\-small
|
| 238 |
+
Operate in small memory mode for input alignment files in
|
| 239 |
+
Pfam format. If not used, each alignment is stored in memory so the
|
| 240 |
+
required memory will be roughly the size of the largest alignment
|
| 241 |
+
in the input file. With
|
| 242 |
+
.BR \-\-small ,
|
| 243 |
+
input alignments are not stored in memory.
|
| 244 |
+
This option only works in combination with
|
| 245 |
+
.B \-\-informat pfam
|
| 246 |
+
and output format
|
| 247 |
+
.I pfam
|
| 248 |
+
or
|
| 249 |
+
.IR afa .
|
| 250 |
+
|
| 251 |
+
|
| 252 |
+
|
| 253 |
+
.SH SEE ALSO
|
| 254 |
+
|
| 255 |
+
.nf
|
| 256 |
+
http://bioeasel.org/
|
| 257 |
+
.fi
|
| 258 |
+
|
| 259 |
+
.SH COPYRIGHT
|
| 260 |
+
|
| 261 |
+
.nf
|
| 262 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 263 |
+
Freely distributed under the BSD open source license.
|
| 264 |
+
.fi
|
| 265 |
+
|
| 266 |
+
.SH AUTHOR
|
| 267 |
+
|
| 268 |
+
.nf
|
| 269 |
+
http://eddylab.org
|
| 270 |
+
.fi
|
| 271 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-selectn.1
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-selectn" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-selectn \- select random subset of lines from file
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-selectn
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I nlines
|
| 10 |
+
.I filename
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B esl\-selectn
|
| 17 |
+
selects
|
| 18 |
+
.I nlines
|
| 19 |
+
lines at random from file
|
| 20 |
+
.I filename
|
| 21 |
+
and outputs them on
|
| 22 |
+
.I stdout.
|
| 23 |
+
|
| 24 |
+
.PP
|
| 25 |
+
If
|
| 26 |
+
.I filename
|
| 27 |
+
is \- (a single dash),
|
| 28 |
+
input is read from stdin.
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
.PP
|
| 32 |
+
Uses an efficient reservoir sampling algorithm that only requires only a single pass through
|
| 33 |
+
.I filename,
|
| 34 |
+
and memory storage proportional to
|
| 35 |
+
.I nlines
|
| 36 |
+
(and importantly, not to the size of the file
|
| 37 |
+
.I filename
|
| 38 |
+
itself).
|
| 39 |
+
.B esl\-selectn
|
| 40 |
+
can therefore be used to create large scale statistical sampling
|
| 41 |
+
experiments, especially in combination with other Easel
|
| 42 |
+
miniapplications.
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
.SH OPTIONS
|
| 46 |
+
|
| 47 |
+
.TP
|
| 48 |
+
.B \-h
|
| 49 |
+
Print brief help; includes version number and summary of
|
| 50 |
+
all options, including expert options.
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
.TP
|
| 54 |
+
.BI \-\-seed " <d>"
|
| 55 |
+
Set the random number seed to
|
| 56 |
+
.I <d>,
|
| 57 |
+
an integer >= 0.
|
| 58 |
+
The default is 0, which means to use a randomly selected seed.
|
| 59 |
+
A seed > 0 results
|
| 60 |
+
in reproducible identical samples from different runs of the same
|
| 61 |
+
command.
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
.SH SEE ALSO
|
| 65 |
+
|
| 66 |
+
.nf
|
| 67 |
+
http://bioeasel.org/
|
| 68 |
+
.fi
|
| 69 |
+
|
| 70 |
+
.SH COPYRIGHT
|
| 71 |
+
|
| 72 |
+
.nf
|
| 73 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 74 |
+
Freely distributed under the BSD open source license.
|
| 75 |
+
.fi
|
| 76 |
+
|
| 77 |
+
.SH AUTHOR
|
| 78 |
+
|
| 79 |
+
.nf
|
| 80 |
+
http://eddylab.org
|
| 81 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-seqstat.1
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-seqstat" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-seqstat \- summarize contents of a sequence file
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-seqstat
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I seqfile
|
| 10 |
+
|
| 11 |
+
.SH DESCRIPTION
|
| 12 |
+
|
| 13 |
+
.PP
|
| 14 |
+
.B esl\-seqstat
|
| 15 |
+
summarizes the contents of the
|
| 16 |
+
.IR seqfile .
|
| 17 |
+
It prints the format, alphabet type, number of sequences, total number
|
| 18 |
+
of residues, and the mean, smallest, and largest sequence length.
|
| 19 |
+
|
| 20 |
+
.PP
|
| 21 |
+
If
|
| 22 |
+
.I seqfile
|
| 23 |
+
is \- (a single dash),
|
| 24 |
+
sequence input is read from stdin.
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
.SH OPTIONS
|
| 30 |
+
|
| 31 |
+
.TP
|
| 32 |
+
.B \-h
|
| 33 |
+
Print brief help; includes version number and summary of
|
| 34 |
+
all options, including expert options.
|
| 35 |
+
|
| 36 |
+
.TP
|
| 37 |
+
.B \-a
|
| 38 |
+
Additionally show a summary statistic line showing the name, length,
|
| 39 |
+
and description of each individual sequence. Each of these lines is
|
| 40 |
+
prefixed by an = character, in order to allow these lines to be easily
|
| 41 |
+
grepped out of the output.
|
| 42 |
+
|
| 43 |
+
.TP
|
| 44 |
+
.B \-c
|
| 45 |
+
Additionally print the residue composition of the sequence file.
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
.SH EXPERT OPTIONS
|
| 50 |
+
|
| 51 |
+
.TP
|
| 52 |
+
.BI \-\-informat " <s>"
|
| 53 |
+
Assert that input
|
| 54 |
+
.I seqfile
|
| 55 |
+
is in format
|
| 56 |
+
.IR <s> ,
|
| 57 |
+
bypassing format autodetection.
|
| 58 |
+
Common choices for
|
| 59 |
+
.I <s>
|
| 60 |
+
include:
|
| 61 |
+
.BR fasta ,
|
| 62 |
+
.BR embl ,
|
| 63 |
+
.BR genbank.
|
| 64 |
+
Alignment formats also work;
|
| 65 |
+
common choices include:
|
| 66 |
+
.BR stockholm ,
|
| 67 |
+
.BR a2m ,
|
| 68 |
+
.BR afa ,
|
| 69 |
+
.BR psiblast ,
|
| 70 |
+
.BR clustal ,
|
| 71 |
+
.BR phylip .
|
| 72 |
+
For more information, and for codes for some less common formats,
|
| 73 |
+
see main documentation.
|
| 74 |
+
The string
|
| 75 |
+
.I <s>
|
| 76 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
.TP
|
| 80 |
+
.B \-\-amino
|
| 81 |
+
Assert that the
|
| 82 |
+
.I seqfile
|
| 83 |
+
contains protein sequences.
|
| 84 |
+
|
| 85 |
+
.TP
|
| 86 |
+
.B \-\-dna
|
| 87 |
+
Assert that the
|
| 88 |
+
.I seqfile
|
| 89 |
+
contains DNA sequences.
|
| 90 |
+
|
| 91 |
+
.TP
|
| 92 |
+
.B \-\-rna
|
| 93 |
+
Assert that the
|
| 94 |
+
.I seqfile
|
| 95 |
+
contains RNA sequences.
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
.SH SEE ALSO
|
| 100 |
+
|
| 101 |
+
.nf
|
| 102 |
+
http://bioeasel.org/
|
| 103 |
+
.fi
|
| 104 |
+
|
| 105 |
+
.SH COPYRIGHT
|
| 106 |
+
|
| 107 |
+
.nf
|
| 108 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 109 |
+
Freely distributed under the BSD open source license.
|
| 110 |
+
.fi
|
| 111 |
+
|
| 112 |
+
.SH AUTHOR
|
| 113 |
+
|
| 114 |
+
.nf
|
| 115 |
+
http://eddylab.org
|
| 116 |
+
.fi
|
| 117 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-sfetch.1
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-sfetch" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-sfetch \- retrieve (sub-)sequences from a sequence file
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBesl\-sfetch\fR [\fIoptions\fR] \fIseqfile key\fR
|
| 10 |
+
(retrieve a single sequence by key)
|
| 11 |
+
|
| 12 |
+
\fBesl\-sfetch \-c \fR\fIfrom\fR\fB..\fR\fIto \fR[\fIoptions\fR]\fI seqfile key\fR
|
| 13 |
+
(retrieve a single subsequence by key and coords)
|
| 14 |
+
|
| 15 |
+
\fBesl\-sfetch \-f \fR[\fIoptions\fR] \fIseqfile keyfile\fR
|
| 16 |
+
(retrieve multiple sequences using a file of keys)
|
| 17 |
+
|
| 18 |
+
\fBesl\-sfetch \-Cf \fR[\fIoptions\fR] \fIseqfile subseq\-coord\-file\fR
|
| 19 |
+
(retrieve multiple subsequences using file of keys and coords)
|
| 20 |
+
|
| 21 |
+
\fBesl\-sfetch \-\-index\fR\fI msafile\fR
|
| 22 |
+
(index a sequence file for retrievals)
|
| 23 |
+
.fi
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
.SH DESCRIPTION
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
.B esl\-sfetch
|
| 30 |
+
retrieves one or more sequences or subsequences from
|
| 31 |
+
.IR seqfile .
|
| 32 |
+
|
| 33 |
+
.PP
|
| 34 |
+
The
|
| 35 |
+
.I seqfile
|
| 36 |
+
must be indexed using
|
| 37 |
+
\fBesl\-sfetch \-\-index\fR\fI seqfile\fR.
|
| 38 |
+
This creates an SSI index file
|
| 39 |
+
.IR seqfile .ssi.
|
| 40 |
+
|
| 41 |
+
.PP
|
| 42 |
+
To retrieve a single complete sequence, do
|
| 43 |
+
\fBesl\-sfetch\fR\fI seqfile key\fR,
|
| 44 |
+
where
|
| 45 |
+
.I key
|
| 46 |
+
is the name or accession of the desired sequence.
|
| 47 |
+
|
| 48 |
+
.PP
|
| 49 |
+
To retrieve a single subsequence rather than a complete
|
| 50 |
+
sequence, use the
|
| 51 |
+
\fB\-c \fR\fIstart\fR..\fIend\fR
|
| 52 |
+
option to provide
|
| 53 |
+
.I start
|
| 54 |
+
and
|
| 55 |
+
.I end
|
| 56 |
+
coordinates. The
|
| 57 |
+
.I start
|
| 58 |
+
and
|
| 59 |
+
.I end
|
| 60 |
+
coordinates are provided as one string, separated
|
| 61 |
+
by any nonnumeric, nonwhitespace character or characters you like;
|
| 62 |
+
see the
|
| 63 |
+
.B \-c
|
| 64 |
+
option below for more details.
|
| 65 |
+
|
| 66 |
+
.PP
|
| 67 |
+
To retrieve more than one complete sequence at once, you may use the
|
| 68 |
+
.B \-f
|
| 69 |
+
option, and the second command line argument will specify the
|
| 70 |
+
name of a
|
| 71 |
+
.I keyfile
|
| 72 |
+
that contains a list of names or accessions, one per line; the first
|
| 73 |
+
whitespace-delimited field on each line of this file is parsed as the
|
| 74 |
+
name/accession.
|
| 75 |
+
|
| 76 |
+
.PP
|
| 77 |
+
To retrieve more than one subsequence at once, use the
|
| 78 |
+
.B \-C
|
| 79 |
+
option in addition to
|
| 80 |
+
.BR \-f ,
|
| 81 |
+
and now the second argument is parsed as a list of subsequence
|
| 82 |
+
coordinate lines. See the
|
| 83 |
+
.B \-C
|
| 84 |
+
option below for more details, including the format of these lines.
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
.PP
|
| 88 |
+
In DNA/RNA files, you may extract (sub-)sequences in reverse complement
|
| 89 |
+
orientation in two different ways: either by providing a
|
| 90 |
+
.I from
|
| 91 |
+
coordinate that is greater than
|
| 92 |
+
.IR to ,
|
| 93 |
+
or by providing the
|
| 94 |
+
.I \-r
|
| 95 |
+
option.
|
| 96 |
+
|
| 97 |
+
.PP
|
| 98 |
+
When the
|
| 99 |
+
.B \-f
|
| 100 |
+
option is used to do multiple (sub-)sequence retrieval, the file
|
| 101 |
+
argument may be \- (a single dash), in which case the list of
|
| 102 |
+
names/accessions (or subsequence coordinate lines) is read from
|
| 103 |
+
standard input. However, because a standard input stream can't be SSI indexed,
|
| 104 |
+
(sub-)sequence retrieval from stdin may be slow.
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
.SH OPTIONS
|
| 108 |
+
|
| 109 |
+
.TP
|
| 110 |
+
.B \-h
|
| 111 |
+
Print brief help; includes version number and summary of
|
| 112 |
+
all options, including expert options.
|
| 113 |
+
|
| 114 |
+
.TP
|
| 115 |
+
.BI \-c " coords"
|
| 116 |
+
Retrieve a subsequence with start and end coordinates specified by the
|
| 117 |
+
.I coords
|
| 118 |
+
string. This string consists of start
|
| 119 |
+
and end coordinates separated
|
| 120 |
+
by any nonnumeric, nonwhitespace character or characters you like;
|
| 121 |
+
for example,
|
| 122 |
+
\fB\-c 23..100\fR,
|
| 123 |
+
\fB\-c 23/100\fR, or
|
| 124 |
+
\fB\-c 23\-100\fR
|
| 125 |
+
all work. To retrieve a suffix of a subsequence, you
|
| 126 |
+
can omit the
|
| 127 |
+
.I end
|
| 128 |
+
; for example,
|
| 129 |
+
.B \-c 23:
|
| 130 |
+
would work.
|
| 131 |
+
To specify reverse complement (for DNA/RNA sequence),
|
| 132 |
+
you can specify
|
| 133 |
+
.I from
|
| 134 |
+
greater than
|
| 135 |
+
.IR to ;
|
| 136 |
+
for example,
|
| 137 |
+
.B \-c 100..23
|
| 138 |
+
retrieves the reverse complement strand from 100 to 23.
|
| 139 |
+
|
| 140 |
+
.TP
|
| 141 |
+
.B \-f
|
| 142 |
+
Interpret the second argument as a
|
| 143 |
+
.I keyfile
|
| 144 |
+
instead of as just one
|
| 145 |
+
.I key.
|
| 146 |
+
The first whitespace-limited field on each line of
|
| 147 |
+
.I keyfile
|
| 148 |
+
is interpreted as a name or accession to be fetched.
|
| 149 |
+
This option doesn't work with the
|
| 150 |
+
.B \-\-index
|
| 151 |
+
option. Any other fields on a line after the first one are
|
| 152 |
+
ignored. Blank lines and lines beginning with # are ignored.
|
| 153 |
+
|
| 154 |
+
.TP
|
| 155 |
+
.BI \-o " <f>"
|
| 156 |
+
Output retrieved sequences to a file
|
| 157 |
+
.I <f>
|
| 158 |
+
instead of to stdout.
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
.TP
|
| 162 |
+
.BI \-n " <s>"
|
| 163 |
+
Rename the retrieved (sub-)sequence
|
| 164 |
+
.IR <s> .
|
| 165 |
+
Incompatible with
|
| 166 |
+
.BR \-f .
|
| 167 |
+
|
| 168 |
+
.TP
|
| 169 |
+
.B \-r
|
| 170 |
+
Reverse complement the retrieved (sub-)sequence. Only accepted for
|
| 171 |
+
DNA/RNA sequences.
|
| 172 |
+
|
| 173 |
+
.TP
|
| 174 |
+
.B \-C
|
| 175 |
+
Multiple subsequence retrieval mode, with
|
| 176 |
+
.B \-f
|
| 177 |
+
option (required). Specifies that the second command line argument
|
| 178 |
+
is to be parsed as a subsequence coordinate file, consisting of
|
| 179 |
+
lines containing four whitespace-delimited fields:
|
| 180 |
+
.IR new_name ,
|
| 181 |
+
.IR from ,
|
| 182 |
+
.IR to ,
|
| 183 |
+
.IR name/accession .
|
| 184 |
+
For each such line, sequence
|
| 185 |
+
.I name/accession
|
| 186 |
+
is found, a subsequence
|
| 187 |
+
\fIfrom\fR..\fIto\fR is extracted,
|
| 188 |
+
and the subsequence is renamed
|
| 189 |
+
.I new_name
|
| 190 |
+
before being output.
|
| 191 |
+
Any other fields after the first four are ignored. Blank lines
|
| 192 |
+
and lines beginning with # are ignored.
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
.TP
|
| 196 |
+
.B \-O
|
| 197 |
+
Output retrieved sequence to a file named
|
| 198 |
+
.IR key .
|
| 199 |
+
This is a convenience for saving some typing:
|
| 200 |
+
instead of
|
| 201 |
+
.nf
|
| 202 |
+
\fB% esl\-sfetch \-o SRPA_HUMAN swissprot SRPA_HUMAN
|
| 203 |
+
.fi
|
| 204 |
+
you can just type
|
| 205 |
+
.nf
|
| 206 |
+
\fB% esl\-sfetch \-O swissprot SRPA_HUMAN
|
| 207 |
+
.fi
|
| 208 |
+
The
|
| 209 |
+
.B \-O
|
| 210 |
+
option only works if you're retrieving a
|
| 211 |
+
single alignment; it is incompatible with
|
| 212 |
+
.BR \-f .
|
| 213 |
+
|
| 214 |
+
.TP
|
| 215 |
+
.B \-\-index
|
| 216 |
+
Instead of retrieving a
|
| 217 |
+
.I key,
|
| 218 |
+
the special command
|
| 219 |
+
.B esl\-sfetch \-\-index
|
| 220 |
+
.I seqfile
|
| 221 |
+
produces an SSI index of the names and accessions
|
| 222 |
+
of the alignments in
|
| 223 |
+
the
|
| 224 |
+
.I seqfile.
|
| 225 |
+
Indexing should be done once on the
|
| 226 |
+
.I seqfile
|
| 227 |
+
to prepare it for all future fetches.
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
.SH EXPERT OPTIONS
|
| 231 |
+
|
| 232 |
+
.TP
|
| 233 |
+
.BI \-\-informat " <s>"
|
| 234 |
+
Assert that
|
| 235 |
+
.I seqfile
|
| 236 |
+
is in format
|
| 237 |
+
.IR <s> ,
|
| 238 |
+
bypassing format autodetection.
|
| 239 |
+
Common choices for
|
| 240 |
+
.I <s>
|
| 241 |
+
include:
|
| 242 |
+
.BR fasta ,
|
| 243 |
+
.BR embl ,
|
| 244 |
+
.BR genbank.
|
| 245 |
+
Alignment formats also work;
|
| 246 |
+
common choices include:
|
| 247 |
+
.BR stockholm ,
|
| 248 |
+
.BR a2m ,
|
| 249 |
+
.BR afa ,
|
| 250 |
+
.BR psiblast ,
|
| 251 |
+
.BR clustal ,
|
| 252 |
+
.BR phylip .
|
| 253 |
+
For more information, and for codes for some less common formats,
|
| 254 |
+
see main documentation.
|
| 255 |
+
The string
|
| 256 |
+
.I <s>
|
| 257 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 258 |
+
|
| 259 |
+
|
| 260 |
+
|
| 261 |
+
.SH SEE ALSO
|
| 262 |
+
|
| 263 |
+
.nf
|
| 264 |
+
http://bioeasel.org/
|
| 265 |
+
.fi
|
| 266 |
+
|
| 267 |
+
.SH COPYRIGHT
|
| 268 |
+
|
| 269 |
+
.nf
|
| 270 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 271 |
+
Freely distributed under the BSD open source license.
|
| 272 |
+
.fi
|
| 273 |
+
|
| 274 |
+
.SH AUTHOR
|
| 275 |
+
|
| 276 |
+
.nf
|
| 277 |
+
http://eddylab.org
|
| 278 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-shuffle.1
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-shuffle" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-shuffle \- shuffling sequences or generating random ones
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBesl\-shuffle \fR[\fIoptions\fR] \fIseqfile\fR
|
| 10 |
+
(shuffle sequences)
|
| 11 |
+
|
| 12 |
+
\fBesl\-shuffle \-G \fR[\fIoptions\fR]
|
| 13 |
+
(generate random sequences)
|
| 14 |
+
|
| 15 |
+
\fBesl\-shuffle \-A \fR[\fIoptions\fR] \fImsafile\fR
|
| 16 |
+
(shuffle multiple sequence alignments)
|
| 17 |
+
.fi
|
| 18 |
+
|
| 19 |
+
.SH DESCRIPTION
|
| 20 |
+
|
| 21 |
+
.PP
|
| 22 |
+
.B esl\-shuffle
|
| 23 |
+
has three different modes of operation.
|
| 24 |
+
|
| 25 |
+
.PP
|
| 26 |
+
By default,
|
| 27 |
+
.B esl\-shuffle
|
| 28 |
+
reads individual sequences from
|
| 29 |
+
.IR seqfile ,
|
| 30 |
+
shuffles them, and outputs the shuffled sequences.
|
| 31 |
+
By default, shuffling is done by preserving monoresidue
|
| 32 |
+
composition; other options are listed below.
|
| 33 |
+
|
| 34 |
+
.PP
|
| 35 |
+
With the
|
| 36 |
+
.B \-G
|
| 37 |
+
option,
|
| 38 |
+
.B esl\-shuffle
|
| 39 |
+
generates some number of random sequences of some length in
|
| 40 |
+
some alphabet. The
|
| 41 |
+
.B \-N
|
| 42 |
+
option controls the number (default is 1), the
|
| 43 |
+
.B \-L
|
| 44 |
+
option controls the length (default is 0),
|
| 45 |
+
and the
|
| 46 |
+
.BR \-\-amino ,
|
| 47 |
+
.BR \-\-dna ,
|
| 48 |
+
and
|
| 49 |
+
.B \-\-rna
|
| 50 |
+
options control the alphabet.
|
| 51 |
+
|
| 52 |
+
.PP
|
| 53 |
+
With the
|
| 54 |
+
.B \-A
|
| 55 |
+
option,
|
| 56 |
+
.B esl\-shuffle
|
| 57 |
+
reads one or more multiple alignments from
|
| 58 |
+
.I msafile
|
| 59 |
+
shuffles them, and outputs the shuffled alignments.
|
| 60 |
+
By default, the alignment is shuffled columnwise
|
| 61 |
+
(i.e. column order is permuted).
|
| 62 |
+
Other options are listed below.
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
.SH GENERAL OPTIONS
|
| 66 |
+
|
| 67 |
+
.TP
|
| 68 |
+
.B \-h
|
| 69 |
+
Print brief help; includes version number and summary of
|
| 70 |
+
all options, including expert options.
|
| 71 |
+
|
| 72 |
+
.TP
|
| 73 |
+
.BI \-o " <f>"
|
| 74 |
+
Direct output to a file named
|
| 75 |
+
.I <f>
|
| 76 |
+
rather than to stdout.
|
| 77 |
+
|
| 78 |
+
.TP
|
| 79 |
+
.BI \-N " <n>"
|
| 80 |
+
Generate
|
| 81 |
+
.I <n>
|
| 82 |
+
sequences, or
|
| 83 |
+
.I <n>
|
| 84 |
+
perform independent shuffles per input sequence or alignment.
|
| 85 |
+
|
| 86 |
+
.TP
|
| 87 |
+
.BI \-L " <n>"
|
| 88 |
+
Generate sequences of length
|
| 89 |
+
.IR <n> ,
|
| 90 |
+
or truncate output shuffled sequences or alignments to a length of
|
| 91 |
+
.IR <n> .
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
.SH SEQUENCE SHUFFLING OPTIONS
|
| 97 |
+
|
| 98 |
+
These options only apply in default (sequence shuffling) mode. They
|
| 99 |
+
are mutually exclusive.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.B \-m
|
| 103 |
+
Monoresidue shuffling (the default): preserve monoresidue composition exactly.
|
| 104 |
+
Uses the Fisher/Yates algorithm (aka Knuth's "Algorithm P").
|
| 105 |
+
|
| 106 |
+
.TP
|
| 107 |
+
.B \-d
|
| 108 |
+
Diresidue shuffling; preserve diresidue composition exactly. Uses the
|
| 109 |
+
Altschul/Erickson algorithm (Altschul and Erickson, 1986). A more
|
| 110 |
+
efficient algorithm (Kandel and Winkler 1996) is known but has not yet
|
| 111 |
+
been implemented in Easel.
|
| 112 |
+
|
| 113 |
+
.TP
|
| 114 |
+
.B \-0
|
| 115 |
+
0th order Markov generation: generate a sequence of the same length
|
| 116 |
+
with the same 0th order Markov frequencies. Such a sequence will
|
| 117 |
+
approximately preserve the monoresidue composition of the input.
|
| 118 |
+
|
| 119 |
+
.TP
|
| 120 |
+
.B \-1
|
| 121 |
+
1st order Markov generation: generate a sequence of the same length
|
| 122 |
+
with the same 1st order Markov frequencies. Such a sequence will
|
| 123 |
+
approximately preserve the diresidue composition of the input.
|
| 124 |
+
|
| 125 |
+
.TP
|
| 126 |
+
.B \-r
|
| 127 |
+
Reversal; reverse each input.
|
| 128 |
+
|
| 129 |
+
.TP
|
| 130 |
+
.BI \-w " <n>"
|
| 131 |
+
Regionally shuffle the input in nonoverlapping windows of size
|
| 132 |
+
.I <n>
|
| 133 |
+
residues, preserving exact monoresidue composition in each window.
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
.SH MULTIPLE ALIGNMENT SHUFFLING OPTIONS
|
| 138 |
+
|
| 139 |
+
.TP
|
| 140 |
+
.B \-b
|
| 141 |
+
Sample columns with replacement, in order to generate a
|
| 142 |
+
bootstrap-resampled alignment dataset.
|
| 143 |
+
|
| 144 |
+
.TP
|
| 145 |
+
.B \-v
|
| 146 |
+
Shuffle residues with each column independently; i.e., permute residue
|
| 147 |
+
order in each column ("vertical" shuffling).
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
.SH SEQUENCE GENERATION OPTIONS
|
| 151 |
+
|
| 152 |
+
One of these must be selected, if
|
| 153 |
+
.B \-G
|
| 154 |
+
is used.
|
| 155 |
+
|
| 156 |
+
.TP
|
| 157 |
+
.B \-\-amino
|
| 158 |
+
Generate amino acid sequences.
|
| 159 |
+
|
| 160 |
+
.TP
|
| 161 |
+
.B \-\-dna
|
| 162 |
+
Generate DNA sequences.
|
| 163 |
+
|
| 164 |
+
.TP
|
| 165 |
+
.B \-\-rna
|
| 166 |
+
Generate RNA sequences.
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
.SH EXPERT OPTIONS
|
| 171 |
+
|
| 172 |
+
.TP
|
| 173 |
+
.BI \-\-informat " <s>"
|
| 174 |
+
Assert that input
|
| 175 |
+
.I seqfile
|
| 176 |
+
is in format
|
| 177 |
+
.IR <s> ,
|
| 178 |
+
bypassing format autodetection.
|
| 179 |
+
Common choices for
|
| 180 |
+
.I <s>
|
| 181 |
+
include:
|
| 182 |
+
.BR fasta ,
|
| 183 |
+
.BR embl ,
|
| 184 |
+
.BR genbank.
|
| 185 |
+
Alignment formats also work;
|
| 186 |
+
common choices include:
|
| 187 |
+
.BR stockholm ,
|
| 188 |
+
.BR a2m ,
|
| 189 |
+
.BR afa ,
|
| 190 |
+
.BR psiblast ,
|
| 191 |
+
.BR clustal ,
|
| 192 |
+
.BR phylip .
|
| 193 |
+
For more information, and for codes for some less common formats,
|
| 194 |
+
see main documentation.
|
| 195 |
+
The string
|
| 196 |
+
.I <s>
|
| 197 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 198 |
+
|
| 199 |
+
|
| 200 |
+
.TP
|
| 201 |
+
.BI \-\-seed " <n>"
|
| 202 |
+
Specify the seed for the random number generator, where the seed
|
| 203 |
+
.I <n>
|
| 204 |
+
is an integer greater than zero. This can be used to make the results of
|
| 205 |
+
.B esl\-shuffle
|
| 206 |
+
reproducible.
|
| 207 |
+
If
|
| 208 |
+
.I <n>
|
| 209 |
+
is 0, the random number generator is seeded arbitrarily and
|
| 210 |
+
stochastic simulations will vary from run to run.
|
| 211 |
+
Arbitrary seeding (0) is the default.
|
| 212 |
+
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
|
| 216 |
+
.SH SEE ALSO
|
| 217 |
+
|
| 218 |
+
.nf
|
| 219 |
+
http://bioeasel.org/
|
| 220 |
+
.fi
|
| 221 |
+
|
| 222 |
+
.SH COPYRIGHT
|
| 223 |
+
|
| 224 |
+
.nf
|
| 225 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 226 |
+
Freely distributed under the BSD open source license.
|
| 227 |
+
.fi
|
| 228 |
+
|
| 229 |
+
.SH AUTHOR
|
| 230 |
+
|
| 231 |
+
.nf
|
| 232 |
+
http://eddylab.org
|
| 233 |
+
.fi
|
| 234 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-ssdraw.1
ADDED
|
@@ -0,0 +1,882 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-ssdraw" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-ssdraw \- create postscript secondary structure diagrams
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-ssdraw
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile
|
| 10 |
+
.I postscript_template
|
| 11 |
+
.I postscript_output_file
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B esl\-ssdraw
|
| 17 |
+
reads an existing template consensus secondary structure diagram from
|
| 18 |
+
.I postscript_template
|
| 19 |
+
and creates new postscript diagrams including the template structure
|
| 20 |
+
but with positions colored differently based on alignment statistics
|
| 21 |
+
such as frequency of gaps per position, average posterior probability
|
| 22 |
+
per position or information content per position. Additionally, all
|
| 23 |
+
or some of the aligned sequences can be drawn separately, with
|
| 24 |
+
nucleotides or posterior probabilities mapped onto the corresponding
|
| 25 |
+
positions of the consensus structure.
|
| 26 |
+
|
| 27 |
+
.PP
|
| 28 |
+
The alignment must be in Stockholm format with per-column reference
|
| 29 |
+
annotation (#=GC RF). The sequences in the alignment must be RNA or
|
| 30 |
+
DNA sequences. The
|
| 31 |
+
.I postscript_template
|
| 32 |
+
file must contain one page that includes <rflen> consensus nucleotides
|
| 33 |
+
(positions), where <rflen> is the number of nongap characters in the
|
| 34 |
+
reference (RF) annotation of the first alignment in
|
| 35 |
+
.IR msafile .
|
| 36 |
+
The specific format required in the
|
| 37 |
+
.I postscript_template
|
| 38 |
+
is described below in the INPUT section.
|
| 39 |
+
Postscript diagrams will only be created for the first alignment in
|
| 40 |
+
.IR msafile .
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
.SH OUTPUT
|
| 44 |
+
|
| 45 |
+
.PP
|
| 46 |
+
By default (if run with zero command line options),
|
| 47 |
+
.B esl\-ssdraw
|
| 48 |
+
will create a six or seven page
|
| 49 |
+
.IR postscript_output_file ,
|
| 50 |
+
with each page displaying a different alignment statistic. These pages display
|
| 51 |
+
the alignment consensus sequence, information content per position,
|
| 52 |
+
mutual information per position, frequency of inserts per position,
|
| 53 |
+
average length of inserts per position, frequency of
|
| 54 |
+
deletions (gaps) per position, and average posterior probability per
|
| 55 |
+
position (if posterior probabilites exist in the alignment)
|
| 56 |
+
If
|
| 57 |
+
.B \-d
|
| 58 |
+
is enabled, all of these pages plus additional ones, such as
|
| 59 |
+
individual sequences (see discussion of
|
| 60 |
+
.B \-\-indi
|
| 61 |
+
below) will be drawn.
|
| 62 |
+
These pages can be selected to be drawn individually by using
|
| 63 |
+
the command line options
|
| 64 |
+
.BR \-\-cons ,
|
| 65 |
+
.BR \-\-info ,
|
| 66 |
+
.BR \-\-mutinfo ,
|
| 67 |
+
.BR \-\-ifreq ,
|
| 68 |
+
.BR \-\-iavglen ,
|
| 69 |
+
.BR \-\-dall ,
|
| 70 |
+
and
|
| 71 |
+
.BR \-\-prob .
|
| 72 |
+
The calculation of the statistics for each of these options is
|
| 73 |
+
discussed below in the description for each option.
|
| 74 |
+
Importantly, only so-called 'consensus' positions of the alignment
|
| 75 |
+
will be drawn. A consensus position is one that is a nongap nucleotide in
|
| 76 |
+
the 'reference' annotation of the Stockholm alignment (#=GC RF) read
|
| 77 |
+
from
|
| 78 |
+
.IR msafile .
|
| 79 |
+
|
| 80 |
+
.PP
|
| 81 |
+
By default, a consensus sequence for the input alignment will be
|
| 82 |
+
calculated and displayed on the alignment statistic diagrams. The
|
| 83 |
+
consensus sequence is defined as the most common nucleotide at each
|
| 84 |
+
consensus position of the alignment. The consensus sequence will not
|
| 85 |
+
be displayed if the
|
| 86 |
+
.B \-\-no\-cnt
|
| 87 |
+
option is used. The
|
| 88 |
+
.BR \-\-cthresh ,
|
| 89 |
+
.BR \-\-cambig ,
|
| 90 |
+
and
|
| 91 |
+
.B \-\-athresh
|
| 92 |
+
options affect the definition of the consensus sequence as
|
| 93 |
+
explained below in the descriptions for those options.
|
| 94 |
+
|
| 95 |
+
.PP
|
| 96 |
+
If the
|
| 97 |
+
.BI \-\-tabfile " <f>"
|
| 98 |
+
option is used, a tab-delimited text file
|
| 99 |
+
.I <f>
|
| 100 |
+
will be created that includes per-position lists of the numerical
|
| 101 |
+
values for each of the calculated statistics that were drawn to
|
| 102 |
+
.IR postscript_output_file .
|
| 103 |
+
Comment lines in
|
| 104 |
+
.I <f>
|
| 105 |
+
are prefixed with a '#' character and explain the meaning of
|
| 106 |
+
each of the tab-delimited columns and how each of the statistics was
|
| 107 |
+
calculated.
|
| 108 |
+
|
| 109 |
+
If
|
| 110 |
+
.B \-\-indi
|
| 111 |
+
is used,
|
| 112 |
+
.B esl\-ssdraw
|
| 113 |
+
will create diagrams showing each sequence in the alignment on a
|
| 114 |
+
separate page, with aligned nucleotides in their corresponding
|
| 115 |
+
position in the structure diagram. By default, basepaired nucleotides
|
| 116 |
+
will be colored based on their basepair type: either Watson-Crick
|
| 117 |
+
(A:U, U:A, C:G, or G:C), G:U or U:G, or non-canonical (the other ten
|
| 118 |
+
possible basepairs). This coloring can be turned off with the
|
| 119 |
+
.B \-\-no\-bp
|
| 120 |
+
option.
|
| 121 |
+
Also by default, nucleotides that differ from the most common
|
| 122 |
+
nucleotide at each aligned consensus position will be outlined. If
|
| 123 |
+
the most common nucleotide occurs in more than 75% of sequences that
|
| 124 |
+
do not have a gap at that position, the outline will be
|
| 125 |
+
bold. Outlining can be turned off with the
|
| 126 |
+
.B \-\-no\-ol
|
| 127 |
+
option.
|
| 128 |
+
|
| 129 |
+
.PP
|
| 130 |
+
With
|
| 131 |
+
.BR \-\-indi ,
|
| 132 |
+
if the alignment
|
| 133 |
+
contains posterior probability annotation (#=GR PP), the
|
| 134 |
+
.I postscript_output_file
|
| 135 |
+
will contain an additional page for each sequence drawn with positions
|
| 136 |
+
colored by the posterior probability of each aligned nucleotide.
|
| 137 |
+
No posterior probability pages will be drawn if the
|
| 138 |
+
.B \-\-no\-pp
|
| 139 |
+
option is used.
|
| 140 |
+
|
| 141 |
+
.PP
|
| 142 |
+
.B esl\-ssdraw
|
| 143 |
+
can also be used to draw 'mask' diagrams which color positions of the
|
| 144 |
+
structure one of two colors depending on if they are included or
|
| 145 |
+
excluded by a mask. This is enabled with the
|
| 146 |
+
.BI \-\-mask\-col " <f>"
|
| 147 |
+
option.
|
| 148 |
+
.I <f>
|
| 149 |
+
must contain a single line of <rflen> characters, where <rflen> is the
|
| 150 |
+
the number of nongap RF characters in the alignment. The line must
|
| 151 |
+
contain only '0' and '1' characters. A '0' at position <x> of the
|
| 152 |
+
string indicates position <x> is excluded from the mask, and a '1'
|
| 153 |
+
indicates position <x> is included by the mask.
|
| 154 |
+
A page comparing the overlap of the
|
| 155 |
+
.I <f>
|
| 156 |
+
mask from
|
| 157 |
+
.B \-\-mask\-col
|
| 158 |
+
and another mask in
|
| 159 |
+
.I <f2>
|
| 160 |
+
will be created if the
|
| 161 |
+
.BI \-\-mask\-diff " <f2>"
|
| 162 |
+
option is used.
|
| 163 |
+
|
| 164 |
+
.PP
|
| 165 |
+
If the
|
| 166 |
+
.BI \-\-mask " <f>"
|
| 167 |
+
option is used, positions excluded by the mask in
|
| 168 |
+
.I <f>
|
| 169 |
+
will be drawn differently (as open circles by default) than positions
|
| 170 |
+
included by the mask. The style of the masked positions can be
|
| 171 |
+
modified with the
|
| 172 |
+
.BR \-\-mask\-u ,
|
| 173 |
+
.BR \-\-mask\-x ,
|
| 174 |
+
and
|
| 175 |
+
.B \-\-mask\-a
|
| 176 |
+
options.
|
| 177 |
+
|
| 178 |
+
.PP
|
| 179 |
+
Finally, two different types of input files can be used to customize
|
| 180 |
+
output diagrams using the
|
| 181 |
+
.B \-\-dfile
|
| 182 |
+
and
|
| 183 |
+
.B \-\-efile
|
| 184 |
+
options, as described below.
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
|
| 188 |
+
.SH INPUT
|
| 189 |
+
|
| 190 |
+
.PP
|
| 191 |
+
The
|
| 192 |
+
.I postscript_template_file
|
| 193 |
+
is a postscript file that must be in a very specific format in order for
|
| 194 |
+
.B esl\-ssdraw
|
| 195 |
+
to work. The specifics of the format, described below, are likely to change in future
|
| 196 |
+
versions of
|
| 197 |
+
.BR esl\-ssdraw .
|
| 198 |
+
The
|
| 199 |
+
.I postscript_output_file
|
| 200 |
+
files generated by
|
| 201 |
+
.B esl\-ssdraw
|
| 202 |
+
will not be valid
|
| 203 |
+
.I postscript_template_file
|
| 204 |
+
format (i.e. an output file from
|
| 205 |
+
.B esl\-ssdraw
|
| 206 |
+
cannot be used as an
|
| 207 |
+
.I postscript_template_file
|
| 208 |
+
in a subsequent run of the program).
|
| 209 |
+
|
| 210 |
+
.PP
|
| 211 |
+
An example
|
| 212 |
+
.I postscript_template_file
|
| 213 |
+
('trna\-ssdraw.ps') is included with the Easel distribution in
|
| 214 |
+
the 'testsuite/' subdirectory of the top-level 'easel' directory.
|
| 215 |
+
|
| 216 |
+
.PP
|
| 217 |
+
The
|
| 218 |
+
.I postscript_template_file
|
| 219 |
+
is a valid postscript file. It includes postscript commands for
|
| 220 |
+
drawing a secondary structure. The commands specify x and y
|
| 221 |
+
coordinates for placing each nucleotide on the page. The
|
| 222 |
+
.I postscript_template_file
|
| 223 |
+
might also contain commands for drawing lines connecting basepaired
|
| 224 |
+
positions and tick marks indicating every tenth position, though these
|
| 225 |
+
are not required, as explained below.
|
| 226 |
+
|
| 227 |
+
.PP
|
| 228 |
+
If you are unfamiliar with the postscript language, it may be useful
|
| 229 |
+
for you to know that a postscript page is, by default, 612 points wide
|
| 230 |
+
and 792 points tall.
|
| 231 |
+
The (0,0) coordinate of a postscript
|
| 232 |
+
file is at the bottom left corner of the page, (0,792) is the top left,
|
| 233 |
+
(612,0) is the bottom right, and (612,792) is the top right.
|
| 234 |
+
.B esl\-ssdraw
|
| 235 |
+
uses 8 point by 8 point cells for drawing positions of the consensus
|
| 236 |
+
secondary structure. The 'scale' section of the
|
| 237 |
+
.I postscript_template_file
|
| 238 |
+
allows for different 'zoom levels', as described below.
|
| 239 |
+
Also, it is important to know that postscript lines beginning with '%'
|
| 240 |
+
are considered comments and do not include postscript commands.
|
| 241 |
+
|
| 242 |
+
.PP
|
| 243 |
+
An
|
| 244 |
+
.B esl\-ssdraw
|
| 245 |
+
.I postscript_template_file
|
| 246 |
+
contains n >= 1 pages, each specifying a consensus secondary structure
|
| 247 |
+
diagram. Each page is delimited by a 'showpage' line in an 'ignore'
|
| 248 |
+
section (as described below).
|
| 249 |
+
.B esl\-ssdraw
|
| 250 |
+
will read all pages of the
|
| 251 |
+
.I postscript_template_file
|
| 252 |
+
and then choose the appropriate one that corresponds with the
|
| 253 |
+
alignment in
|
| 254 |
+
.I msafile
|
| 255 |
+
based on the consensus (nongap RF) length of the alignment.
|
| 256 |
+
For an alignment of consensus length <rflen>, the first
|
| 257 |
+
page of
|
| 258 |
+
.I postscript_template_file
|
| 259 |
+
that has a structure diagram with consensus length <rflen> will be used
|
| 260 |
+
as the template structure for the alignment.
|
| 261 |
+
|
| 262 |
+
.PP
|
| 263 |
+
Each page of
|
| 264 |
+
.I postscript_template_file
|
| 265 |
+
contains blocks of text organized into seven different possible
|
| 266 |
+
sections. Each section must begin with a single line '% begin
|
| 267 |
+
<sectionname>' and end with a single line '% end <sectionname>' and
|
| 268 |
+
have n >= 1 lines in between. On the begin and end lines, there must
|
| 269 |
+
be at least one space between the '%' and the 'begin'
|
| 270 |
+
or 'end'. <sectionname> must be one of the
|
| 271 |
+
following: 'modelname', 'legend', 'scale', 'regurgitate', 'ignore', 'text
|
| 272 |
+
positiontext', 'text nucleotides', 'lines positionticks', or 'lines
|
| 273 |
+
bpconnects'. The n >=1 lines in between the begin and end lines of
|
| 274 |
+
each section must be in a specific format that differs for each
|
| 275 |
+
section as described below.
|
| 276 |
+
|
| 277 |
+
.PP
|
| 278 |
+
Importantly, each page must end with an 'ignore' section that includes
|
| 279 |
+
a single line 'showpage' between the begin and end lines. This
|
| 280 |
+
lets
|
| 281 |
+
.B esl\-ssdraw
|
| 282 |
+
know that a page has ended and another might follow.
|
| 283 |
+
|
| 284 |
+
.PP
|
| 285 |
+
Each page of a
|
| 286 |
+
.I postscript_template_file
|
| 287 |
+
must include a single 'modelname' section.
|
| 288 |
+
This section must include exactly one line in between its
|
| 289 |
+
begin and end lines. This line must begin with a '%' character
|
| 290 |
+
followed by a single space. The remainder of the line will be parsed
|
| 291 |
+
as the model name and will appear on each page of
|
| 292 |
+
.B postscript_output_file
|
| 293 |
+
in the header section. If the name is more than 16 characters, it will
|
| 294 |
+
be truncated in the output.
|
| 295 |
+
|
| 296 |
+
.PP
|
| 297 |
+
Each page of a
|
| 298 |
+
.I postscript_template_file
|
| 299 |
+
must include a single 'legend' section. This section must include
|
| 300 |
+
exactly one line in between its begin and end lines. This line must be
|
| 301 |
+
formatted as '% <d1> <f1> <f2> <d2> <f3>', where <d1> is an integer
|
| 302 |
+
specifying the consensus position with relation to which the legend
|
| 303 |
+
will be placed; <f1> and <f2> specify the x and y axis offsets for the
|
| 304 |
+
top left corner of the legend relative to the x and y position of
|
| 305 |
+
consensus position <d1>; <d2> specifies the size of a cell in the
|
| 306 |
+
legend and <f3> specifies how many extra points should be between the
|
| 307 |
+
right hand edge of the legend and the end of the page. the offset of
|
| 308 |
+
the right hand end of the legend . For example, the line '% 34
|
| 309 |
+
\-40. \-30. 12 0.' specfies that the legend be placed 40 points to the left
|
| 310 |
+
and 30 points below the 34th consensus position, that cells
|
| 311 |
+
appearing in the legend be squares of size 12 points by 12 points, and
|
| 312 |
+
that the right hand side of the legend flush against the right hand
|
| 313 |
+
edge of the printable page.
|
| 314 |
+
|
| 315 |
+
.PP
|
| 316 |
+
Each page of a
|
| 317 |
+
.I postscript_template_file
|
| 318 |
+
must include a single 'scale' section. This section must include
|
| 319 |
+
exactly one line in between its begin and end lines. This line must be
|
| 320 |
+
formatted as '<f1> <f2> scale', where <f1> and <f2> are both positive
|
| 321 |
+
real numbers that are identical, for example '1.7 1.7 scale' is valid,
|
| 322 |
+
but '1.7 2.7 scale' is not. This line is a valid postscript command
|
| 323 |
+
which specifies the scale or zoom level on the pages in the output. If
|
| 324 |
+
<f1> and <f2> are '1.0' the default scale is used for which the total
|
| 325 |
+
size of the page is 612 points wide and 792 points tall. A scale of
|
| 326 |
+
2.0 will reduce this to 306 points wide by 396 points tall. A scale of
|
| 327 |
+
0.5 will increase it to 1224 points wide by 1584 points tall. A single
|
| 328 |
+
cell corresponding to one position of the secondary structure is 8
|
| 329 |
+
points by 8 points. For larger RNAs, a scale of less than 1.0 is
|
| 330 |
+
appropriate (for example, SSU rRNA models (about 1500 nt) use a scale
|
| 331 |
+
of about 0.6), and for smaller RNAs, a scale of more than 1.0 might be
|
| 332 |
+
desirable (tRNA (about 70 nt) uses a scale of 1.7). The best way to
|
| 333 |
+
determine the exact scale to use is trial and error.
|
| 334 |
+
|
| 335 |
+
.PP
|
| 336 |
+
Each page of a
|
| 337 |
+
.I postscript_template_file
|
| 338 |
+
can include n >= 0 'regurgitate' sections.
|
| 339 |
+
These sections can include any number of lines.
|
| 340 |
+
The text in this section will not be parsed by
|
| 341 |
+
.B esl\-ssdraw
|
| 342 |
+
but will be included in each page of
|
| 343 |
+
.I postscript_output_file.
|
| 344 |
+
The format of the lines in this section must therefore be valid
|
| 345 |
+
postscript commands. An example of content that might be in a
|
| 346 |
+
regurgitate section are commands to draw lines and text annotating the
|
| 347 |
+
anticodon on a tRNA secondary structure diagram.
|
| 348 |
+
|
| 349 |
+
.PP
|
| 350 |
+
Each page of a
|
| 351 |
+
.I postscript_template_file
|
| 352 |
+
must include at least 1 'ignore' section.
|
| 353 |
+
One of these sections must include a single line that
|
| 354 |
+
reads 'showpage'. This section should be placed at the end of each
|
| 355 |
+
page of the template file.
|
| 356 |
+
Other ignore sections can include any number of lines.
|
| 357 |
+
The text in these section will not be parsed by
|
| 358 |
+
.B esl\-ssdraw
|
| 359 |
+
nor will it be included in each page of
|
| 360 |
+
.IR postscript_output_file .
|
| 361 |
+
An ignore section can contain comments or postscript commands that
|
| 362 |
+
draw features of the
|
| 363 |
+
.I postscript_template_file
|
| 364 |
+
that are
|
| 365 |
+
unwanted in the
|
| 366 |
+
.IR postscript_output_file .
|
| 367 |
+
|
| 368 |
+
.PP
|
| 369 |
+
Each page of a
|
| 370 |
+
.I postscript_template_file
|
| 371 |
+
must include a single 'text nucleotides' section. This section must
|
| 372 |
+
include exactly <rflen> lines, indicating that the consensus secondary
|
| 373 |
+
structure has exactly <rflen> nucleotide positions. Each line must be of
|
| 374 |
+
the format '(<c>) <x> <y> moveto show' where <c> is a nucleotide (this
|
| 375 |
+
can be any character actually), and <x> and <y> are the coordinates
|
| 376 |
+
specifying the location of the nucleotide on the page, they should be
|
| 377 |
+
positive real numbers. The best way to determine what these
|
| 378 |
+
coordinates should be is manually by trial and error, by inspecting
|
| 379 |
+
the resulting structure as you add each nucleotide. Note that
|
| 380 |
+
.B esl\-ssdraw
|
| 381 |
+
will color an 8 point by 8 point cell for each position, so nucleotides
|
| 382 |
+
should be placed about 8 points apart from each other.
|
| 383 |
+
|
| 384 |
+
.PP
|
| 385 |
+
Each page of a
|
| 386 |
+
.I postscript_template_file
|
| 387 |
+
may or may not include a single 'text positiontext' section. This section
|
| 388 |
+
can include n >= 1 lines, each specifying text to be placed next to
|
| 389 |
+
specific positions of the structure, for example, to number them.
|
| 390 |
+
Each line must be of
|
| 391 |
+
the format '(<s>) <x> <y> moveto show' where <s> is a string of text
|
| 392 |
+
to place at coordinates (<x>,<y>) of the postscript page.
|
| 393 |
+
Currently, the best way to determine what these coordinates is
|
| 394 |
+
manually by trial
|
| 395 |
+
and error, by inspecting the resulting diagram as you add
|
| 396 |
+
each line.
|
| 397 |
+
|
| 398 |
+
.PP
|
| 399 |
+
Each page of a
|
| 400 |
+
.I postscript_template_file
|
| 401 |
+
may or may not include a single 'lines positionticks' section. This section
|
| 402 |
+
can include n >= 1 lines, each specifying the location of a tick mark
|
| 403 |
+
on the diagram. Each line must be of
|
| 404 |
+
the format '<x1> <y1> <x2> <y2> moveto show'. A tick mark (line of
|
| 405 |
+
width 2.0) will be drawn from point (<x1>,<y1>) to point (<x2>,<y2>)
|
| 406 |
+
on each page of
|
| 407 |
+
.I postscript_output_file.
|
| 408 |
+
Currently, the best way to determine what these coordinates should be
|
| 409 |
+
is manually by trial and error, by inspecting the resulting diagram as
|
| 410 |
+
you add each line.
|
| 411 |
+
|
| 412 |
+
.PP
|
| 413 |
+
Each page of a
|
| 414 |
+
.I postscript_template_file
|
| 415 |
+
may or may not include a single 'lines bpconnects' section. This section
|
| 416 |
+
must include <nbp> lines, where <nbp> is the number of basepairs in
|
| 417 |
+
the consensus structure of the input
|
| 418 |
+
.I msafile
|
| 419 |
+
annotated as #=GC SS_cons. Each line should connect two basepaired
|
| 420 |
+
positions in the consensus structure diagram.
|
| 421 |
+
Each line must be of
|
| 422 |
+
the format '<x1> <y1> <x2> <y2> moveto show'. A line
|
| 423 |
+
will be drawn from point (<x1>,<y1>) to point (<x2>,<y2>)
|
| 424 |
+
on each page of
|
| 425 |
+
.I postscript_output_file.
|
| 426 |
+
Currently, the best way to determine what these coordinates should be
|
| 427 |
+
is manually by trial and error, by inspecting the resulting diagram as
|
| 428 |
+
you add each line.
|
| 429 |
+
|
| 430 |
+
|
| 431 |
+
|
| 432 |
+
.SH REQUIRED MEMORY
|
| 433 |
+
|
| 434 |
+
.PP
|
| 435 |
+
The memory required by
|
| 436 |
+
.B esl\-ssdraw
|
| 437 |
+
will be equal to roughly the larger of 2 Mb and
|
| 438 |
+
the size of the first alignment in
|
| 439 |
+
.IR msafile .
|
| 440 |
+
If the
|
| 441 |
+
.B \-\-small
|
| 442 |
+
option is used, the memory required will be independent of the
|
| 443 |
+
alignment size. To use
|
| 444 |
+
.B \-\-small
|
| 445 |
+
the alignment must be in Pfam format, a non-interleaved (1 line/seq)
|
| 446 |
+
version of Stockholm format.
|
| 447 |
+
|
| 448 |
+
If the
|
| 449 |
+
.B \-\-indi
|
| 450 |
+
option is used,
|
| 451 |
+
the required memory may exceed the
|
| 452 |
+
size of the alignment by up to ten-fold, and the output
|
| 453 |
+
.B postscript_output_file
|
| 454 |
+
may be up to 50 times larger than the
|
| 455 |
+
.B msafile.
|
| 456 |
+
|
| 457 |
+
.SH OPTIONS
|
| 458 |
+
|
| 459 |
+
.TP
|
| 460 |
+
.B \-h
|
| 461 |
+
Print brief help; includes version number and summary of
|
| 462 |
+
all options, including expert options.
|
| 463 |
+
|
| 464 |
+
.TP
|
| 465 |
+
.B \-d
|
| 466 |
+
Draw the default set of alignment summary diagrams: consensus
|
| 467 |
+
sequence, information content, mutual information, insert frequency,
|
| 468 |
+
average insert length, deletion frequency, and average posterior
|
| 469 |
+
probability (if posterior probability annotation exists in the
|
| 470 |
+
alignment). These diagrams are also drawn by default (if zero command line
|
| 471 |
+
options are used), but using the
|
| 472 |
+
.B \-d
|
| 473 |
+
option allows the user to add additional pages, such as individual
|
| 474 |
+
aligned sequences with
|
| 475 |
+
.BR \-\-indi .
|
| 476 |
+
|
| 477 |
+
.TP
|
| 478 |
+
.BI \-\-mask " <f>"
|
| 479 |
+
Read the mask from file
|
| 480 |
+
.IR <f> ,
|
| 481 |
+
and draw positions differently in
|
| 482 |
+
.I postscript_output_file
|
| 483 |
+
depending on whether they are included or excluded by the mask.
|
| 484 |
+
.I <f>
|
| 485 |
+
must contain a single line of length <rflen> with only '0' and '1'
|
| 486 |
+
characters. <rflen> is the number of nongap characters in the
|
| 487 |
+
reference (#=GC RF) annotation of the first alignment in
|
| 488 |
+
.I msafile
|
| 489 |
+
A '0' at position <x> of the mask indicates position <x> is excluded
|
| 490 |
+
by the mask, and a '1' indicates that position <x> is included by the mask.
|
| 491 |
+
|
| 492 |
+
.TP
|
| 493 |
+
.B \-\-small
|
| 494 |
+
Operate in memory saving mode. Without
|
| 495 |
+
.BR \-\-indi ,
|
| 496 |
+
required RAM will be independent of the
|
| 497 |
+
size of the alignment in
|
| 498 |
+
.IR msafile .
|
| 499 |
+
With
|
| 500 |
+
.BR \-\-indi ,
|
| 501 |
+
the required RAM will be roughly ten times the size of the alignment
|
| 502 |
+
in
|
| 503 |
+
.IR msafile .
|
| 504 |
+
For
|
| 505 |
+
.B \-\-small
|
| 506 |
+
to work, the alignment must be in
|
| 507 |
+
Pfam Stockholm (non-interleaved 1 line/seq) format.
|
| 508 |
+
|
| 509 |
+
.TP
|
| 510 |
+
.B \-\-rf
|
| 511 |
+
Add a page to
|
| 512 |
+
.I postscript_output_file
|
| 513 |
+
showing the reference sequence from the #=GC RF annotation in
|
| 514 |
+
.I msafile.
|
| 515 |
+
By default, basepaired nucleotides will be colored based on what type of
|
| 516 |
+
basepair they are. To turn this off, use
|
| 517 |
+
.B \-\-no\-bp.
|
| 518 |
+
This page is drawn by default (if zero command-line options are used).
|
| 519 |
+
|
| 520 |
+
.TP
|
| 521 |
+
.B \-\-info
|
| 522 |
+
Add a page to
|
| 523 |
+
.I postscript_output_file
|
| 524 |
+
with consensus (nongap RF) positions colored based on their
|
| 525 |
+
information content from the alignment.
|
| 526 |
+
Information content is calculated as 2.0 \- H, where H = sum_x p_x
|
| 527 |
+
log_2 p_x for x in {A,C,G,U}.
|
| 528 |
+
This page is drawn by default (if zero command-line options are used).
|
| 529 |
+
|
| 530 |
+
.TP
|
| 531 |
+
.B \-\-mutinfo
|
| 532 |
+
Add a page to
|
| 533 |
+
.I postscript_output_file
|
| 534 |
+
with basepaired consensus (nongap RF) positions colored based on the
|
| 535 |
+
amount of mutual information they have in the alignment. Mutual
|
| 536 |
+
information is sum_{x,y} p_{x,y} log_2 ((p_x * p_y) / p_{x,y}, where x
|
| 537 |
+
and y are the four possible bases A,C,G,U. p_x is the fractions of
|
| 538 |
+
aligned sequences that have nucleotide x of in the left half (5' half) of
|
| 539 |
+
the basepair. p_y is the fraction of aligned sequences that have
|
| 540 |
+
nucleotide y in the position corresponding to the right half (3' half) of
|
| 541 |
+
the basepair. And p_{x,y} is the fraction of aligned sequences that
|
| 542 |
+
have basepair x:y. For all p_x, p_y and p{x,y} only sequences that
|
| 543 |
+
that have a nongap nucleotide at both the left and right half of the
|
| 544 |
+
basepair are counted.
|
| 545 |
+
This page is drawn by default (if zero command-line options are used).
|
| 546 |
+
|
| 547 |
+
.TP
|
| 548 |
+
.B \-\-ifreq
|
| 549 |
+
Add a page to
|
| 550 |
+
.I postscript_output_file
|
| 551 |
+
with each consensus (nongap RF) position colored based on the fraction of
|
| 552 |
+
sequences that span each position that have at least 1 inserted
|
| 553 |
+
nucleotide after the position.
|
| 554 |
+
A sequence s spans consensus position x that is actual alignment
|
| 555 |
+
position a if s has at least one nongap nucleotide aligned to a position
|
| 556 |
+
b <= a and at least one nongap nucleotide aligned to a consensus position
|
| 557 |
+
c >= a. This page is drawn by default (if zero command-line options
|
| 558 |
+
are used).
|
| 559 |
+
|
| 560 |
+
.TP
|
| 561 |
+
.B \-\-iavglen
|
| 562 |
+
Add a page to
|
| 563 |
+
.I postscript_output_file
|
| 564 |
+
with each consensus (nongap RF) position colored based on average
|
| 565 |
+
length of insertions that occur after it. The average is calculated as
|
| 566 |
+
the total number of inserted nucleotides after position x, divided by the
|
| 567 |
+
number of sequences that have at least 1 inserted nucleotide after
|
| 568 |
+
position x (so the minimum possible average insert length is 1.0).
|
| 569 |
+
|
| 570 |
+
.TP
|
| 571 |
+
.B \-\-dall
|
| 572 |
+
Add a page to
|
| 573 |
+
.I postscript_output_file
|
| 574 |
+
with each consensus (nongap RF) position colored based on the fraction of
|
| 575 |
+
sequences that have a gap (delete) at the position.
|
| 576 |
+
This page is drawn by default (if zero command-line options are used).
|
| 577 |
+
|
| 578 |
+
.TP
|
| 579 |
+
.B \-\-dint
|
| 580 |
+
Add a page to
|
| 581 |
+
.I postscript_output_file
|
| 582 |
+
with each consensus (nongap RF) position colored based on the fraction of
|
| 583 |
+
sequences that have an internal gap (delete) at the position. An
|
| 584 |
+
internal gap in a sequence is one that occurs after (5' of) the
|
| 585 |
+
sequence's first aligned nucleotide and after
|
| 586 |
+
(3' of) the sequence's final aligned nucleotide.
|
| 587 |
+
This page is drawn by default (if zero command-line options are used).
|
| 588 |
+
|
| 589 |
+
.TP
|
| 590 |
+
.B \-\-prob
|
| 591 |
+
Add a page to
|
| 592 |
+
.I postscript_output_file
|
| 593 |
+
with positions colored based on average posterior probability (PP). The alignment
|
| 594 |
+
must contain #=GR PP annotation for all sequences. PP annotation is
|
| 595 |
+
converted to numerical PP values as follows: '*' = 0.975, '9' =
|
| 596 |
+
0.90, '8' = 0.80, '7' = 0.70, '6' = 0.60, '5' = 0.50, '4' = 0.40, '3'
|
| 597 |
+
= 0.30, '2' = 0.20, '1' = 0.10, '0' = 0.025.
|
| 598 |
+
This page is drawn by default (if zero command-line options are used).
|
| 599 |
+
|
| 600 |
+
.TP
|
| 601 |
+
.B \-\-span
|
| 602 |
+
Add a page to
|
| 603 |
+
.I postscript_output_file
|
| 604 |
+
with consensus (nongap RF) positions colored based on the
|
| 605 |
+
fraction of sequences that 'span' the position.
|
| 606 |
+
A sequence s spans consensus position x that is actual alignment
|
| 607 |
+
position a if s has at least one nongap nucleotide aligned to a position
|
| 608 |
+
b <= a and at least one nongap nucleotide aligned to a consensus position
|
| 609 |
+
c >= a. This page is drawn by default (if zero command-line options
|
| 610 |
+
are used).
|
| 611 |
+
|
| 612 |
+
|
| 613 |
+
.SH OPTIONS FOR DRAWING INDIVIDUAL ALIGNED SEQUENCES
|
| 614 |
+
|
| 615 |
+
.TP
|
| 616 |
+
.B \-\-indi
|
| 617 |
+
Add a page displaying the aligned nucleotides in their corresponding
|
| 618 |
+
consensus positions of the structure diagram for each aligned
|
| 619 |
+
sequence in the alignment.
|
| 620 |
+
By default, basepaired nucleotides will be colored based on what type of
|
| 621 |
+
basepair they are. To turn this off, use
|
| 622 |
+
.B \-\-no\-bp.
|
| 623 |
+
If posterior probability information (#=GR
|
| 624 |
+
PP) exists in the alignment, one additional page per sequence will be
|
| 625 |
+
drawn displaying the posterior probabilities.
|
| 626 |
+
|
| 627 |
+
.TP
|
| 628 |
+
.B \-f
|
| 629 |
+
With
|
| 630 |
+
.BR \-\-indi ,
|
| 631 |
+
force
|
| 632 |
+
.B esl\-ssdraw
|
| 633 |
+
to create a diagram, even if it is predicted to be large (> 100 Mb).
|
| 634 |
+
By default, if the predicted size exceeds 100 Mb,
|
| 635 |
+
.B esl\-ssdraw
|
| 636 |
+
will fail with a warning.
|
| 637 |
+
|
| 638 |
+
|
| 639 |
+
.SH OPTIONS FOR OMITTING PARTS OF THE DIAGRAMS
|
| 640 |
+
|
| 641 |
+
.TP
|
| 642 |
+
.B \-\-no\-leg
|
| 643 |
+
Omit the legend on all pages of
|
| 644 |
+
.IR postscript_output_file .
|
| 645 |
+
|
| 646 |
+
.TP
|
| 647 |
+
.B \-\-no\-head
|
| 648 |
+
Omit the header on all pages of
|
| 649 |
+
.IR postscript_output_file .
|
| 650 |
+
|
| 651 |
+
.TP
|
| 652 |
+
.B \-\-no\-foot
|
| 653 |
+
Omit the footer on all pages of
|
| 654 |
+
.IR postscript_output_file .
|
| 655 |
+
|
| 656 |
+
|
| 657 |
+
|
| 658 |
+
.SH OPTIONS FOR SIMPLE TWO-COLOR MASK DIAGRAMS
|
| 659 |
+
|
| 660 |
+
.TP
|
| 661 |
+
.B \-\-mask\-col
|
| 662 |
+
With
|
| 663 |
+
.BR \-\-mask ,
|
| 664 |
+
.I postscript_output_file
|
| 665 |
+
will contain exactly 1 page showing positions included by the mask as
|
| 666 |
+
black squares, and positions excluded as pink squares.
|
| 667 |
+
|
| 668 |
+
.TP
|
| 669 |
+
.BI \-\-mask\-diff " <f>"
|
| 670 |
+
With
|
| 671 |
+
.BI \-\-mask " <f2>"
|
| 672 |
+
and
|
| 673 |
+
.BR mask\-col ,
|
| 674 |
+
.I postscript_output_file
|
| 675 |
+
will contain one additional page comparing the mask from
|
| 676 |
+
.I <f>
|
| 677 |
+
and the mask from
|
| 678 |
+
.IR <f2> .
|
| 679 |
+
Positions will be colored based on whether they are included by one
|
| 680 |
+
mask and not the other, excluded by both masks, and included by both
|
| 681 |
+
masks.
|
| 682 |
+
|
| 683 |
+
|
| 684 |
+
.SH EXPERT OPTIONS FOR CONTROLLING INDIVIDUAL SEQUENCE DIAGRAMS
|
| 685 |
+
|
| 686 |
+
.TP
|
| 687 |
+
.B \-\-no\-pp
|
| 688 |
+
When used in combination with
|
| 689 |
+
.BR \-\-indi ,
|
| 690 |
+
do not draw posterior probability structure diagrams for each
|
| 691 |
+
sequence, even if the alignment has PP annotation.
|
| 692 |
+
|
| 693 |
+
.TP
|
| 694 |
+
.B \-\-no\-bp
|
| 695 |
+
Do not color basepaired nucleotides based on their basepair type.
|
| 696 |
+
|
| 697 |
+
.TP
|
| 698 |
+
.B \-\-no\-ol
|
| 699 |
+
When used in combination with
|
| 700 |
+
.BR \-\-indi ,
|
| 701 |
+
do not outline nucleotides that differ from the majority rule
|
| 702 |
+
consensus nucleotide given the alignment.
|
| 703 |
+
|
| 704 |
+
.TP
|
| 705 |
+
.B \-\-no\-ntpp
|
| 706 |
+
When used in combination with
|
| 707 |
+
.BR \-\-indi ,
|
| 708 |
+
do not draw nucleotides on the individual sequence posterior
|
| 709 |
+
probability diagrams.
|
| 710 |
+
|
| 711 |
+
|
| 712 |
+
.SH EXPERT OPTIONS RELATED TO CONSENSUS SEQUENCE DEFINITION
|
| 713 |
+
|
| 714 |
+
.TP
|
| 715 |
+
.B \-\-no\-cnt
|
| 716 |
+
Do not draw consensus nucleotides on alignment statistic diagrams (such as
|
| 717 |
+
information content diagrams). By default, the consensus nucleotide is
|
| 718 |
+
defined as the most frequent nucleotide in the alignment at the
|
| 719 |
+
corresponding position. Consensus nucleotides that occur in at least
|
| 720 |
+
.I <x>
|
| 721 |
+
fraction of the aligned sequences (that do not contain a gap at the
|
| 722 |
+
position) are capitalized. By default
|
| 723 |
+
.I <x>
|
| 724 |
+
is 0.75, but can be changed with the
|
| 725 |
+
.BI \-\-cthresh " <x>"
|
| 726 |
+
option.
|
| 727 |
+
|
| 728 |
+
.TP
|
| 729 |
+
.BI \-\-cthresh " <x>"
|
| 730 |
+
Specify the threshold for capitalizing consensus nucleotides defined by
|
| 731 |
+
the majority rule (i.e. when
|
| 732 |
+
.B \-\-cambig
|
| 733 |
+
is not enabled) as
|
| 734 |
+
.IR <x> .
|
| 735 |
+
|
| 736 |
+
.TP
|
| 737 |
+
.B \-\-cambig
|
| 738 |
+
Change how consensus nucleotides are calculated from majority rule to
|
| 739 |
+
the least ambiguous IUPAC nucleotide that represents at least
|
| 740 |
+
.I <x>
|
| 741 |
+
fraction of the nongap nucleotides at each consensus position.
|
| 742 |
+
By default
|
| 743 |
+
.I <x>
|
| 744 |
+
is 0.9, but can be changed with the
|
| 745 |
+
.BI \-\-athresh " <x>"
|
| 746 |
+
option.
|
| 747 |
+
|
| 748 |
+
.TP
|
| 749 |
+
.BI \-\-athresh " <x>"
|
| 750 |
+
With
|
| 751 |
+
.BR \-\-cambig ,
|
| 752 |
+
specify the threshold for defining consensus nucleotides
|
| 753 |
+
is the least ambiguous IUPAC nucleotide that represents at least
|
| 754 |
+
.I <x>
|
| 755 |
+
fraction of the nongap nucleotides at each position.
|
| 756 |
+
|
| 757 |
+
|
| 758 |
+
.SH EXPERT OPTIONS CONTROLLING STYLE OF MASKING POSITIONS
|
| 759 |
+
|
| 760 |
+
.TP
|
| 761 |
+
.B \-\-mask\-u
|
| 762 |
+
With
|
| 763 |
+
.BR \-\-mask ,
|
| 764 |
+
change the style of masked columns to squares.
|
| 765 |
+
|
| 766 |
+
.TP
|
| 767 |
+
.B \-\-mask\-x
|
| 768 |
+
With
|
| 769 |
+
.BR \-\-mask ,
|
| 770 |
+
change the style of masked columns to x's.
|
| 771 |
+
|
| 772 |
+
.TP
|
| 773 |
+
.B \-\-mask\-a
|
| 774 |
+
With
|
| 775 |
+
.B \-\-mask
|
| 776 |
+
and
|
| 777 |
+
.B \-\-mask\-u
|
| 778 |
+
or
|
| 779 |
+
.B \-\-mask\-x
|
| 780 |
+
draw the alternative style of square or 'x' masks.
|
| 781 |
+
|
| 782 |
+
|
| 783 |
+
.SH EXPERT OPTIONS RELATED TO INPUT FILES
|
| 784 |
+
|
| 785 |
+
.TP
|
| 786 |
+
.BI \-\-dfile " <f>"
|
| 787 |
+
Read the 'draw file'
|
| 788 |
+
.I <f>
|
| 789 |
+
which specifies numerical values for each consensus position in one or
|
| 790 |
+
more postscript pages. For each page, the draw file must include
|
| 791 |
+
<rflen>+3 lines (<rflen> is defined in the DESCRIPTION section). The first three lines are special. The following
|
| 792 |
+
<rflen> 'value lines' each must contain a single number, the numerical
|
| 793 |
+
value for the corresponding position. The first of the three special
|
| 794 |
+
lines defines the 'description' for the page. This should be text that
|
| 795 |
+
describes what the numerical values refer to for the page. The maximum
|
| 796 |
+
allowable length is roughly 50 characters (the exact maximum
|
| 797 |
+
length depends on the template file and the program will report an
|
| 798 |
+
informative error message upon execution if it is exceeded). The
|
| 799 |
+
second special line defines the 'legend header' line that which will
|
| 800 |
+
appear immediately above the legend. It has a maximum allowable length
|
| 801 |
+
of about 30 characters. The third special line per page must contain
|
| 802 |
+
exactly 7 numbers, which must be in increasing order, each separated
|
| 803 |
+
by a space.
|
| 804 |
+
These numbers
|
| 805 |
+
define the numerical ranges for the six different colors used to draw
|
| 806 |
+
the consensus positions on the page.
|
| 807 |
+
The first number defines the minimum value for the first color
|
| 808 |
+
(blue) and must be less than or equal to the minimum
|
| 809 |
+
value from the value lines. The second number defines the minimum
|
| 810 |
+
value for the second color (turquoise). The third, fourth, fifth and
|
| 811 |
+
sixth numbers define the minimum values for the third, fourth, fifth
|
| 812 |
+
and sixth colors (light green, yellow, orange, red), and the seventh
|
| 813 |
+
final number defines the maximum value for red and must be equal to
|
| 814 |
+
or greater than the maximum value from the value lines.
|
| 815 |
+
After the <rflen> value lines, there must exist a special line with
|
| 816 |
+
only '//', signifying the end of a page.
|
| 817 |
+
The draw file
|
| 818 |
+
.I <f>
|
| 819 |
+
must end with this special '//' line, even if it only includes a
|
| 820 |
+
single page. A draw file specifying <n> pages should include exactly
|
| 821 |
+
<n> * (<rflen> + 4) lines.
|
| 822 |
+
|
| 823 |
+
.TP
|
| 824 |
+
.BI \-\-efile " <f>"
|
| 825 |
+
Read the 'expert draw file'
|
| 826 |
+
.I <f>
|
| 827 |
+
which specifies the colors and nucleotides to draw on each consensus
|
| 828 |
+
position in one or more postscript pages. Unlike with the
|
| 829 |
+
.B \-\-dfile
|
| 830 |
+
option, no legend will be drawn when
|
| 831 |
+
.B \-\-efile
|
| 832 |
+
is used.
|
| 833 |
+
For each page, the draw file must include <rflen> lines, each with four
|
| 834 |
+
or five tab-delimited tokens. The first four tokens on line <x>
|
| 835 |
+
specify the color to paint position <x> and must be real numbers
|
| 836 |
+
between 0 and 1. The four numbers specify the cyan, magenta, yellow
|
| 837 |
+
and black values, respectively, in the CMYK color scheme for the
|
| 838 |
+
postscript file. The fifth token on line <x> specifies which nucleotide
|
| 839 |
+
to write on position <x> (on top of the colored background). If the
|
| 840 |
+
fifth token does not exist, no nucleotide will be written.
|
| 841 |
+
After the <rflen> lines, there must exist a special line with
|
| 842 |
+
only '//', signifying the end of a page.
|
| 843 |
+
The expert draw file
|
| 844 |
+
.I <f>
|
| 845 |
+
must end with this special '//' line, even if it only includes a
|
| 846 |
+
single page. A expert draw file specifying <n> pages should include exactly
|
| 847 |
+
<n> * (<rflen> + 1) lines.
|
| 848 |
+
|
| 849 |
+
.TP
|
| 850 |
+
.BI \-\-ifile " <f>"
|
| 851 |
+
Read insert information from the file
|
| 852 |
+
.IR <f> ,
|
| 853 |
+
which may have been created with INFERNAL's
|
| 854 |
+
.BR cmalign (1)
|
| 855 |
+
program. The insert information in
|
| 856 |
+
.I msafile
|
| 857 |
+
will be ignored and the information from
|
| 858 |
+
.I <f>
|
| 859 |
+
will supersede it. Inserts are columns that are gaps in the reference
|
| 860 |
+
(#=GC RF) annotation.
|
| 861 |
+
|
| 862 |
+
|
| 863 |
+
|
| 864 |
+
|
| 865 |
+
.SH SEE ALSO
|
| 866 |
+
|
| 867 |
+
.nf
|
| 868 |
+
http://bioeasel.org/
|
| 869 |
+
.fi
|
| 870 |
+
|
| 871 |
+
.SH COPYRIGHT
|
| 872 |
+
|
| 873 |
+
.nf
|
| 874 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 875 |
+
Freely distributed under the BSD open source license.
|
| 876 |
+
.fi
|
| 877 |
+
|
| 878 |
+
.SH AUTHOR
|
| 879 |
+
|
| 880 |
+
.nf
|
| 881 |
+
http://eddylab.org
|
| 882 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-translate.1
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-translate" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-translate \- translate DNA sequence in six frames into individual ORFs
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-translate
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I seqfile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
Given a
|
| 16 |
+
.I seqfile
|
| 17 |
+
containing DNA or RNA sequences,
|
| 18 |
+
.B esl\-translate
|
| 19 |
+
outputs a six-frame translation of them as individual open reading
|
| 20 |
+
frames in FASTA format.
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
By default, only open reading frames greater than 20aa are reported.
|
| 24 |
+
This minimum ORF length can be changed with the
|
| 25 |
+
.B \-l
|
| 26 |
+
option.
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
By default, no specific initiation codon is required, and any amino acid can start an open reading frame.
|
| 30 |
+
This is so
|
| 31 |
+
.B esl\-translate
|
| 32 |
+
may be used on sequence fragments, eukaryotic genes with introns, or other
|
| 33 |
+
cases where we
|
| 34 |
+
do not want to assume that ORFs are complete coding regions.
|
| 35 |
+
This behavior can be changed. With the
|
| 36 |
+
.B \-m
|
| 37 |
+
option, ORFs start with an initiator AUG Met. With the
|
| 38 |
+
.B \-M
|
| 39 |
+
option, ORFs start with any of the initiation codons allowed by the
|
| 40 |
+
genetic code. For example, the "standard" code (NCBI transl_table 1)
|
| 41 |
+
allows AUG, CUG, and UUG as initiators. When
|
| 42 |
+
.B \-m
|
| 43 |
+
or
|
| 44 |
+
.B \-M
|
| 45 |
+
are used, an initiator is always translated to Met (even if the initiator
|
| 46 |
+
is something like UUG or CUG that doesn't encode Met as an elongator).
|
| 47 |
+
|
| 48 |
+
.PP
|
| 49 |
+
If
|
| 50 |
+
.I seqfile
|
| 51 |
+
is \- (a single dash), input is read from the stdin pipe. This
|
| 52 |
+
(combined
|
| 53 |
+
with the output being a standard FASTA file) allows
|
| 54 |
+
.B esl\-translate
|
| 55 |
+
to be used in command line incantations.
|
| 56 |
+
If
|
| 57 |
+
.I seqfile
|
| 58 |
+
ends in .gz, it is assumed to be a gzip-compressed file, and
|
| 59 |
+
Easel will try to read it as a stream from
|
| 60 |
+
\fBgunzip \-c\fR.
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
.SH OUTPUT FORMAT
|
| 65 |
+
|
| 66 |
+
.PP
|
| 67 |
+
The output FASTA name/description line contains information about the
|
| 68 |
+
source and coordinates of each ORF. Each ORF is named
|
| 69 |
+
.B orf1,
|
| 70 |
+
etc., with numbering starting from 1, in order of their start position
|
| 71 |
+
on the top strand followed by the bottom strand. The rest of the
|
| 72 |
+
FASTA name/desc line contains 4 additional fields, followed by the
|
| 73 |
+
description of the source sequence:
|
| 74 |
+
|
| 75 |
+
.TP
|
| 76 |
+
\fBsource\fR=\fI<s>\fR
|
| 77 |
+
.I <s>
|
| 78 |
+
is the name of the source DNA/RNA sequence.
|
| 79 |
+
|
| 80 |
+
.TP
|
| 81 |
+
\fBcoords\fR=\fIstart\fR..\fIend\fR
|
| 82 |
+
Coords, 1..L, for the translated ORF in a source DNA sequence of
|
| 83 |
+
length L. If start is greater than end, the ORF is on the bottom
|
| 84 |
+
(reverse complement) strand. The start is the first nucleotide of the
|
| 85 |
+
first codon; the end is the last nucleotide of the last codon. The
|
| 86 |
+
stop codon is not included in the coordinates (unlike in CDS
|
| 87 |
+
annotation in GenBank, for example.)
|
| 88 |
+
|
| 89 |
+
.TP
|
| 90 |
+
\fBlength\fR=\fI<n>\fR
|
| 91 |
+
Length of the ORF in amino acids.
|
| 92 |
+
|
| 93 |
+
.TP
|
| 94 |
+
\fBframe\fR=\fI<n>\fR
|
| 95 |
+
Which frame the ORF is in. Frames 1..3 are the top strand; 4..6 are the
|
| 96 |
+
bottom strand. Frame 1 starts at nucleotide 1. Frame 4 starts at
|
| 97 |
+
nucleotide L.
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
.SH ALTERNATIVE GENETIC CODES
|
| 102 |
+
|
| 103 |
+
.PP
|
| 104 |
+
By default, the "standard" genetic code is used (NCBI transl_table 1).
|
| 105 |
+
Any NCBI genetic code transl_table can be selected with the
|
| 106 |
+
.B \-c
|
| 107 |
+
option, as follows:
|
| 108 |
+
|
| 109 |
+
.TP
|
| 110 |
+
.B 1
|
| 111 |
+
Standard
|
| 112 |
+
.TP
|
| 113 |
+
.B 2
|
| 114 |
+
Vertebrate mitochondrial
|
| 115 |
+
.TP
|
| 116 |
+
.B 3
|
| 117 |
+
Yeast mitochondrial
|
| 118 |
+
.TP
|
| 119 |
+
.B 4
|
| 120 |
+
Mold, protozoan, coelenterate mitochondrial; Mycoplasma/Spiroplasma
|
| 121 |
+
.TP
|
| 122 |
+
.B 5
|
| 123 |
+
Invertebrate mitochondrial
|
| 124 |
+
.TP
|
| 125 |
+
.B 6
|
| 126 |
+
Ciliate, dasycladacean, Hexamita nuclear
|
| 127 |
+
.TP
|
| 128 |
+
.B 9
|
| 129 |
+
Echinoderm and flatworm mitochondrial
|
| 130 |
+
.TP
|
| 131 |
+
.B 10
|
| 132 |
+
Euplotid nuclear
|
| 133 |
+
.TP
|
| 134 |
+
.B 11
|
| 135 |
+
Bacterial, archaeal; and plant plastid
|
| 136 |
+
.TP
|
| 137 |
+
.B 12
|
| 138 |
+
Alternative yeast
|
| 139 |
+
.TP
|
| 140 |
+
.B 13
|
| 141 |
+
Ascidian mitochondrial
|
| 142 |
+
.TP
|
| 143 |
+
.B 14
|
| 144 |
+
Alternative flatworm mitochondrial
|
| 145 |
+
.TP
|
| 146 |
+
.B 16
|
| 147 |
+
Chlorophycean mitochondrial
|
| 148 |
+
.TP
|
| 149 |
+
.B 21
|
| 150 |
+
Trematode mitochondrial
|
| 151 |
+
.TP
|
| 152 |
+
.B 22
|
| 153 |
+
Scenedesmus obliquus mitochondrial
|
| 154 |
+
.TP
|
| 155 |
+
.B 23
|
| 156 |
+
Thraustochytrium mitochondrial
|
| 157 |
+
.TP
|
| 158 |
+
.B 24
|
| 159 |
+
Pterobranchia mitochondrial
|
| 160 |
+
.TP
|
| 161 |
+
.B 25
|
| 162 |
+
Candidate Division SR1 and Gracilibacteria
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
.PP
|
| 166 |
+
As of this writing, more information about the genetic codes in the
|
| 167 |
+
NCBI translation tables is at
|
| 168 |
+
.I http://www.ncbi.nlm.nih.gov/Taxonomy/
|
| 169 |
+
at a link titled
|
| 170 |
+
.I Genetic codes.
|
| 171 |
+
|
| 172 |
+
.SH IUPAC DEGENERACY CODES IN DNA
|
| 173 |
+
|
| 174 |
+
.PP
|
| 175 |
+
DNA sequences may contain IUPAC degeneracy codes, such as N, R, Y,
|
| 176 |
+
etc. If all codons consistent with a degenerate codon translate to the
|
| 177 |
+
same amino acid (or to a stop), that translation is done; otherwise,
|
| 178 |
+
the codon is translated as X (even if one or more compatible codons
|
| 179 |
+
are stops). For example, in the standard code, UAR translates to *
|
| 180 |
+
(stop), GGN translates to G (glycine), NNN translates to X, and UGR
|
| 181 |
+
translates to X (it could be either a UGA stop or a UGG Trp).
|
| 182 |
+
|
| 183 |
+
.PP
|
| 184 |
+
Degenerate initiation codons are handled essentially the same. If all
|
| 185 |
+
codons consistent with the degenerate codon are legal initiators, then
|
| 186 |
+
the codon is allowed to initiate a new ORF. Stop codons are never
|
| 187 |
+
a legal initiator (not only with
|
| 188 |
+
.B \-m
|
| 189 |
+
or
|
| 190 |
+
.B \-M
|
| 191 |
+
but also with the default of allowing any amino acid to initiate),
|
| 192 |
+
so degenerate codons consistent with a stop cannot be initiators.
|
| 193 |
+
For example, NNN cannot initiate an ORF, nor can UGR -- even
|
| 194 |
+
though they translate to X. This means that we don't translate
|
| 195 |
+
long stretches of N's as long ORFs of X's, which is probably a
|
| 196 |
+
feature, given the prevalence of artificial runs of N's in genome
|
| 197 |
+
sequence assemblies.
|
| 198 |
+
|
| 199 |
+
.PP
|
| 200 |
+
Degenerate DNA codons are not translated to degenerate amino acids
|
| 201 |
+
other than X, even when that is possible. For example, SAR and MUH
|
| 202 |
+
are decoded as X, not Z (Q|E) and J (I|L). The extra complexity
|
| 203 |
+
needed for a degenerate to degenerate translation doesn't seem worthwhile.
|
| 204 |
+
|
| 205 |
+
|
| 206 |
+
.SH OPTIONS
|
| 207 |
+
|
| 208 |
+
.TP
|
| 209 |
+
.B \-h
|
| 210 |
+
Print brief help. Includes version number and summary of all options.
|
| 211 |
+
Also includes a list of the available
|
| 212 |
+
NCBI transl_tables and their numerical codes, for the
|
| 213 |
+
.B \-c
|
| 214 |
+
option.
|
| 215 |
+
|
| 216 |
+
.TP
|
| 217 |
+
.BI \-c " <id>"
|
| 218 |
+
Choose alternative genetic code
|
| 219 |
+
.I <id>
|
| 220 |
+
where
|
| 221 |
+
.I <id>
|
| 222 |
+
is the numerical code of one of the NCBI transl_tables.
|
| 223 |
+
|
| 224 |
+
.TP
|
| 225 |
+
.BI \-l " <n>"
|
| 226 |
+
Set the minimum reported ORF length to
|
| 227 |
+
.I <n>
|
| 228 |
+
aa.
|
| 229 |
+
|
| 230 |
+
.TP
|
| 231 |
+
.B \-m
|
| 232 |
+
Require ORFs to start with an initiator codon AUG (Met).
|
| 233 |
+
|
| 234 |
+
.TP
|
| 235 |
+
.B \-M
|
| 236 |
+
Require ORFs to start with an initiator codon, as specified by the
|
| 237 |
+
allowed initiator codons in the NCBI transl_table. In the default
|
| 238 |
+
Standard code, AUG, CUG, and UUG are allowed as initiators. An
|
| 239 |
+
initiation codon is always translated as Met, even if it does not
|
| 240 |
+
normally encode Met as an elongator.
|
| 241 |
+
|
| 242 |
+
.TP
|
| 243 |
+
.B \-W
|
| 244 |
+
Use a memory-efficient windowed sequence reader.
|
| 245 |
+
The default is to read entire DNA sequences into memory, which
|
| 246 |
+
may become memory limited for some very large eukaryotic chromosomes.
|
| 247 |
+
The windowed reader cannot
|
| 248 |
+
reverse complement a nonrewindable input stream, so
|
| 249 |
+
either
|
| 250 |
+
.I seqfile
|
| 251 |
+
must be a file,
|
| 252 |
+
or you must use
|
| 253 |
+
.I \-\-watson
|
| 254 |
+
to limit translation to the top strand.
|
| 255 |
+
|
| 256 |
+
|
| 257 |
+
.TP
|
| 258 |
+
.BI \-\-informat " <s>"
|
| 259 |
+
Assert that input
|
| 260 |
+
.I seqfile
|
| 261 |
+
is in format
|
| 262 |
+
.IR <s> ,
|
| 263 |
+
bypassing format autodetection.
|
| 264 |
+
Common choices for
|
| 265 |
+
.I <s>
|
| 266 |
+
include:
|
| 267 |
+
.BR fasta ,
|
| 268 |
+
.BR embl ,
|
| 269 |
+
.BR genbank.
|
| 270 |
+
Alignment formats also work;
|
| 271 |
+
common choices include:
|
| 272 |
+
.BR stockholm ,
|
| 273 |
+
.BR a2m ,
|
| 274 |
+
.BR afa ,
|
| 275 |
+
.BR psiblast ,
|
| 276 |
+
.BR clustal ,
|
| 277 |
+
.BR phylip .
|
| 278 |
+
For more information, and for codes for some less common formats,
|
| 279 |
+
see main documentation.
|
| 280 |
+
The string
|
| 281 |
+
.I <s>
|
| 282 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 283 |
+
|
| 284 |
+
|
| 285 |
+
.TP
|
| 286 |
+
.B \-\-watson
|
| 287 |
+
Only translate the top strand.
|
| 288 |
+
|
| 289 |
+
.TP
|
| 290 |
+
.B \-\-crick
|
| 291 |
+
Only translate the bottom strand.
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
|
| 295 |
+
|
| 296 |
+
|
| 297 |
+
.SH SEE ALSO
|
| 298 |
+
|
| 299 |
+
.nf
|
| 300 |
+
http://bioeasel.org/
|
| 301 |
+
.fi
|
| 302 |
+
|
| 303 |
+
.SH COPYRIGHT
|
| 304 |
+
|
| 305 |
+
.nf
|
| 306 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 307 |
+
Freely distributed under the BSD open source license.
|
| 308 |
+
.fi
|
| 309 |
+
|
| 310 |
+
.SH AUTHOR
|
| 311 |
+
|
| 312 |
+
.nf
|
| 313 |
+
http://eddylab.org
|
| 314 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/esl-weight.1
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "esl\-weight" 1 "Aug 2023" "Easel 0.49" "Easel Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
esl\-weight \- calculate sequence weights in MSA(s)
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B esl\-weight
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I msafile
|
| 10 |
+
|
| 11 |
+
.SH DESCRIPTION
|
| 12 |
+
|
| 13 |
+
.PP
|
| 14 |
+
.B esl\-weight
|
| 15 |
+
calculates individual sequence weights for each alignment in
|
| 16 |
+
.I msafile
|
| 17 |
+
and outputs a new
|
| 18 |
+
multiple sequence alignment file in Stockholm format with
|
| 19 |
+
the weights annotated in Stockholm-format
|
| 20 |
+
\fB#=GS \fR\fIseqname\fR\fB WT \fR\fIweight\fR
|
| 21 |
+
lines.
|
| 22 |
+
The default weighting algorithm is the Gerstein/Sonnhammer/Chothia
|
| 23 |
+
algorithm.
|
| 24 |
+
|
| 25 |
+
.PP
|
| 26 |
+
If
|
| 27 |
+
.I msafile
|
| 28 |
+
is \- (a single dash),
|
| 29 |
+
MSA input is read from stdin.
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
.SH OPTIONS
|
| 35 |
+
|
| 36 |
+
.TP
|
| 37 |
+
.B \-h
|
| 38 |
+
Print brief help; includes version number and summary of
|
| 39 |
+
all options, including expert options.
|
| 40 |
+
|
| 41 |
+
.TP
|
| 42 |
+
.B \-g
|
| 43 |
+
Use the Gerstein/Sonnhammer/Chothia weighting algorithm; this is the
|
| 44 |
+
default.
|
| 45 |
+
|
| 46 |
+
.TP
|
| 47 |
+
.B \-p
|
| 48 |
+
Use the Henikoff position-based weighting algorithm. This is faster
|
| 49 |
+
and more memory efficient than the default.
|
| 50 |
+
|
| 51 |
+
.TP
|
| 52 |
+
.B \-b
|
| 53 |
+
"BLOSUM weights": use approximately the same rule used in constructing
|
| 54 |
+
the BLOSUM score matrices. This involves single-linkage clustering at
|
| 55 |
+
some fractional identity threshold (default 0.62; see
|
| 56 |
+
.B \-\-id
|
| 57 |
+
option), then for each cluster, splitting a total weight of one
|
| 58 |
+
uniformly amongst all sequences in the cluster.
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
.SH EXPERT OPTIONS
|
| 62 |
+
|
| 63 |
+
.TP
|
| 64 |
+
.BI \-\-id " <x>"
|
| 65 |
+
Sets the fractional identity threshold used by the BLOSUM weighting
|
| 66 |
+
rule (option
|
| 67 |
+
.BR \-b ;
|
| 68 |
+
required), to a number 0<=x<=1. Default is 0.62.
|
| 69 |
+
|
| 70 |
+
.TP
|
| 71 |
+
.B \-\-amino
|
| 72 |
+
Assert that the
|
| 73 |
+
.I msafile
|
| 74 |
+
contains protein sequences.
|
| 75 |
+
|
| 76 |
+
.TP
|
| 77 |
+
.B \-\-dna
|
| 78 |
+
Assert that the
|
| 79 |
+
.I msafile
|
| 80 |
+
contains DNA sequences.
|
| 81 |
+
|
| 82 |
+
.TP
|
| 83 |
+
.B \-\-rna
|
| 84 |
+
Assert that the
|
| 85 |
+
.I msafile
|
| 86 |
+
contains RNA sequences.
|
| 87 |
+
|
| 88 |
+
.SH SEE ALSO
|
| 89 |
+
|
| 90 |
+
.nf
|
| 91 |
+
http://bioeasel.org/
|
| 92 |
+
.fi
|
| 93 |
+
|
| 94 |
+
.SH COPYRIGHT
|
| 95 |
+
|
| 96 |
+
.nf
|
| 97 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 98 |
+
Freely distributed under the BSD open source license.
|
| 99 |
+
.fi
|
| 100 |
+
|
| 101 |
+
.SH AUTHOR
|
| 102 |
+
|
| 103 |
+
.nf
|
| 104 |
+
http://eddylab.org
|
| 105 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmbuild.1
ADDED
|
@@ -0,0 +1,556 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmbuild" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmbuild \- construct profiles from multiple sequence alignments
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B hmmbuild
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I hmmfile
|
| 10 |
+
.I msafile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
For each multiple sequence alignment in
|
| 16 |
+
.I msafile
|
| 17 |
+
build a profile HMM
|
| 18 |
+
and save it to a new file
|
| 19 |
+
.IR hmmfile .
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
.I msafile
|
| 24 |
+
may be '\-' (dash), which means
|
| 25 |
+
reading this input from stdin rather than a file.
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
.I hmmfile
|
| 30 |
+
may not be '\-' (stdout), because sending the HMM file to stdout would
|
| 31 |
+
conflict with the other text output of the program.
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
.SH OPTIONS
|
| 37 |
+
|
| 38 |
+
.TP
|
| 39 |
+
.B \-h
|
| 40 |
+
Help; print a brief reminder of command line usage and all available
|
| 41 |
+
options.
|
| 42 |
+
|
| 43 |
+
.TP
|
| 44 |
+
.BI \-n " <s>"
|
| 45 |
+
Name the new profile
|
| 46 |
+
.IR <s> .
|
| 47 |
+
The default is to use the name of the alignment (if one is present in
|
| 48 |
+
the
|
| 49 |
+
.IR msafile ,
|
| 50 |
+
or, failing that, the name of the
|
| 51 |
+
.IR hmmfile .
|
| 52 |
+
If
|
| 53 |
+
.I msafile
|
| 54 |
+
contains more than one alignment,
|
| 55 |
+
.B \-n
|
| 56 |
+
doesn't work, and every alignment must have a name
|
| 57 |
+
annotated in the
|
| 58 |
+
.I msafile
|
| 59 |
+
(as in Stockholm #=GF ID annotation).
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
.TP
|
| 63 |
+
.BI \-o " <f>"
|
| 64 |
+
Direct the summary output to file
|
| 65 |
+
.IR <f> ,
|
| 66 |
+
rather than to stdout.
|
| 67 |
+
|
| 68 |
+
.TP
|
| 69 |
+
.BI \-O " <f>"
|
| 70 |
+
After each model is constructed, resave annotated, possibly modified
|
| 71 |
+
source alignments to a file
|
| 72 |
+
.I <f>
|
| 73 |
+
in Stockholm format.
|
| 74 |
+
The alignments are annotated with a reference annotation line
|
| 75 |
+
indicating which columns were assigned as consensus, and sequences are
|
| 76 |
+
annotated with what relative sequence weights were assigned. Some
|
| 77 |
+
residues of the alignment may have been shifted to accommodate
|
| 78 |
+
restrictions of the Plan7 profile architecture, which disallows
|
| 79 |
+
transitions between insert and delete states.
|
| 80 |
+
|
| 81 |
+
|
| 82 |
+
.SH OPTIONS FOR SPECIFYING THE ALPHABET
|
| 83 |
+
|
| 84 |
+
.TP
|
| 85 |
+
.B \-\-amino
|
| 86 |
+
Assert that sequences in
|
| 87 |
+
.I msafile
|
| 88 |
+
are protein, bypassing alphabet autodetection.
|
| 89 |
+
|
| 90 |
+
.TP
|
| 91 |
+
.B \-\-dna
|
| 92 |
+
Assert that sequences in
|
| 93 |
+
.I msafile
|
| 94 |
+
are DNA, bypassing alphabet autodetection.
|
| 95 |
+
|
| 96 |
+
.TP
|
| 97 |
+
.B \-\-rna
|
| 98 |
+
Assert that sequences in
|
| 99 |
+
.I msafile
|
| 100 |
+
are RNA, bypassing alphabet autodetection.
|
| 101 |
+
|
| 102 |
+
.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION
|
| 103 |
+
|
| 104 |
+
These options control how consensus columns are defined in an alignment.
|
| 105 |
+
|
| 106 |
+
.TP
|
| 107 |
+
.B \-\-fast
|
| 108 |
+
Define consensus columns as those that have a fraction >=
|
| 109 |
+
.B symfrac
|
| 110 |
+
of residues as opposed to gaps. (See below for the
|
| 111 |
+
.B \-\-symfrac
|
| 112 |
+
option.) This is the default.
|
| 113 |
+
|
| 114 |
+
.TP
|
| 115 |
+
.B \-\-hand
|
| 116 |
+
Define consensus columns in next profile using reference annotation to
|
| 117 |
+
the multiple alignment.
|
| 118 |
+
This allows you to define any consensus columns you like.
|
| 119 |
+
|
| 120 |
+
.TP
|
| 121 |
+
.BI \-\-symfrac " <x>"
|
| 122 |
+
Define the residue fraction threshold necessary to define a
|
| 123 |
+
consensus column when using the
|
| 124 |
+
.B \-\-fast
|
| 125 |
+
option. The default is 0.5. The symbol fraction in each column
|
| 126 |
+
is calculated after taking relative sequence weighting into account,
|
| 127 |
+
and ignoring gap characters corresponding to ends of sequence
|
| 128 |
+
fragments
|
| 129 |
+
(as opposed to internal insertions/deletions).
|
| 130 |
+
Setting this to 0.0 means that every alignment column will be assigned
|
| 131 |
+
as consensus, which may be useful in some cases. Setting it to 1.0
|
| 132 |
+
means that only columns that include 0 gaps (internal
|
| 133 |
+
insertions/deletions) will be assigned as consensus.
|
| 134 |
+
|
| 135 |
+
.TP
|
| 136 |
+
.BI \-\-fragthresh " <x>"
|
| 137 |
+
We only want to count terminal gaps as deletions if the aligned
|
| 138 |
+
sequence is known to be full-length, not if it is a fragment (for
|
| 139 |
+
instance, because only part of it was sequenced). HMMER uses a simple
|
| 140 |
+
rule to infer fragments: if the range of a sequence in the alignment
|
| 141 |
+
(the number of alignment columns between the first and last positions
|
| 142 |
+
of the sequence) is less than or equal to a fraction
|
| 143 |
+
.I <x>
|
| 144 |
+
times the alignment length in columns,
|
| 145 |
+
then the sequence is handled as a fragment. The default is 0.5.
|
| 146 |
+
Setting
|
| 147 |
+
.B \-\-fragthresh 0
|
| 148 |
+
will define no (nonempty) sequence as a fragment; you might want to do
|
| 149 |
+
this if you know you've got a carefully curated alignment of full\-length
|
| 150 |
+
sequences.
|
| 151 |
+
Setting
|
| 152 |
+
.B \-\-fragthresh 1
|
| 153 |
+
will define all sequences as fragments; you might want to do this if
|
| 154 |
+
you know your alignment is entirely composed of fragments, such as
|
| 155 |
+
translated short reads in metagenomic shotgun data.
|
| 156 |
+
|
| 157 |
+
|
| 158 |
+
.SH OPTIONS CONTROLLING RELATIVE WEIGHTS
|
| 159 |
+
|
| 160 |
+
HMMER uses an ad hoc sequence weighting algorithm to downweight
|
| 161 |
+
closely related sequences and upweight distantly related ones. This
|
| 162 |
+
has the effect of making models less biased by uneven phylogenetic
|
| 163 |
+
representation. For example, two identical sequences would typically
|
| 164 |
+
each receive half the weight that one sequence would. These options
|
| 165 |
+
control which algorithm gets used.
|
| 166 |
+
|
| 167 |
+
.TP
|
| 168 |
+
.B \-\-wpb
|
| 169 |
+
Use the Henikoff position-based sequence weighting scheme [Henikoff
|
| 170 |
+
and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default.
|
| 171 |
+
|
| 172 |
+
.TP
|
| 173 |
+
.B \-\-wgsc
|
| 174 |
+
Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et
|
| 175 |
+
al, J. Mol. Biol. 235:1067, 1994].
|
| 176 |
+
|
| 177 |
+
.TP
|
| 178 |
+
.B \-\-wblosum
|
| 179 |
+
Use the same clustering scheme that was used to weight data in
|
| 180 |
+
calculating BLOSUM substitution matrices [Henikoff and Henikoff,
|
| 181 |
+
Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
|
| 182 |
+
clustered at an identity threshold (default 0.62; see
|
| 183 |
+
.BR \-\-wid )
|
| 184 |
+
and within each cluster of c sequences, each sequence gets relative
|
| 185 |
+
weight 1/c.
|
| 186 |
+
|
| 187 |
+
.TP
|
| 188 |
+
.B \-\-wnone
|
| 189 |
+
No relative weights. All sequences are assigned uniform weight.
|
| 190 |
+
|
| 191 |
+
.TP
|
| 192 |
+
.BI \-\-wid " <x>"
|
| 193 |
+
Sets the identity threshold used by single-linkage clustering when
|
| 194 |
+
using
|
| 195 |
+
.BR \-\-wblosum .
|
| 196 |
+
Invalid with any other weighting scheme. Default is 0.62.
|
| 197 |
+
|
| 198 |
+
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
.SH OPTIONS CONTROLLING EFFECTIVE SEQUENCE NUMBER
|
| 202 |
+
|
| 203 |
+
After relative weights are determined, they are normalized to sum to a
|
| 204 |
+
total effective sequence number,
|
| 205 |
+
.IR eff_nseq .
|
| 206 |
+
This number may be the actual number of sequences in the alignment,
|
| 207 |
+
but it is almost always smaller than that.
|
| 208 |
+
The default entropy weighting method
|
| 209 |
+
(\fB\-\-eent\fR)
|
| 210 |
+
reduces the effective sequence
|
| 211 |
+
number to reduce the information content (relative entropy, or average
|
| 212 |
+
expected score on true homologs) per consensus position. The target
|
| 213 |
+
relative entropy is controlled by a two-parameter function, where the
|
| 214 |
+
two parameters are settable with
|
| 215 |
+
.B \-\-ere
|
| 216 |
+
and
|
| 217 |
+
.BR \-\-esigma .
|
| 218 |
+
|
| 219 |
+
.TP
|
| 220 |
+
.B \-\-eent
|
| 221 |
+
Adjust effective sequence number to achieve a specific relative entropy
|
| 222 |
+
per position (see
|
| 223 |
+
.BR \-\-ere ).
|
| 224 |
+
This is the default.
|
| 225 |
+
|
| 226 |
+
.TP
|
| 227 |
+
.B \-\-eclust
|
| 228 |
+
Set effective sequence number to the number of single-linkage clusters
|
| 229 |
+
at a specific identity threshold (see
|
| 230 |
+
.BR \-\-eid ).
|
| 231 |
+
This option is not recommended; it's for experiments evaluating
|
| 232 |
+
how much better
|
| 233 |
+
.B \-\-eent
|
| 234 |
+
is.
|
| 235 |
+
|
| 236 |
+
.TP
|
| 237 |
+
.B \-\-enone
|
| 238 |
+
Turn off effective sequence number determination and just use the
|
| 239 |
+
actual number of sequences. One reason you might want to do this is
|
| 240 |
+
to try to maximize the relative entropy/position of your model, which
|
| 241 |
+
may be useful for short models.
|
| 242 |
+
|
| 243 |
+
.TP
|
| 244 |
+
.BI \-\-eset " <x>"
|
| 245 |
+
Explicitly set the effective sequence number for all models to
|
| 246 |
+
.IR <x> .
|
| 247 |
+
|
| 248 |
+
.TP
|
| 249 |
+
.BI \-\-ere " <x>"
|
| 250 |
+
Set the minimum relative entropy/position target to
|
| 251 |
+
.IR <x> .
|
| 252 |
+
Requires
|
| 253 |
+
.BR \-\-eent .
|
| 254 |
+
Default depends on the sequence alphabet. For protein
|
| 255 |
+
sequences, it is 0.59 bits/position; for nucleotide
|
| 256 |
+
sequences, it is 0.45 bits/position.
|
| 257 |
+
|
| 258 |
+
.TP
|
| 259 |
+
.BI \-\-esigma " <x>"
|
| 260 |
+
Sets the minimum relative entropy contributed by an entire
|
| 261 |
+
model alignment, over its whole length. This has the effect
|
| 262 |
+
of making short models have
|
| 263 |
+
higher relative entropy per position than
|
| 264 |
+
.B \-\-ere
|
| 265 |
+
alone would give. The default is 45.0 bits.
|
| 266 |
+
|
| 267 |
+
.TP
|
| 268 |
+
.BI \-\-eid " <x>"
|
| 269 |
+
Sets the fractional pairwise identity cutoff used by
|
| 270 |
+
single linkage clustering with the
|
| 271 |
+
.B \-\-eclust
|
| 272 |
+
option. The default is 0.62.
|
| 273 |
+
|
| 274 |
+
|
| 275 |
+
.SH OPTIONS CONTROLLING PRIORS
|
| 276 |
+
|
| 277 |
+
By default, weighted counts are converted to mean posterior
|
| 278 |
+
probability parameter estimates using mixture Dirichlet priors.
|
| 279 |
+
Default mixture Dirichlet prior parameters for protein models and for
|
| 280 |
+
nucleic acid (RNA and DNA) models are built in. The following options
|
| 281 |
+
allow you to override the default priors.
|
| 282 |
+
|
| 283 |
+
.TP
|
| 284 |
+
.B \-\-pnone
|
| 285 |
+
Don't use any priors. Probability parameters will simply be the
|
| 286 |
+
observed frequencies, after relative sequence weighting.
|
| 287 |
+
|
| 288 |
+
.TP
|
| 289 |
+
.B \-\-plaplace
|
| 290 |
+
Use a Laplace +1 prior in place of the default mixture Dirichlet
|
| 291 |
+
prior.
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
|
| 295 |
+
|
| 296 |
+
.SH OPTIONS CONTROLLING SINGLE SEQUENCE SCORING
|
| 297 |
+
|
| 298 |
+
By default, if a query is a single sequence from a file in
|
| 299 |
+
.IR fasta
|
| 300 |
+
format,
|
| 301 |
+
.B hmmbuild
|
| 302 |
+
constructs a search model from that sequence and a standard
|
| 303 |
+
20x20 substitution matrix for residue probabilities, along with two
|
| 304 |
+
additional parameters for position-independent gap open and gap extend
|
| 305 |
+
probabilities. These options allow the default single-sequence scoring
|
| 306 |
+
parameters to be changed, and for single-sequence scoring options to
|
| 307 |
+
be applied to a single sequence coming from an aligned format.
|
| 308 |
+
|
| 309 |
+
.TP
|
| 310 |
+
.BI \-\-singlemx
|
| 311 |
+
If a single sequence query comes from a multiple sequence alignment file,
|
| 312 |
+
such as in
|
| 313 |
+
.IR stockholm
|
| 314 |
+
format, the search model is by default constructed as is typically done
|
| 315 |
+
for multiple sequence alignments. This option forces
|
| 316 |
+
.B hmmbuild
|
| 317 |
+
to use the single-sequence method with substitution score matrix.
|
| 318 |
+
|
| 319 |
+
.TP
|
| 320 |
+
.BI \-\-mx " <s>"
|
| 321 |
+
Obtain residue alignment probabilities from the built-in
|
| 322 |
+
substitution matrix named
|
| 323 |
+
.IR <s> .
|
| 324 |
+
Several standard matrices are built-in, and do not need to be
|
| 325 |
+
read from files.
|
| 326 |
+
The matrix name
|
| 327 |
+
.I <s>
|
| 328 |
+
can be
|
| 329 |
+
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
|
| 330 |
+
BLOSUM90, or DNA1.
|
| 331 |
+
Only one of the
|
| 332 |
+
.B \-\-mx
|
| 333 |
+
and
|
| 334 |
+
.B \-\-mxfile
|
| 335 |
+
options may be used.
|
| 336 |
+
|
| 337 |
+
.TP
|
| 338 |
+
.BI \-\-mxfile " <mxfile>"
|
| 339 |
+
Obtain residue alignment probabilities from the substitution matrix
|
| 340 |
+
in file
|
| 341 |
+
.IR <mxfile> .
|
| 342 |
+
The default score matrix is BLOSUM62 for protein sequences, and
|
| 343 |
+
DNA1 for nucleotide sequences (these matrices are internal to
|
| 344 |
+
HMMER and do not need to be available as a file).
|
| 345 |
+
The format of a substitution matrix
|
| 346 |
+
.I <mxfile>
|
| 347 |
+
is the standard format accepted by BLAST, FASTA, and other sequence
|
| 348 |
+
analysis software.
|
| 349 |
+
See ftp.ncbi.nlm.nih.gov/blast/matrices/ for example files. (The only
|
| 350 |
+
exception: we require matrices to be square, so for DNA, use files
|
| 351 |
+
like NCBI's NUC.4.4, not NUC.4.2.)
|
| 352 |
+
|
| 353 |
+
.TP
|
| 354 |
+
.BI \-\-popen " <x>"
|
| 355 |
+
Set the gap open probability for a single sequence query model to
|
| 356 |
+
.IR <x> .
|
| 357 |
+
The default is 0.02.
|
| 358 |
+
.I <x>
|
| 359 |
+
must be >= 0 and < 0.5.
|
| 360 |
+
|
| 361 |
+
.TP
|
| 362 |
+
.BI \-\-pextend " <x>"
|
| 363 |
+
Set the gap extend probability for a single sequence query model to
|
| 364 |
+
.IR <x> .
|
| 365 |
+
The default is 0.4.
|
| 366 |
+
.I <x>
|
| 367 |
+
must be >= 0 and < 1.0.
|
| 368 |
+
|
| 369 |
+
|
| 370 |
+
.SH OPTIONS CONTROLLING E-VALUE CALIBRATION
|
| 371 |
+
|
| 372 |
+
The location parameters for the expected score distributions for MSV
|
| 373 |
+
filter scores, Viterbi filter scores, and Forward scores require three
|
| 374 |
+
short random sequence simulations.
|
| 375 |
+
|
| 376 |
+
.TP
|
| 377 |
+
.BI \-\-EmL " <n>"
|
| 378 |
+
Sets the sequence length in simulation that estimates the location
|
| 379 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 380 |
+
|
| 381 |
+
.TP
|
| 382 |
+
.BI \-\-EmN " <n>"
|
| 383 |
+
Sets the number of sequences in simulation that estimates the location
|
| 384 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 385 |
+
|
| 386 |
+
.TP
|
| 387 |
+
.BI \-\-EvL " <n>"
|
| 388 |
+
Sets the sequence length in simulation that estimates the location
|
| 389 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 390 |
+
|
| 391 |
+
.TP
|
| 392 |
+
.BI \-\-EvN " <n>"
|
| 393 |
+
Sets the number of sequences in simulation that estimates the location
|
| 394 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 395 |
+
|
| 396 |
+
.TP
|
| 397 |
+
.BI \-\-EfL " <n>"
|
| 398 |
+
Sets the sequence length in simulation that estimates the location
|
| 399 |
+
parameter tau for Forward E-values. Default is 100.
|
| 400 |
+
|
| 401 |
+
.TP
|
| 402 |
+
.BI \-\-EfN " <n>"
|
| 403 |
+
Sets the number of sequences in simulation that estimates the location
|
| 404 |
+
parameter tau for Forward E-values. Default is 200.
|
| 405 |
+
|
| 406 |
+
.TP
|
| 407 |
+
.BI \-\-Eft " <x>"
|
| 408 |
+
Sets the tail mass fraction to fit in the simulation that estimates
|
| 409 |
+
the location parameter tau for Forward evalues. Default is 0.04.
|
| 410 |
+
|
| 411 |
+
|
| 412 |
+
.SH OTHER OPTIONS
|
| 413 |
+
|
| 414 |
+
.TP
|
| 415 |
+
.BI \-\-cpu " <n>"
|
| 416 |
+
Set the number of parallel worker threads to
|
| 417 |
+
.IR <n> .
|
| 418 |
+
On multicore machines, the default is 2.
|
| 419 |
+
You can also control this number by setting an environment variable,
|
| 420 |
+
.IR HMMER_NCPU .
|
| 421 |
+
There is also a master thread, so the actual number of threads that
|
| 422 |
+
HMMER spawns is
|
| 423 |
+
.IR <n> +1.
|
| 424 |
+
|
| 425 |
+
This option is not available if HMMER was compiled with POSIX threads
|
| 426 |
+
support turned off.
|
| 427 |
+
|
| 428 |
+
|
| 429 |
+
|
| 430 |
+
.TP
|
| 431 |
+
.BI \-\-informat " <s>"
|
| 432 |
+
Assert that input
|
| 433 |
+
.I msafile
|
| 434 |
+
is in alignment format
|
| 435 |
+
.IR <s> ,
|
| 436 |
+
bypassing format autodetection.
|
| 437 |
+
Common choices for
|
| 438 |
+
.I <s>
|
| 439 |
+
include:
|
| 440 |
+
.BR stockholm ,
|
| 441 |
+
.BR a2m ,
|
| 442 |
+
.BR afa ,
|
| 443 |
+
.BR psiblast ,
|
| 444 |
+
.BR clustal ,
|
| 445 |
+
.BR phylip .
|
| 446 |
+
For more information, and for codes for some less common formats,
|
| 447 |
+
see main documentation.
|
| 448 |
+
The string
|
| 449 |
+
.I <s>
|
| 450 |
+
is case-insensitive (\fBa2m\fR or \fBA2M\fR both work).
|
| 451 |
+
|
| 452 |
+
|
| 453 |
+
.TP
|
| 454 |
+
.BI \-\-seed " <n>"
|
| 455 |
+
Seed the random number generator with
|
| 456 |
+
.IR <n> ,
|
| 457 |
+
an integer >= 0.
|
| 458 |
+
If
|
| 459 |
+
.I <n>
|
| 460 |
+
is nonzero, any stochastic simulations will be reproducible; the same
|
| 461 |
+
command will give the same results.
|
| 462 |
+
If
|
| 463 |
+
.I <n>
|
| 464 |
+
is 0, the random number generator is seeded arbitrarily, and
|
| 465 |
+
stochastic simulations will vary from run to run of the same command.
|
| 466 |
+
The default seed is 42.
|
| 467 |
+
|
| 468 |
+
|
| 469 |
+
.TP
|
| 470 |
+
.BI \-\-w_beta " <x>"
|
| 471 |
+
Window length tail mass.
|
| 472 |
+
The upper bound,
|
| 473 |
+
.IR W ,
|
| 474 |
+
on the length at which nhmmer expects to find an instance of the
|
| 475 |
+
model is set such that the fraction of all sequences generated
|
| 476 |
+
by the model with length
|
| 477 |
+
.I ">= W"
|
| 478 |
+
is less than
|
| 479 |
+
.IR <x> .
|
| 480 |
+
The default is 1e-7.
|
| 481 |
+
|
| 482 |
+
|
| 483 |
+
|
| 484 |
+
.TP
|
| 485 |
+
.BI \-\-w_length " <n>"
|
| 486 |
+
Override the model instance length upper bound,
|
| 487 |
+
.IR W ,
|
| 488 |
+
which is otherwise controlled by
|
| 489 |
+
.BR \-\-w_beta .
|
| 490 |
+
It should be larger than the model length. The value of
|
| 491 |
+
.I W
|
| 492 |
+
is used deep in the acceleration pipeline, and modest changes
|
| 493 |
+
are not expected to impact results (though larger values of
|
| 494 |
+
.I W
|
| 495 |
+
do lead to longer run time).
|
| 496 |
+
|
| 497 |
+
|
| 498 |
+
.TP
|
| 499 |
+
.B \-\-mpi
|
| 500 |
+
Run as a parallel MPI program. Each alignment is assigned to a MPI
|
| 501 |
+
worker node for construction. (Therefore, the maximum parallelization
|
| 502 |
+
cannot exceed the number of alignments in the input
|
| 503 |
+
.IR msafile .)
|
| 504 |
+
This is useful when building large profile libraries. This option is
|
| 505 |
+
only available if optional MPI capability was enabled at compile-time.
|
| 506 |
+
|
| 507 |
+
|
| 508 |
+
.TP
|
| 509 |
+
.B \-\-stall
|
| 510 |
+
For debugging MPI parallelization: arrest program execution
|
| 511 |
+
immediately after start, and wait for a debugger to attach to the
|
| 512 |
+
running process and release the arrest.
|
| 513 |
+
|
| 514 |
+
|
| 515 |
+
.TP
|
| 516 |
+
.BI \-\-maxinsertlen " <n>"
|
| 517 |
+
Restrict insert length parameterization such that the expected
|
| 518 |
+
insert length at each position of the model is no more than
|
| 519 |
+
.IR <n> .
|
| 520 |
+
|
| 521 |
+
|
| 522 |
+
|
| 523 |
+
|
| 524 |
+
.SH SEE ALSO
|
| 525 |
+
|
| 526 |
+
See
|
| 527 |
+
.BR hmmer (1)
|
| 528 |
+
for a master man page with a list of all the individual man pages
|
| 529 |
+
for programs in the HMMER package.
|
| 530 |
+
|
| 531 |
+
.PP
|
| 532 |
+
For complete documentation, see the user guide that came with your
|
| 533 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 534 |
+
(http://hmmer.org/).
|
| 535 |
+
|
| 536 |
+
|
| 537 |
+
|
| 538 |
+
.SH COPYRIGHT
|
| 539 |
+
|
| 540 |
+
.nf
|
| 541 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 542 |
+
Freely distributed under the BSD open source license.
|
| 543 |
+
.fi
|
| 544 |
+
|
| 545 |
+
For additional information on copyright and licensing, see the file
|
| 546 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 547 |
+
web page
|
| 548 |
+
(http://hmmer.org/).
|
| 549 |
+
|
| 550 |
+
|
| 551 |
+
.SH AUTHOR
|
| 552 |
+
|
| 553 |
+
.nf
|
| 554 |
+
http://eddylab.org
|
| 555 |
+
.fi
|
| 556 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmconvert.1
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmconvert" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmconvert \- convert profile file to various formats
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B hmmconvert
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I hmmfile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
The
|
| 17 |
+
.B hmmconvert
|
| 18 |
+
utility
|
| 19 |
+
converts an input profile file to different HMMER formats.
|
| 20 |
+
|
| 21 |
+
.PP
|
| 22 |
+
By default, the input profile can be in any HMMER format, including
|
| 23 |
+
old/obsolete formats from HMMER2, ASCII or binary; the output profile
|
| 24 |
+
is a current HMMER3 ASCII format.
|
| 25 |
+
|
| 26 |
+
.PP
|
| 27 |
+
.I hmmfile
|
| 28 |
+
may be '\-' (dash), which means reading this input from stdin rather
|
| 29 |
+
than a file.
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
.SH OPTIONS
|
| 33 |
+
|
| 34 |
+
.TP
|
| 35 |
+
.B \-h
|
| 36 |
+
Help; print a brief reminder of command line usage and all available
|
| 37 |
+
options.
|
| 38 |
+
|
| 39 |
+
.TP
|
| 40 |
+
.B \-a
|
| 41 |
+
Output profiles in ASCII text format. This is the default.
|
| 42 |
+
|
| 43 |
+
.TP
|
| 44 |
+
.B \-b
|
| 45 |
+
Output profiles in binary format.
|
| 46 |
+
|
| 47 |
+
.TP
|
| 48 |
+
.B \-2
|
| 49 |
+
Output in legacy HMMER2 ASCII text format, in ls (glocal) mode. This
|
| 50 |
+
allows HMMER3 models to be converted back to a close approximation of
|
| 51 |
+
HMMER2, for comparative studies.
|
| 52 |
+
|
| 53 |
+
.TP
|
| 54 |
+
.BI \-\-outfmt " <s>"
|
| 55 |
+
Output in a HMMER3 ASCII text format other then the most current one.
|
| 56 |
+
Valid choices for
|
| 57 |
+
.I <s>
|
| 58 |
+
are
|
| 59 |
+
.B "3/a"
|
| 60 |
+
through
|
| 61 |
+
.BR "3/f" .
|
| 62 |
+
The current format is
|
| 63 |
+
.BR 3/f ,
|
| 64 |
+
and this is the default. The format
|
| 65 |
+
.B 3/b
|
| 66 |
+
was used in the official HMMER3 release, and the others were used in
|
| 67 |
+
the various testing versions.
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
.SH SEE ALSO
|
| 71 |
+
|
| 72 |
+
See
|
| 73 |
+
.BR hmmer (1)
|
| 74 |
+
for a master man page with a list of all the individual man pages
|
| 75 |
+
for programs in the HMMER package.
|
| 76 |
+
|
| 77 |
+
.PP
|
| 78 |
+
For complete documentation, see the user guide that came with your
|
| 79 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 80 |
+
(http://hmmer.org/).
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
.SH COPYRIGHT
|
| 85 |
+
|
| 86 |
+
.nf
|
| 87 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 88 |
+
Freely distributed under the BSD open source license.
|
| 89 |
+
.fi
|
| 90 |
+
|
| 91 |
+
For additional information on copyright and licensing, see the file
|
| 92 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 93 |
+
web page
|
| 94 |
+
(http://hmmer.org/).
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
.SH AUTHOR
|
| 98 |
+
|
| 99 |
+
.nf
|
| 100 |
+
http://eddylab.org
|
| 101 |
+
.fi
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
"
|
| 106 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmemit.1
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmemit" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmemit \- sample sequences from a profile
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B hmmemit
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I hmmfile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
The
|
| 16 |
+
.B hmmemit
|
| 17 |
+
program
|
| 18 |
+
samples (emits) sequences from the profile HMM(s) in
|
| 19 |
+
.IR hmmfile ,
|
| 20 |
+
and writes them to output.
|
| 21 |
+
Sampling sequences may be useful for a variety of purposes, including
|
| 22 |
+
creating synthetic true positives for benchmarks or tests.
|
| 23 |
+
|
| 24 |
+
.PP
|
| 25 |
+
The default is to sample one unaligned sequence from the core
|
| 26 |
+
probability model, which means that each sequence consists of one
|
| 27 |
+
full-length domain. Alternatively, with the
|
| 28 |
+
.B \-c
|
| 29 |
+
option, you can emit a simple majority-rule consensus sequence;
|
| 30 |
+
or with the
|
| 31 |
+
.B \-a
|
| 32 |
+
option, you can emit an alignment (in which case, you probably
|
| 33 |
+
also want to set
|
| 34 |
+
.B \-N
|
| 35 |
+
to something other than its default of 1 sequence per model).
|
| 36 |
+
|
| 37 |
+
.PP
|
| 38 |
+
As another option, with the
|
| 39 |
+
.B \-p
|
| 40 |
+
option you can sample a sequence from a fully configured HMMER search
|
| 41 |
+
profile. This means sampling a `homologous sequence' by HMMER's
|
| 42 |
+
definition, including nonhomologous flanking sequences, local
|
| 43 |
+
alignments, and multiple domains per sequence, depending on the length
|
| 44 |
+
model and alignment mode chosen for the profile.
|
| 45 |
+
|
| 46 |
+
.PP
|
| 47 |
+
The
|
| 48 |
+
.I hmmfile
|
| 49 |
+
may contain a library of HMMs, in which case
|
| 50 |
+
each HMM will be used in turn.
|
| 51 |
+
|
| 52 |
+
.PP
|
| 53 |
+
.I hmmfile
|
| 54 |
+
may be '\-' (dash), which
|
| 55 |
+
means reading this input from stdin rather than a file.
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
.SH COMMON OPTIONS
|
| 59 |
+
|
| 60 |
+
.TP
|
| 61 |
+
.B \-h
|
| 62 |
+
Help; print a brief reminder of command line usage and all available
|
| 63 |
+
options.
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
.TP
|
| 67 |
+
.BI \-o " <f>"
|
| 68 |
+
Direct the output sequences to file
|
| 69 |
+
.IR <f> ,
|
| 70 |
+
rather than to stdout.
|
| 71 |
+
|
| 72 |
+
.TP
|
| 73 |
+
.BI \-N " <n>"
|
| 74 |
+
Sample
|
| 75 |
+
.I <n>
|
| 76 |
+
sequences per model, rather than just one.
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
.SH OPTIONS CONTROLLING WHAT TO EMIT
|
| 81 |
+
|
| 82 |
+
The default is to sample
|
| 83 |
+
.B N
|
| 84 |
+
sequences from the core model. Alternatively,
|
| 85 |
+
you may choose one (and only one) of the following alternatives.
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
.TP
|
| 89 |
+
.B \-a
|
| 90 |
+
Emit an alignment for each HMM in the
|
| 91 |
+
.I hmmfile
|
| 92 |
+
rather than sampling unaligned sequences one at a time.
|
| 93 |
+
|
| 94 |
+
.TP
|
| 95 |
+
.B \-c
|
| 96 |
+
Emit a plurality-rule consensus sequence, instead of sampling a
|
| 97 |
+
sequence from the profile HMM's probability distribution. The
|
| 98 |
+
consensus sequence is formed by selecting the maximum probability
|
| 99 |
+
residue at each match state.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.B \-C
|
| 103 |
+
Emit a fancier plurality-rule consensus sequence than the
|
| 104 |
+
.B \-c
|
| 105 |
+
option. If the maximum probability residue has p <
|
| 106 |
+
.B minl
|
| 107 |
+
show it as a lower case 'any' residue (n or x); if p >=
|
| 108 |
+
.B minl
|
| 109 |
+
and <
|
| 110 |
+
.B minu
|
| 111 |
+
show it as a lower case residue; and if p >=
|
| 112 |
+
.B minu
|
| 113 |
+
show it as an upper case residue.
|
| 114 |
+
The default settings of
|
| 115 |
+
.B minu
|
| 116 |
+
and
|
| 117 |
+
.B minl
|
| 118 |
+
are both 0.0, which means
|
| 119 |
+
.B \-C
|
| 120 |
+
gives the same output as
|
| 121 |
+
.B \-c
|
| 122 |
+
unless you also set
|
| 123 |
+
.B minu
|
| 124 |
+
and
|
| 125 |
+
.B minl
|
| 126 |
+
to what you want.
|
| 127 |
+
|
| 128 |
+
.TP
|
| 129 |
+
.B \-p
|
| 130 |
+
Sample unaligned sequences from the implicit search profile, not from
|
| 131 |
+
the core model. The core model consists only of the homologous states
|
| 132 |
+
(between the begin and end states of a HMMER Plan7 model). The profile
|
| 133 |
+
includes the nonhomologous N, C, and J states, local/glocal and
|
| 134 |
+
uni/multihit algorithm configuration, and the target length model.
|
| 135 |
+
Therefore sequences sampled from a profile may include nonhomologous
|
| 136 |
+
as well as homologous sequences, and may contain more than one
|
| 137 |
+
homologous sequence segment. By default, the profile is in multihit
|
| 138 |
+
local mode, and the target sequence length is configured for L=400.
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
.SH OPTIONS CONTROLLING EMISSION FROM PROFILES
|
| 144 |
+
|
| 145 |
+
These options require that you have set the
|
| 146 |
+
.B \-p
|
| 147 |
+
option.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-L " <n>"
|
| 151 |
+
Configure the profile's target sequence length model to generate a
|
| 152 |
+
mean length of approximately <n> rather than the default of 400.
|
| 153 |
+
|
| 154 |
+
.TP
|
| 155 |
+
.B \-\-local
|
| 156 |
+
Configure the profile for multihit local alignment.
|
| 157 |
+
|
| 158 |
+
.TP
|
| 159 |
+
.B \-\-unilocal
|
| 160 |
+
Configure the profile for unihit local alignment (Smith/Waterman).
|
| 161 |
+
|
| 162 |
+
.TP
|
| 163 |
+
.B \-\-glocal
|
| 164 |
+
Configure the profile for multihit glocal alignment.
|
| 165 |
+
|
| 166 |
+
.TP
|
| 167 |
+
.B \-\-uniglocal
|
| 168 |
+
Configure the profile for unihit glocal alignment.
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
.SH OPTIONS CONTROLLING FANCY CONSENSUS EMISSION
|
| 172 |
+
|
| 173 |
+
These options require that you have set the
|
| 174 |
+
.B \-C
|
| 175 |
+
option.
|
| 176 |
+
|
| 177 |
+
.TP
|
| 178 |
+
.BI \-\-minl " <x>"
|
| 179 |
+
Sets the
|
| 180 |
+
.B minl
|
| 181 |
+
threshold for showing weakly conserved residues as lower case.
|
| 182 |
+
(0 <= x <= 1)
|
| 183 |
+
|
| 184 |
+
.TP
|
| 185 |
+
.BI \-\-minu " <x>"
|
| 186 |
+
Sets the
|
| 187 |
+
.B minu
|
| 188 |
+
threshold for showing strongly conserved residues as upper case.
|
| 189 |
+
(0 <= x <= 1)
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
.SH OTHER OPTIONS
|
| 194 |
+
|
| 195 |
+
.TP
|
| 196 |
+
.BI \-\-seed " <n>"
|
| 197 |
+
Seed the random number generator with
|
| 198 |
+
.IR <n> ,
|
| 199 |
+
an integer >= 0.
|
| 200 |
+
If
|
| 201 |
+
.I <n>
|
| 202 |
+
is nonzero, any stochastic simulations will be reproducible; the same
|
| 203 |
+
command will give the same results.
|
| 204 |
+
If
|
| 205 |
+
.I <n>
|
| 206 |
+
is 0, the random number generator is seeded arbitrarily, and
|
| 207 |
+
stochastic simulations will vary from run to run of the same command.
|
| 208 |
+
The default is 0: use an arbitrary seed, so different
|
| 209 |
+
.B hmmemit
|
| 210 |
+
runs will generate different samples.
|
| 211 |
+
|
| 212 |
+
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
|
| 216 |
+
.SH SEE ALSO
|
| 217 |
+
|
| 218 |
+
See
|
| 219 |
+
.BR hmmer (1)
|
| 220 |
+
for a master man page with a list of all the individual man pages
|
| 221 |
+
for programs in the HMMER package.
|
| 222 |
+
|
| 223 |
+
.PP
|
| 224 |
+
For complete documentation, see the user guide that came with your
|
| 225 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 226 |
+
(http://hmmer.org/).
|
| 227 |
+
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
.SH COPYRIGHT
|
| 231 |
+
|
| 232 |
+
.nf
|
| 233 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 234 |
+
Freely distributed under the BSD open source license.
|
| 235 |
+
.fi
|
| 236 |
+
|
| 237 |
+
For additional information on copyright and licensing, see the file
|
| 238 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 239 |
+
web page
|
| 240 |
+
(http://hmmer.org/).
|
| 241 |
+
|
| 242 |
+
|
| 243 |
+
.SH AUTHOR
|
| 244 |
+
|
| 245 |
+
.nf
|
| 246 |
+
http://eddylab.org
|
| 247 |
+
.fi
|
| 248 |
+
|
| 249 |
+
|
| 250 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmer.1
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "HMMER" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
|
| 5 |
+
HMMER \- profile HMMs for biological sequence analysis
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
|
| 9 |
+
.nf
|
| 10 |
+
.B hmmalign
|
| 11 |
+
Align sequences to a profile
|
| 12 |
+
|
| 13 |
+
.B hmmbuild
|
| 14 |
+
Construct profiles from multiple sequence alignments
|
| 15 |
+
|
| 16 |
+
.B hmmconvert
|
| 17 |
+
Convert profile file to various formats
|
| 18 |
+
|
| 19 |
+
.B hmmemit
|
| 20 |
+
Sample sequences from a profile
|
| 21 |
+
|
| 22 |
+
.B hmmfetch
|
| 23 |
+
Retrieve profiles from a file
|
| 24 |
+
|
| 25 |
+
.B hmmlogo
|
| 26 |
+
Produce a conservation logo graphic from a profile
|
| 27 |
+
|
| 28 |
+
.B hmmpgmd
|
| 29 |
+
Daemon for database search web services
|
| 30 |
+
|
| 31 |
+
.B hmmpress
|
| 32 |
+
Prepare a profile database for hmmscan
|
| 33 |
+
|
| 34 |
+
.B hmmscan
|
| 35 |
+
Search sequence(s) against a profile database
|
| 36 |
+
|
| 37 |
+
.B hmmsearch
|
| 38 |
+
Search profile(s) against a sequence database
|
| 39 |
+
|
| 40 |
+
.B hmmsim
|
| 41 |
+
Collect profile score distributions on random sequences
|
| 42 |
+
|
| 43 |
+
.B hmmstat
|
| 44 |
+
Summary statistics for a profile file
|
| 45 |
+
|
| 46 |
+
.B jackhmmer
|
| 47 |
+
Iteratively search sequence(s) against a sequence database
|
| 48 |
+
|
| 49 |
+
.B makehmmerdb
|
| 50 |
+
build nhmmer database from a sequence file
|
| 51 |
+
|
| 52 |
+
.B nhmmer
|
| 53 |
+
Search DNA/RNA queries against a DNA/RNA sequence database
|
| 54 |
+
|
| 55 |
+
.B nhmmscan
|
| 56 |
+
Search DNA/RNA sequence(s) against a DNA/RNA profile database
|
| 57 |
+
|
| 58 |
+
.B phmmer
|
| 59 |
+
Search protein sequence(s) against a protein sequence database
|
| 60 |
+
|
| 61 |
+
.B alimask
|
| 62 |
+
Calculate and add column mask to a multiple sequence alignment
|
| 63 |
+
.fi
|
| 64 |
+
|
| 65 |
+
.SH DESCRIPTION
|
| 66 |
+
|
| 67 |
+
HMMER is a suite of several programs for biological sequence alignment
|
| 68 |
+
and database homology search. It uses probabilistic models called
|
| 69 |
+
"profile hidden Markov models" (profile HMMs) to represent the likely
|
| 70 |
+
evolutionary homologs of a single sequence or a multiple alignment of
|
| 71 |
+
a sequence family. A main avenue of research is to improve the
|
| 72 |
+
evolutionary predictive models in HMMER to be able to recognize and
|
| 73 |
+
accurately align increasingly remote homologs, distant in time.
|
| 74 |
+
|
| 75 |
+
HMMER is also used as an organizational tool, to group the
|
| 76 |
+
exponentially growing number of biological sequences into a vastly
|
| 77 |
+
smaller set of well-annotated sequence families. New sequences can be
|
| 78 |
+
annotated by comparison against curated sequence family databases of
|
| 79 |
+
prebuilt HMMER profiles, in addition or instead of comparison to the
|
| 80 |
+
entire sequence database. Databases such as Pfam, SMART, and
|
| 81 |
+
TIGRfams, among others, are based on this principle.
|
| 82 |
+
|
| 83 |
+
HMMER is used in three main modes: to search a sequence database for
|
| 84 |
+
new homologs of a sequence or a sequence family; to search a profile
|
| 85 |
+
database (like Pfam) to find what known family a query sequence
|
| 86 |
+
belongs to, or what domains it has; and to automatically construct
|
| 87 |
+
large multiple alignments (i.e. with an effectively unlimited number
|
| 88 |
+
of sequences) using a profile representative of a sequence family.
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
Suppose you have a multiple sequence alignment of a sequence family of
|
| 92 |
+
interest, and you want to search a sequence database for additional
|
| 93 |
+
homologs. The
|
| 94 |
+
.B hmmbuild
|
| 95 |
+
program builds profile(s) from multiple alignment(s).
|
| 96 |
+
The
|
| 97 |
+
.B hmmsearch
|
| 98 |
+
program searches protein profile(s) against a protein sequence database,
|
| 99 |
+
and
|
| 100 |
+
.B nhmmer
|
| 101 |
+
searches nucleotide profile(s) against a nucleotide sequence database.
|
| 102 |
+
|
| 103 |
+
Suppose you have a single sequence of interest, and you want to search
|
| 104 |
+
a sequence database for additional homologs. The
|
| 105 |
+
.B phmmer
|
| 106 |
+
program searches a single protein sequence against a protein sequence
|
| 107 |
+
database. The
|
| 108 |
+
.B jackhmmer
|
| 109 |
+
program does the same thing but iteratively -- homologs detected in a
|
| 110 |
+
previous round are incorporated into a new profile, and the new
|
| 111 |
+
profile is searched again.
|
| 112 |
+
.B phmmer
|
| 113 |
+
is used like BLASTP, and
|
| 114 |
+
.B jackhmmer
|
| 115 |
+
is used like a protein PSI-BLAST. The
|
| 116 |
+
.B nhmmer
|
| 117 |
+
program searches a single nucleotide sequence against a nucleotide sequence.
|
| 118 |
+
|
| 119 |
+
Suppose you have sequence(s) that you want to analyze using a
|
| 120 |
+
HMMER-based profile HMM database like Pfam (http://pfam.sanger.ac.uk).
|
| 121 |
+
The
|
| 122 |
+
.B hmmpress
|
| 123 |
+
program formats a profile HMM flatfile (such as the file you
|
| 124 |
+
would download from Pfam) into a HMMER binary database.
|
| 125 |
+
The
|
| 126 |
+
.B hmmscan
|
| 127 |
+
program searches protein sequence(s) against that database.
|
| 128 |
+
The
|
| 129 |
+
.B nhmmscan
|
| 130 |
+
program can similarly search nucleotide sequence(s) against
|
| 131 |
+
a pressed database of nucleotide profiles, such as from
|
| 132 |
+
Dfam (http://dfam.janelia.org).
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
Suppose you want to align lots of sequences. You can construct a
|
| 136 |
+
manageably small alignment of a representative set of sequences,
|
| 137 |
+
build a profile with
|
| 138 |
+
.BR hmmbuild ,
|
| 139 |
+
and use the
|
| 140 |
+
.B hmmalign
|
| 141 |
+
program to align any number of sequences to that profile.
|
| 142 |
+
|
| 143 |
+
HMMER also includes some auxiliary tools for working with large
|
| 144 |
+
profile databases.
|
| 145 |
+
.B hmmfetch
|
| 146 |
+
fetches one or more profiles from a database.
|
| 147 |
+
.B hmmstat
|
| 148 |
+
prints summary statistics about a profile file.
|
| 149 |
+
|
| 150 |
+
For compatibility with other profile software and previous versions of
|
| 151 |
+
HMMER, the
|
| 152 |
+
.B hmmconvert
|
| 153 |
+
program converts profiles to a few other formats. We intend to add
|
| 154 |
+
more support for other formats over time.
|
| 155 |
+
|
| 156 |
+
The
|
| 157 |
+
.B hmmemit
|
| 158 |
+
program generates (simulates) "homologous" sequences by sampling from
|
| 159 |
+
a profile. It can also generate a "consensus" sequence.
|
| 160 |
+
|
| 161 |
+
The
|
| 162 |
+
.B hmmsim
|
| 163 |
+
program is a simulator used for collecting statistics about score
|
| 164 |
+
distributions on random sequences.
|
| 165 |
+
|
| 166 |
+
Each program has its own man page.
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
.SH SEE ALSO
|
| 170 |
+
|
| 171 |
+
This is a summary man page for the entire HMMER3 package.
|
| 172 |
+
See individual man pages
|
| 173 |
+
[\fBhmmbuild\fR(1),
|
| 174 |
+
for example] for usage, options, and description of each program in the package.
|
| 175 |
+
|
| 176 |
+
.PP
|
| 177 |
+
For complete documentation, see the user guide that came with your
|
| 178 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 179 |
+
(http://hmmer.org/).
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
.SH COPYRIGHT
|
| 183 |
+
|
| 184 |
+
.nf
|
| 185 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 186 |
+
Freely distributed under the BSD open source license.
|
| 187 |
+
.fi
|
| 188 |
+
|
| 189 |
+
For additional information on copyright and licensing, see the file
|
| 190 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 191 |
+
web page
|
| 192 |
+
(http://hmmer.org/).
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
.SH AUTHOR
|
| 196 |
+
|
| 197 |
+
.nf
|
| 198 |
+
http://eddylab.org
|
| 199 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmfetch.1
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmfetch" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmfetch \- retrieve profiles from a file
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.nf
|
| 9 |
+
\fBhmmfetch\fR [\fIoptions\fR] \fIhmmfile key\fR
|
| 10 |
+
(retrieve HMM named \fIkey\fR)
|
| 11 |
+
|
| 12 |
+
\fBhmmfetch \-f \fR[\fIoptions\fR] \fIhmmfile keyfile\fR
|
| 13 |
+
(retrieve all HMMs listed in \fIkeyfile\fR)
|
| 14 |
+
|
| 15 |
+
\fBhmmfetch \-\-index \fR[\fIoptions\fR] \fIhmmfile\fR
|
| 16 |
+
(index \fIhmmfile\fR for fetching)
|
| 17 |
+
.fi
|
| 18 |
+
|
| 19 |
+
.SH DESCRIPTION
|
| 20 |
+
|
| 21 |
+
.PP
|
| 22 |
+
Quickly retrieves one or more profile HMMs from an
|
| 23 |
+
.I hmmfile
|
| 24 |
+
(a large Pfam database, for example).
|
| 25 |
+
|
| 26 |
+
.PP
|
| 27 |
+
For maximum speed, the
|
| 28 |
+
.I hmmfile
|
| 29 |
+
should be indexed first, using
|
| 30 |
+
.BR "hmmfetch \-\-index" .
|
| 31 |
+
The index is a binary file named
|
| 32 |
+
.IR hmmfile .ssi.
|
| 33 |
+
However, this is optional, and retrieval will still
|
| 34 |
+
work from unindexed files, albeit much more slowly.
|
| 35 |
+
|
| 36 |
+
.PP
|
| 37 |
+
The default mode is to retrieve a single profile by name or
|
| 38 |
+
accession, called the
|
| 39 |
+
.IR key .
|
| 40 |
+
For example:
|
| 41 |
+
|
| 42 |
+
.nf
|
| 43 |
+
\fB% hmmfetch Pfam-A.hmm Caudal_act\fR
|
| 44 |
+
\fB% hmmfetch Pfam-A.hmm PF00045\fR
|
| 45 |
+
.fi
|
| 46 |
+
|
| 47 |
+
.PP
|
| 48 |
+
With the
|
| 49 |
+
.B \-f
|
| 50 |
+
option, a
|
| 51 |
+
.I keyfile
|
| 52 |
+
containing a list of one or more keys is read instead.
|
| 53 |
+
The first whitespace-delimited field on each non-blank non-comment
|
| 54 |
+
line of the
|
| 55 |
+
.I keyfile
|
| 56 |
+
is used as a
|
| 57 |
+
.IR key ,
|
| 58 |
+
and any remaining data on the line is ignored. This allows
|
| 59 |
+
a variety of whitespace delimited datafiles to be used
|
| 60 |
+
as a
|
| 61 |
+
.IR keyfile .
|
| 62 |
+
|
| 63 |
+
.PP
|
| 64 |
+
When using
|
| 65 |
+
.B \-f
|
| 66 |
+
and a
|
| 67 |
+
.IR keyfile ,
|
| 68 |
+
if
|
| 69 |
+
.B hmmfile
|
| 70 |
+
has been indexed, the keys are retrieved in the order
|
| 71 |
+
they occur in the
|
| 72 |
+
.IR keyfile ,
|
| 73 |
+
but if
|
| 74 |
+
.B hmmfile
|
| 75 |
+
isn't indexed, keys are retrieved in the order they occur
|
| 76 |
+
in the
|
| 77 |
+
.BR hmmfile .
|
| 78 |
+
This is a side effect of an implementation that allows
|
| 79 |
+
multiple keys to be retrieved even if the
|
| 80 |
+
.B hmmfile
|
| 81 |
+
is a nonrewindable stream, like a standard input pipe.
|
| 82 |
+
|
| 83 |
+
.PP
|
| 84 |
+
In normal use
|
| 85 |
+
(without
|
| 86 |
+
.B \-\-index
|
| 87 |
+
or
|
| 88 |
+
.B \-f
|
| 89 |
+
options),
|
| 90 |
+
.I hmmfile
|
| 91 |
+
may be '\-' (dash), which
|
| 92 |
+
means reading input from stdin rather than a file.
|
| 93 |
+
With the
|
| 94 |
+
.B \-\-index
|
| 95 |
+
option,
|
| 96 |
+
.I hmmfile
|
| 97 |
+
may not be '\-'; it does not make sense
|
| 98 |
+
to index a standard input stream.
|
| 99 |
+
With the
|
| 100 |
+
.B \-f
|
| 101 |
+
option,
|
| 102 |
+
either
|
| 103 |
+
.I hmmfile
|
| 104 |
+
or
|
| 105 |
+
.I keyfile
|
| 106 |
+
(but not both) may be '\-'.
|
| 107 |
+
It is often particularly useful to read
|
| 108 |
+
.I keyfile
|
| 109 |
+
from standard input, because this allows
|
| 110 |
+
use to use arbitrary command line invocations to
|
| 111 |
+
create a list of HMM names or accessions, then fetch them all
|
| 112 |
+
to a new file, just with one command.
|
| 113 |
+
|
| 114 |
+
.PP
|
| 115 |
+
By default, fetched HMMs are printed to standard output in HMMER3 format.
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
.SH OPTIONS
|
| 119 |
+
|
| 120 |
+
.TP
|
| 121 |
+
.B \-h
|
| 122 |
+
Help; print a brief reminder of command line usage and all available
|
| 123 |
+
options.
|
| 124 |
+
|
| 125 |
+
.TP
|
| 126 |
+
.B \-f
|
| 127 |
+
The second commandline argument is a
|
| 128 |
+
.I keyfile
|
| 129 |
+
instead of a single
|
| 130 |
+
.IR key .
|
| 131 |
+
The first field on each line of the
|
| 132 |
+
.I keyfile
|
| 133 |
+
is used as a retrieval
|
| 134 |
+
.I key
|
| 135 |
+
(an HMM name or accession).
|
| 136 |
+
Blank lines and comment lines (that start with
|
| 137 |
+
a # character) are ignored.
|
| 138 |
+
|
| 139 |
+
.TP
|
| 140 |
+
.BI \-o " <f>"
|
| 141 |
+
Output HMM(s) to file
|
| 142 |
+
.I <f>
|
| 143 |
+
instead of to standard output.
|
| 144 |
+
|
| 145 |
+
.TP
|
| 146 |
+
.B \-O
|
| 147 |
+
Output one retrieved HMM (by
|
| 148 |
+
.IR key )
|
| 149 |
+
to a file named
|
| 150 |
+
.IR key .
|
| 151 |
+
This is a convenience for saving some typing:
|
| 152 |
+
instead of
|
| 153 |
+
.nf
|
| 154 |
+
\fB% hmmfetch \-o RRM_1 hmmfile RRM_1\fR
|
| 155 |
+
.fi
|
| 156 |
+
you can just type
|
| 157 |
+
.nf
|
| 158 |
+
\fB% hmmfetch \-O hmmfile RRM_1\fR
|
| 159 |
+
.fi
|
| 160 |
+
The
|
| 161 |
+
.B \-O
|
| 162 |
+
option only works if you're retrieving a
|
| 163 |
+
single profile; it is incompatible with
|
| 164 |
+
.B \-f.
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
.TP
|
| 170 |
+
.B \-\-index
|
| 171 |
+
Instead of retrieving one or more profiles from
|
| 172 |
+
.IR hmmfile ,
|
| 173 |
+
index the
|
| 174 |
+
.I hmmfile
|
| 175 |
+
for future retrievals.
|
| 176 |
+
This creates a
|
| 177 |
+
.IR hmmfile .ssi
|
| 178 |
+
binary index file.
|
| 179 |
+
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
.SH SEE ALSO
|
| 183 |
+
|
| 184 |
+
See
|
| 185 |
+
.BR hmmer (1)
|
| 186 |
+
for a master man page with a list of all the individual man pages
|
| 187 |
+
for programs in the HMMER package.
|
| 188 |
+
|
| 189 |
+
.PP
|
| 190 |
+
For complete documentation, see the user guide that came with your
|
| 191 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 192 |
+
(http://hmmer.org/).
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
|
| 196 |
+
.SH COPYRIGHT
|
| 197 |
+
|
| 198 |
+
.nf
|
| 199 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 200 |
+
Freely distributed under the BSD open source license.
|
| 201 |
+
.fi
|
| 202 |
+
|
| 203 |
+
For additional information on copyright and licensing, see the file
|
| 204 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 205 |
+
web page
|
| 206 |
+
(http://hmmer.org/).
|
| 207 |
+
|
| 208 |
+
|
| 209 |
+
.SH AUTHOR
|
| 210 |
+
|
| 211 |
+
.nf
|
| 212 |
+
http://eddylab.org
|
| 213 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmlogo.1
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmlogo" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmlogo \- produce a conservation logo graphic from a profile
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B hmmlogo
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I hmmfile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
.B hmmlogo
|
| 17 |
+
computes letter height and indel parameters that can be used to
|
| 18 |
+
produce a profile HMM logo. This tool is essentially a
|
| 19 |
+
command-line interface for much of the data underlying the Skylign
|
| 20 |
+
logo server (skylign.org).
|
| 21 |
+
|
| 22 |
+
By default,
|
| 23 |
+
.B hmmlogo
|
| 24 |
+
prints out a table of per-position letter heights (dependent on the
|
| 25 |
+
requested height method), then prints a table of per-position gap
|
| 26 |
+
probabilities.
|
| 27 |
+
|
| 28 |
+
In a typical logo, the total height of a stack of letters for one
|
| 29 |
+
position depends on the information content of the position, and
|
| 30 |
+
that stack height is subdivided according to the emission
|
| 31 |
+
probabilities of the letters of the alphabet.
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
.SH OPTIONS
|
| 35 |
+
|
| 36 |
+
.TP
|
| 37 |
+
.B \-h
|
| 38 |
+
Help; print a brief reminder of command line usage and all available
|
| 39 |
+
options.
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
.TP
|
| 43 |
+
.B \-\-height_relent_all
|
| 44 |
+
Total height = relative entropy (aka information content); all letters
|
| 45 |
+
are given a positive height. (default)
|
| 46 |
+
|
| 47 |
+
.TP
|
| 48 |
+
.B \-\-height_relent_abovebg
|
| 49 |
+
Total height = relative entropy (aka information content); only letters
|
| 50 |
+
with above-background probability are given positive height.
|
| 51 |
+
|
| 52 |
+
.TP
|
| 53 |
+
.B \-\-height_score
|
| 54 |
+
Total height = sums of scores of positive-scoring letters; letter
|
| 55 |
+
height depends on the score of that letter at that position. Only
|
| 56 |
+
letters with above-background probability (positive score) are
|
| 57 |
+
given positive height. (Note that only letter height is meaningful -
|
| 58 |
+
stack height has no inherent meaning).
|
| 59 |
+
|
| 60 |
+
.TP
|
| 61 |
+
.B \-\-no_indel
|
| 62 |
+
Don't print out the indel probability table.
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
.SH SEE ALSO
|
| 66 |
+
|
| 67 |
+
See
|
| 68 |
+
.BR hmmer (1)
|
| 69 |
+
for a master man page with a list of all the individual man pages
|
| 70 |
+
for programs in the HMMER package.
|
| 71 |
+
|
| 72 |
+
.PP
|
| 73 |
+
For complete documentation, see the user guide that came with your
|
| 74 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 75 |
+
(http://hmmer.org/).
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
.SH COPYRIGHT
|
| 80 |
+
|
| 81 |
+
.nf
|
| 82 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 83 |
+
Freely distributed under the BSD open source license.
|
| 84 |
+
.fi
|
| 85 |
+
|
| 86 |
+
For additional information on copyright and licensing, see the file
|
| 87 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 88 |
+
web page
|
| 89 |
+
(http://hmmer.org/).
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
.SH AUTHOR
|
| 93 |
+
|
| 94 |
+
.nf
|
| 95 |
+
http://eddylab.org
|
| 96 |
+
.fi
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmpgmd.1
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmpgmd" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmpgmd \- daemon for database search web services
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B hmmpgmd
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
The
|
| 16 |
+
.B hmmpgmd
|
| 17 |
+
program is the daemon that we use internally for the hmmer.org web server.
|
| 18 |
+
It essentially stands in front of the search programs
|
| 19 |
+
.BR phmmer ,
|
| 20 |
+
.BR hmmsearch ,
|
| 21 |
+
and
|
| 22 |
+
.BR hmmscan .
|
| 23 |
+
|
| 24 |
+
.PP
|
| 25 |
+
To use
|
| 26 |
+
.BR hmmpgmd ,
|
| 27 |
+
first an instance must be started up as a
|
| 28 |
+
master
|
| 29 |
+
server, and provided with at least one
|
| 30 |
+
sequence database
|
| 31 |
+
(using the
|
| 32 |
+
.B \-\-seqdb
|
| 33 |
+
flag)
|
| 34 |
+
and/or an
|
| 35 |
+
HMM database
|
| 36 |
+
(using the
|
| 37 |
+
.B \-\-hmmdb
|
| 38 |
+
flag).
|
| 39 |
+
A sequence database must be in hmmpgmd format, which may be
|
| 40 |
+
produced using
|
| 41 |
+
.BR esl-reformat .
|
| 42 |
+
An HMM database is of the form produced by
|
| 43 |
+
.BR hmmbuild .
|
| 44 |
+
The input database(s) will be loaded into memory by the
|
| 45 |
+
master. When the master has finished loading the database(s), it
|
| 46 |
+
prints the line:
|
| 47 |
+
"Data loaded into memory. Master is ready."
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
.PP
|
| 51 |
+
After the master is ready, one or more instances of hmmpgmd may
|
| 52 |
+
be started as workers. These workers may be (and typically are) on
|
| 53 |
+
different machines from the master, but must have access to the
|
| 54 |
+
same database file(s) provided to the master, with the same path. As
|
| 55 |
+
with the master, each worker loads the database(s) into memory, and
|
| 56 |
+
indicates completion by printing: "Data loaded into memory. Worker is ready."
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
.PP
|
| 60 |
+
The master process and workers are expected to remain running.
|
| 61 |
+
One or more clients then connect to the master and submit possibly
|
| 62 |
+
many queries. The master distributes the work of a query among the
|
| 63 |
+
workers, collects results, and merges them before responding to the
|
| 64 |
+
client. Two example client programs are included in the HMMER src
|
| 65 |
+
directory - the C program
|
| 66 |
+
.B hmmc2
|
| 67 |
+
and the perl script
|
| 68 |
+
.BR hmmpgmd_client_example.pl .
|
| 69 |
+
These are intended as examples only, and should be extended as
|
| 70 |
+
necessary to meet your needs.
|
| 71 |
+
|
| 72 |
+
.PP
|
| 73 |
+
A query is submitted to the master from the client as a character
|
| 74 |
+
string. Queries may be the sort that would normally be handled
|
| 75 |
+
by
|
| 76 |
+
.B phmmer
|
| 77 |
+
(protein sequence vs protein database),
|
| 78 |
+
.B hmmsearch
|
| 79 |
+
(protein HMM query vs protein database), or
|
| 80 |
+
.B hmmscan
|
| 81 |
+
(protein query vs protein HMM database).
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
The general form of a client query is to start with a single line
|
| 85 |
+
of the form
|
| 86 |
+
.BR "@[options]" ,
|
| 87 |
+
followed by multiple lines of text representing either the query HMM
|
| 88 |
+
or fasta-formatted sequence. The final line of each query is the separator
|
| 89 |
+
.BR "//" .
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
.PP
|
| 93 |
+
For example, to perform a
|
| 94 |
+
.B phmmer
|
| 95 |
+
type search of a sequence against a sequence database
|
| 96 |
+
file, the first line is of the form
|
| 97 |
+
.BR "@\-\-seqdb 1" ,
|
| 98 |
+
then the fasta-formatted query sequence starting with the header line
|
| 99 |
+
.BR >sequence-name ,
|
| 100 |
+
followed by one or more lines of sequence, and finally the closing
|
| 101 |
+
.BR "//" .
|
| 102 |
+
|
| 103 |
+
.PP
|
| 104 |
+
To perform an
|
| 105 |
+
.B hmmsearch
|
| 106 |
+
type search, the query sequence is replaced by the full
|
| 107 |
+
text of a HMMER-format query HMM.
|
| 108 |
+
|
| 109 |
+
.PP
|
| 110 |
+
To perform an
|
| 111 |
+
.B hmmscan
|
| 112 |
+
type search, the text matches that of the
|
| 113 |
+
.B phmmer
|
| 114 |
+
type search, except that the first line changes to
|
| 115 |
+
.BR "@\-\-hmmdb 1" .
|
| 116 |
+
|
| 117 |
+
.PP
|
| 118 |
+
In the hmmpgmd-formatted sequence database file, each sequence
|
| 119 |
+
can be associated with one or more sub-databases. The
|
| 120 |
+
.B \-\-seqdb
|
| 121 |
+
flag indicates which of these sub-databases will be queried.
|
| 122 |
+
The HMM database format does not support sub-databases.
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
.SH OPTIONS
|
| 128 |
+
|
| 129 |
+
.TP
|
| 130 |
+
.B \-h
|
| 131 |
+
Help; print a brief reminder of command line usage and all available
|
| 132 |
+
options.
|
| 133 |
+
|
| 134 |
+
.TP
|
| 135 |
+
.BI \-\-master
|
| 136 |
+
Run as the master server.
|
| 137 |
+
|
| 138 |
+
.TP
|
| 139 |
+
.BI \-\-worker " <s>"
|
| 140 |
+
Run as a worker, connecting to the master server that is running on IP
|
| 141 |
+
address
|
| 142 |
+
.IR <s> .
|
| 143 |
+
|
| 144 |
+
.TP
|
| 145 |
+
.BI \-\-cport " <n>"
|
| 146 |
+
Port to use for communication between clients and the master server.
|
| 147 |
+
The default is 51371.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-\-wport " <n>"
|
| 151 |
+
Port to use for communication between workers and the master server.
|
| 152 |
+
The default is 51372.
|
| 153 |
+
|
| 154 |
+
.TP
|
| 155 |
+
.BI \-\-ccncts " <n>"
|
| 156 |
+
Maximum number of client connections to accept. The default is 16.
|
| 157 |
+
|
| 158 |
+
.TP
|
| 159 |
+
.BI \-\-wcncts " <n>"
|
| 160 |
+
Maximum number of worker connections to accept. The default is 32.
|
| 161 |
+
|
| 162 |
+
.TP
|
| 163 |
+
.BI \-\-pid " <f>"
|
| 164 |
+
Name of file into which the process id will be written.
|
| 165 |
+
|
| 166 |
+
.TP
|
| 167 |
+
.BI \-\-seqdb " <f>"
|
| 168 |
+
Name of the file (in
|
| 169 |
+
.B hmmpgmd
|
| 170 |
+
format) containing protein sequences.
|
| 171 |
+
The contents of this file will be cached for searches.
|
| 172 |
+
|
| 173 |
+
.TP
|
| 174 |
+
.BI \-\-hmmdb " <f>"
|
| 175 |
+
Name of the file containing protein HMMs. The contents of this file
|
| 176 |
+
will be cached for searches.
|
| 177 |
+
|
| 178 |
+
.TP
|
| 179 |
+
.BI \-\-cpu " <n>"
|
| 180 |
+
Number of parallel threads to use (for
|
| 181 |
+
.B \-\-worker
|
| 182 |
+
).
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
.SH SEE ALSO
|
| 186 |
+
|
| 187 |
+
See
|
| 188 |
+
.BR hmmer (1)
|
| 189 |
+
for a master man page with a list of all the individual man pages
|
| 190 |
+
for programs in the HMMER package.
|
| 191 |
+
|
| 192 |
+
.PP
|
| 193 |
+
For complete documentation, see the user guide that came with your
|
| 194 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 195 |
+
(http://hmmer.org/).
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
|
| 199 |
+
.SH COPYRIGHT
|
| 200 |
+
|
| 201 |
+
.nf
|
| 202 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 203 |
+
Freely distributed under the BSD open source license.
|
| 204 |
+
.fi
|
| 205 |
+
|
| 206 |
+
For additional information on copyright and licensing, see the file
|
| 207 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 208 |
+
web page
|
| 209 |
+
(http://hmmer.org/).
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
.SH AUTHOR
|
| 213 |
+
|
| 214 |
+
.nf
|
| 215 |
+
http://eddylab.org
|
| 216 |
+
.fi
|
| 217 |
+
|
| 218 |
+
|
| 219 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmpress.1
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmpress" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmpress \- prepare a profile database for hmmscan
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
|
| 8 |
+
.B hmmpress
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I hmmfile
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
.SH DESCRIPTION
|
| 14 |
+
|
| 15 |
+
.PP
|
| 16 |
+
Constructs binary compressed datafiles for
|
| 17 |
+
.BR hmmscan ,
|
| 18 |
+
starting from a profile database
|
| 19 |
+
.I hmmfile
|
| 20 |
+
in standard HMMER3 format.
|
| 21 |
+
The
|
| 22 |
+
.B hmmpress
|
| 23 |
+
step is required for
|
| 24 |
+
.B hmmscan
|
| 25 |
+
to work.
|
| 26 |
+
|
| 27 |
+
.PP
|
| 28 |
+
Four files are created:
|
| 29 |
+
.IB hmmfile .h3m,
|
| 30 |
+
.IB hmmfile .h3i,
|
| 31 |
+
.IB hmmfile .h3f,
|
| 32 |
+
and
|
| 33 |
+
.IB hmmfile .h3p.
|
| 34 |
+
The
|
| 35 |
+
.IB hmmfile .h3m
|
| 36 |
+
file contains the profile HMMs and their annotation in a binary
|
| 37 |
+
format.
|
| 38 |
+
The
|
| 39 |
+
.IB hmmfile .h3i
|
| 40 |
+
file is an SSI index for the
|
| 41 |
+
.IB hmmfile .h3m
|
| 42 |
+
file.
|
| 43 |
+
The
|
| 44 |
+
.IB hmmfile .h3f
|
| 45 |
+
file contains precomputed data structures
|
| 46 |
+
for the fast heuristic filter (the MSV filter).
|
| 47 |
+
The
|
| 48 |
+
.IB hmmfile .h3p
|
| 49 |
+
file contains precomputed data structures
|
| 50 |
+
for the rest of each profile.
|
| 51 |
+
|
| 52 |
+
.PP
|
| 53 |
+
.I hmmfile
|
| 54 |
+
may not be '\-' (dash); running
|
| 55 |
+
.B hmmpress
|
| 56 |
+
on a standard input stream rather than a file
|
| 57 |
+
is not allowed.
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
.SH OPTIONS
|
| 61 |
+
|
| 62 |
+
.TP
|
| 63 |
+
.B \-h
|
| 64 |
+
Help; print a brief reminder of command line usage and all available
|
| 65 |
+
options.
|
| 66 |
+
|
| 67 |
+
.TP
|
| 68 |
+
.B \-f
|
| 69 |
+
Force; overwrites any previous hmmpress'ed datafiles. The default is
|
| 70 |
+
to bitch about any existing files and ask you to delete them first.
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
.SH SEE ALSO
|
| 76 |
+
|
| 77 |
+
See
|
| 78 |
+
.BR hmmer (1)
|
| 79 |
+
for a master man page with a list of all the individual man pages
|
| 80 |
+
for programs in the HMMER package.
|
| 81 |
+
|
| 82 |
+
.PP
|
| 83 |
+
For complete documentation, see the user guide that came with your
|
| 84 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 85 |
+
(http://hmmer.org/).
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
.SH COPYRIGHT
|
| 90 |
+
|
| 91 |
+
.nf
|
| 92 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 93 |
+
Freely distributed under the BSD open source license.
|
| 94 |
+
.fi
|
| 95 |
+
|
| 96 |
+
For additional information on copyright and licensing, see the file
|
| 97 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 98 |
+
web page
|
| 99 |
+
(http://hmmer.org/).
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
.SH AUTHOR
|
| 103 |
+
|
| 104 |
+
.nf
|
| 105 |
+
http://eddylab.org
|
| 106 |
+
.fi
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmscan.1
ADDED
|
@@ -0,0 +1,470 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmscan" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmscan \- search sequence(s) against a profile database
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B hmmscan
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I hmmdb
|
| 11 |
+
.I seqfile
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
.SH DESCRIPTION
|
| 16 |
+
|
| 17 |
+
.PP
|
| 18 |
+
.B hmmscan
|
| 19 |
+
is used to search protein sequences against collections
|
| 20 |
+
of protein profiles. For each sequence in
|
| 21 |
+
.IR seqfile ,
|
| 22 |
+
use that query sequence to search the target database of
|
| 23 |
+
profiles in
|
| 24 |
+
.IR hmmdb ,
|
| 25 |
+
and output ranked lists of the profiles with the
|
| 26 |
+
most significant matches to the sequence.
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
The
|
| 30 |
+
.I seqfile
|
| 31 |
+
may contain more than one query sequence. Each will be searched
|
| 32 |
+
in turn against
|
| 33 |
+
.I hmmdb.
|
| 34 |
+
|
| 35 |
+
.PP
|
| 36 |
+
The
|
| 37 |
+
.I hmmdb
|
| 38 |
+
needs to be press'ed using
|
| 39 |
+
.B hmmpress
|
| 40 |
+
before it can be searched with
|
| 41 |
+
.BR hmmscan .
|
| 42 |
+
This creates four binary files,
|
| 43 |
+
suffixed
|
| 44 |
+
.BR .h3{fimp} .
|
| 45 |
+
|
| 46 |
+
.PP
|
| 47 |
+
The query
|
| 48 |
+
.I seqfile
|
| 49 |
+
may be '\-' (a dash character), in which case
|
| 50 |
+
the query sequences are read from a
|
| 51 |
+
stdin
|
| 52 |
+
pipe instead of from a file.
|
| 53 |
+
The
|
| 54 |
+
.I hmmdb
|
| 55 |
+
cannot be read from a
|
| 56 |
+
stdin
|
| 57 |
+
stream, because it needs to have
|
| 58 |
+
those four auxiliary binary files generated by
|
| 59 |
+
.BR hmmpress .
|
| 60 |
+
|
| 61 |
+
.PP
|
| 62 |
+
The output format is designed to be human-readable, but is often so
|
| 63 |
+
voluminous that reading it is impractical, and parsing it is a pain. The
|
| 64 |
+
.B \-\-tblout
|
| 65 |
+
and
|
| 66 |
+
.B \-\-domtblout
|
| 67 |
+
options save output in simple tabular formats that are concise and
|
| 68 |
+
easier to parse.
|
| 69 |
+
The
|
| 70 |
+
.B \-o
|
| 71 |
+
option allows redirecting the main output, including throwing it away
|
| 72 |
+
in /dev/null.
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
.SH OPTIONS
|
| 77 |
+
|
| 78 |
+
.TP
|
| 79 |
+
.B \-h
|
| 80 |
+
Help; print a brief reminder of command line usage and all available
|
| 81 |
+
options.
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
.SH OPTIONS FOR CONTROLLING OUTPUT
|
| 86 |
+
|
| 87 |
+
.TP
|
| 88 |
+
.BI \-o " <f>"
|
| 89 |
+
Direct the main human-readable output to a file
|
| 90 |
+
.I <f>
|
| 91 |
+
instead of the default stdout.
|
| 92 |
+
|
| 93 |
+
.TP
|
| 94 |
+
.BI \-\-tblout " <f>"
|
| 95 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 96 |
+
per-target output, with one data line per homologous target model
|
| 97 |
+
found.
|
| 98 |
+
|
| 99 |
+
.TP
|
| 100 |
+
.BI \-\-domtblout " <f>"
|
| 101 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 102 |
+
per-domain output, with one data line per homologous domain
|
| 103 |
+
detected in a query sequence for each homologous model.
|
| 104 |
+
|
| 105 |
+
.TP
|
| 106 |
+
.BI \-\-pfamtblout " <f>"
|
| 107 |
+
Save an especially succinct tabular (space-delimited) file
|
| 108 |
+
summarizing the per-target output, with one data line per
|
| 109 |
+
homologous target model found.
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
.TP
|
| 113 |
+
.B \-\-acc
|
| 114 |
+
Use accessions instead of names in the main output, where available
|
| 115 |
+
for profiles and/or sequences.
|
| 116 |
+
|
| 117 |
+
.TP
|
| 118 |
+
.B \-\-noali
|
| 119 |
+
Omit the alignment section from the main output. This can greatly
|
| 120 |
+
reduce the output volume.
|
| 121 |
+
|
| 122 |
+
.TP
|
| 123 |
+
.B \-\-notextw
|
| 124 |
+
Unlimit the length of each line in the main output. The default
|
| 125 |
+
is a limit of 120 characters per line, which helps in displaying
|
| 126 |
+
the output cleanly on terminals and in editors, but can truncate
|
| 127 |
+
target profile description lines.
|
| 128 |
+
|
| 129 |
+
.TP
|
| 130 |
+
.BI \-\-textw " <n>"
|
| 131 |
+
Set the main output's line length limit to
|
| 132 |
+
.I <n>
|
| 133 |
+
characters per line. The default is 120.
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
.SH OPTIONS FOR REPORTING THRESHOLDS
|
| 138 |
+
|
| 139 |
+
Reporting thresholds control which hits are reported in output files
|
| 140 |
+
(the main output,
|
| 141 |
+
.BR \-\-tblout ,
|
| 142 |
+
and
|
| 143 |
+
.BR \-\-domtblout ).
|
| 144 |
+
|
| 145 |
+
.TP
|
| 146 |
+
.BI \-E " <x>"
|
| 147 |
+
In the per-target output, report target profiles with an E-value of <=
|
| 148 |
+
.IR <x> .
|
| 149 |
+
The default is 10.0, meaning that on average, about 10 false positives
|
| 150 |
+
will be reported per query, so you can see the top of the noise
|
| 151 |
+
and decide for yourself if it's really noise.
|
| 152 |
+
|
| 153 |
+
.TP
|
| 154 |
+
.BI \-T " <x>"
|
| 155 |
+
Instead of thresholding per-profile output on E-value, instead
|
| 156 |
+
report target profiles with a bit score of >=
|
| 157 |
+
.IR <x> .
|
| 158 |
+
|
| 159 |
+
.TP
|
| 160 |
+
.BI \-\-domE " <x>"
|
| 161 |
+
In the per-domain output, for target profiles that have already satisfied
|
| 162 |
+
the per-profile reporting threshold, report individual domains
|
| 163 |
+
with a conditional E-value of <=
|
| 164 |
+
.IR <x> .
|
| 165 |
+
The default is 10.0.
|
| 166 |
+
A conditional E-value means the expected number of additional false
|
| 167 |
+
positive domains in the smaller search space of those comparisons that
|
| 168 |
+
already satisfied the per-profile reporting threshold (and thus must
|
| 169 |
+
have at least one homologous domain already).
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
.TP
|
| 173 |
+
.BI \-\-domT " <x>"
|
| 174 |
+
Instead of thresholding per-domain output on E-value, instead
|
| 175 |
+
report domains with a bit score of >=
|
| 176 |
+
.IR <x> .
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
|
| 181 |
+
.SH OPTIONS FOR INCLUSION THRESHOLDS
|
| 182 |
+
|
| 183 |
+
Inclusion thresholds are stricter than reporting thresholds.
|
| 184 |
+
Inclusion thresholds control which hits are considered to be
|
| 185 |
+
reliable enough
|
| 186 |
+
to be included in an output alignment or a subsequent search round.
|
| 187 |
+
In
|
| 188 |
+
.BR hmmscan ,
|
| 189 |
+
which does not have any alignment output (like
|
| 190 |
+
.B hmmsearch
|
| 191 |
+
or
|
| 192 |
+
.BR phmmer )
|
| 193 |
+
nor any iterative search steps (like
|
| 194 |
+
.BR jackhmmer ),
|
| 195 |
+
inclusion thresholds have little effect. They only affect what domains
|
| 196 |
+
get marked as significant (!) or questionable (?) in domain
|
| 197 |
+
output.
|
| 198 |
+
|
| 199 |
+
.TP
|
| 200 |
+
.BI \-\-incE " <x>"
|
| 201 |
+
Use an E-value of <=
|
| 202 |
+
.I <x>
|
| 203 |
+
as the per-target inclusion threshold.
|
| 204 |
+
The default is 0.01, meaning that on average, about 1 false positive
|
| 205 |
+
would be expected in every 100 searches with different query
|
| 206 |
+
sequences.
|
| 207 |
+
|
| 208 |
+
.TP
|
| 209 |
+
.BI \-\-incT " <x>"
|
| 210 |
+
Instead of using E-values for setting the inclusion threshold, instead
|
| 211 |
+
use a bit score of >=
|
| 212 |
+
.I <x>
|
| 213 |
+
as the per-target inclusion threshold.
|
| 214 |
+
It would be unusual to use bit score thresholds with
|
| 215 |
+
.IR hmmscan ,
|
| 216 |
+
because you don't expect a single score threshold to work for
|
| 217 |
+
different profiles; different profiles have slightly different
|
| 218 |
+
expected score distributions.
|
| 219 |
+
|
| 220 |
+
.TP
|
| 221 |
+
.BI \-\-incdomE " <x>"
|
| 222 |
+
Use a conditional E-value of <=
|
| 223 |
+
.I <x>
|
| 224 |
+
as the per-domain inclusion threshold, in targets that have already
|
| 225 |
+
satisfied the overall per-target inclusion threshold.
|
| 226 |
+
The default is 0.01.
|
| 227 |
+
|
| 228 |
+
.TP
|
| 229 |
+
.BI \-\-incdomT " <x>"
|
| 230 |
+
Instead of using E-values,
|
| 231 |
+
instead use a bit score of >=
|
| 232 |
+
.I <x>
|
| 233 |
+
as the per-domain inclusion threshold.
|
| 234 |
+
As with
|
| 235 |
+
.B \-\-incT
|
| 236 |
+
above,
|
| 237 |
+
it would be unusual to use a single bit score threshold in
|
| 238 |
+
.BR hmmscan .
|
| 239 |
+
|
| 240 |
+
|
| 241 |
+
|
| 242 |
+
.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING
|
| 243 |
+
|
| 244 |
+
Curated profile databases may define specific bit score thresholds for
|
| 245 |
+
each profile, superseding any thresholding based on statistical
|
| 246 |
+
significance alone.
|
| 247 |
+
|
| 248 |
+
To use these options, the profile must contain the appropriate (GA,
|
| 249 |
+
TC, and/or NC) optional score threshold annotation; this is picked up
|
| 250 |
+
by
|
| 251 |
+
.B hmmbuild
|
| 252 |
+
from Stockholm format alignment files. Each thresholding option has
|
| 253 |
+
two scores: the per-sequence threshold
|
| 254 |
+
.I <x1>
|
| 255 |
+
and the per-domain threshold
|
| 256 |
+
.IR <x2> .
|
| 257 |
+
These act as if
|
| 258 |
+
.BI \-T " <x1>"
|
| 259 |
+
.BI \-\-incT " <x1>"
|
| 260 |
+
.BI \-\-domT " <x2>"
|
| 261 |
+
.BI \-\-incdomT " <x2>"
|
| 262 |
+
has been applied specifically using each model's curated thresholds.
|
| 263 |
+
|
| 264 |
+
.TP
|
| 265 |
+
.B \-\-cut_ga
|
| 266 |
+
Use the GA (gathering) bit scores in the model to set
|
| 267 |
+
per-sequence (GA1) and per-domain (GA2) reporting and inclusion
|
| 268 |
+
thresholds. GA thresholds are generally considered to be the
|
| 269 |
+
reliable curated thresholds defining family membership; for example,
|
| 270 |
+
in Pfam, these thresholds define what gets included in Pfam Full
|
| 271 |
+
alignments based on searches with Pfam Seed models.
|
| 272 |
+
|
| 273 |
+
.TP
|
| 274 |
+
.B \-\-cut_nc
|
| 275 |
+
Use the NC (noise cutoff) bit score thresholds in the model to set
|
| 276 |
+
per-sequence (NC1) and per-domain (NC2) reporting and inclusion
|
| 277 |
+
thresholds. NC thresholds are generally considered to be the score of
|
| 278 |
+
the highest-scoring known false positive.
|
| 279 |
+
|
| 280 |
+
.TP
|
| 281 |
+
.B \-\-cut_tc
|
| 282 |
+
Use the NC (trusted cutoff) bit score thresholds in the model to set
|
| 283 |
+
per-sequence (TC1) and per-domain (TC2) reporting and inclusion
|
| 284 |
+
thresholds. TC thresholds are generally considered to be the score of
|
| 285 |
+
the lowest-scoring known true positive that is above all known false
|
| 286 |
+
positives.
|
| 287 |
+
|
| 288 |
+
|
| 289 |
+
|
| 290 |
+
|
| 291 |
+
.SH CONTROL OF THE ACCELERATION PIPELINE
|
| 292 |
+
|
| 293 |
+
HMMER3 searches are accelerated in a three-step filter pipeline: the
|
| 294 |
+
MSV filter, the Viterbi filter, and the Forward filter. The first
|
| 295 |
+
filter is the fastest and most approximate; the last is the full
|
| 296 |
+
Forward scoring algorithm. There is also a bias filter step between
|
| 297 |
+
MSV and Viterbi. Targets that pass all the steps in the acceleration
|
| 298 |
+
pipeline are then subjected to postprocessing -- domain
|
| 299 |
+
identification and scoring using the Forward/Backward algorithm.
|
| 300 |
+
|
| 301 |
+
Changing filter thresholds only removes or includes targets from
|
| 302 |
+
consideration; changing filter thresholds does not alter bit scores,
|
| 303 |
+
E-values, or alignments, all of which are determined solely in
|
| 304 |
+
postprocessing.
|
| 305 |
+
|
| 306 |
+
.TP
|
| 307 |
+
.B \-\-max
|
| 308 |
+
Turn off all filters, including the bias filter, and run full
|
| 309 |
+
Forward/Backward postprocessing on every target. This increases
|
| 310 |
+
sensitivity somewhat, at a large cost in speed.
|
| 311 |
+
|
| 312 |
+
.TP
|
| 313 |
+
.BI \-\-F1 " <x>"
|
| 314 |
+
Set the P-value threshold for the MSV filter step. The default is
|
| 315 |
+
0.02, meaning that roughly 2% of the highest scoring nonhomologous
|
| 316 |
+
targets are expected to pass the filter.
|
| 317 |
+
|
| 318 |
+
.TP
|
| 319 |
+
.BI \-\-F2 " <x>"
|
| 320 |
+
Set the P-value threshold for the Viterbi filter step.
|
| 321 |
+
The default is 0.001.
|
| 322 |
+
|
| 323 |
+
.TP
|
| 324 |
+
.BI \-\-F3 " <x>"
|
| 325 |
+
Set the P-value threshold for the Forward filter step.
|
| 326 |
+
The default is 1e-5.
|
| 327 |
+
|
| 328 |
+
.TP
|
| 329 |
+
.B \-\-nobias
|
| 330 |
+
Turn off the bias filter. This increases sensitivity somewhat, but can
|
| 331 |
+
come at a high cost in speed, especially if the query has biased
|
| 332 |
+
residue composition (such as a repetitive sequence region, or if it is
|
| 333 |
+
a membrane protein with large regions of hydrophobicity). Without the
|
| 334 |
+
bias filter, too many sequences may pass the filter with biased
|
| 335 |
+
queries, leading to slower than expected performance as the
|
| 336 |
+
computationally intensive Forward/Backward algorithms shoulder an
|
| 337 |
+
abnormally heavy load.
|
| 338 |
+
|
| 339 |
+
|
| 340 |
+
|
| 341 |
+
.SH OTHER OPTIONS
|
| 342 |
+
|
| 343 |
+
.TP
|
| 344 |
+
.B \-\-nonull2
|
| 345 |
+
Turn off the null2 score corrections for biased composition.
|
| 346 |
+
|
| 347 |
+
.TP
|
| 348 |
+
.BI \-Z " <x>"
|
| 349 |
+
Assert that the total number of targets in your searches is
|
| 350 |
+
.IR <x> ,
|
| 351 |
+
for the purposes of per-sequence E-value calculations,
|
| 352 |
+
rather than the actual number of targets seen.
|
| 353 |
+
|
| 354 |
+
.TP
|
| 355 |
+
.BI \-\-domZ " <x>"
|
| 356 |
+
Assert that the total number of targets in your searches is
|
| 357 |
+
.IR <x> ,
|
| 358 |
+
for the purposes of per-domain conditional E-value calculations,
|
| 359 |
+
rather than the number of targets that passed the reporting thresholds.
|
| 360 |
+
|
| 361 |
+
.TP
|
| 362 |
+
.BI \-\-seed " <n>"
|
| 363 |
+
Set the random number seed to
|
| 364 |
+
.IR <n> .
|
| 365 |
+
Some steps in postprocessing require Monte Carlo simulation. The
|
| 366 |
+
default is to use a fixed seed (42), so that results are exactly
|
| 367 |
+
reproducible. Any other positive integer will give different (but also
|
| 368 |
+
reproducible) results. A choice of 0 uses an arbitrarily chosen seed.
|
| 369 |
+
|
| 370 |
+
.TP
|
| 371 |
+
.BI \-\-qformat " <s>"
|
| 372 |
+
Assert that input
|
| 373 |
+
.I seqfile
|
| 374 |
+
is in format
|
| 375 |
+
.IR <s> ,
|
| 376 |
+
bypassing format autodetection.
|
| 377 |
+
Common choices for
|
| 378 |
+
.I <s>
|
| 379 |
+
include:
|
| 380 |
+
.BR fasta ,
|
| 381 |
+
.BR embl ,
|
| 382 |
+
.BR genbank.
|
| 383 |
+
Alignment formats also work;
|
| 384 |
+
common choices include:
|
| 385 |
+
.BR stockholm ,
|
| 386 |
+
.BR a2m ,
|
| 387 |
+
.BR afa ,
|
| 388 |
+
.BR psiblast ,
|
| 389 |
+
.BR clustal ,
|
| 390 |
+
.BR phylip .
|
| 391 |
+
For more information, and for codes for some less common formats,
|
| 392 |
+
see main documentation.
|
| 393 |
+
The string
|
| 394 |
+
.I <s>
|
| 395 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 396 |
+
|
| 397 |
+
|
| 398 |
+
|
| 399 |
+
.TP
|
| 400 |
+
.BI \-\-cpu " <n>"
|
| 401 |
+
Set the number of parallel worker threads to
|
| 402 |
+
.IR <n> .
|
| 403 |
+
The default is 0, meaning off (no thread-level parallelization), because
|
| 404 |
+
.B hmmscan
|
| 405 |
+
is typically i/o bound and the extra overhead of our current
|
| 406 |
+
multithreaded
|
| 407 |
+
implementation isn't worthwhile.
|
| 408 |
+
You can also control this number by setting an environment variable,
|
| 409 |
+
.IR HMMER_NCPU .
|
| 410 |
+
There is also a master thread, so the actual number of threads that
|
| 411 |
+
HMMER spawns is at least
|
| 412 |
+
.IR <n> +1.
|
| 413 |
+
|
| 414 |
+
This option is not available if HMMER was compiled with POSIX threads
|
| 415 |
+
support turned off.
|
| 416 |
+
|
| 417 |
+
|
| 418 |
+
.TP
|
| 419 |
+
.BI \-\-stall
|
| 420 |
+
For debugging the MPI master/worker version: pause after start, to
|
| 421 |
+
enable the developer to attach debuggers to the running master and
|
| 422 |
+
worker(s) processes. Send SIGCONT signal to release the pause.
|
| 423 |
+
(Under gdb:
|
| 424 |
+
.BR "(gdb) signal SIGCONT" )
|
| 425 |
+
|
| 426 |
+
(Only available if optional MPI support was enabled at compile-time.)
|
| 427 |
+
|
| 428 |
+
.TP
|
| 429 |
+
.B \-\-mpi
|
| 430 |
+
Run under MPI control with master/worker parallelization (using
|
| 431 |
+
.BR mpirun ,
|
| 432 |
+
for example, or equivalent). Only available if optional MPI support
|
| 433 |
+
was enabled at compile-time.
|
| 434 |
+
|
| 435 |
+
|
| 436 |
+
|
| 437 |
+
|
| 438 |
+
.SH SEE ALSO
|
| 439 |
+
|
| 440 |
+
See
|
| 441 |
+
.BR hmmer (1)
|
| 442 |
+
for a master man page with a list of all the individual man pages
|
| 443 |
+
for programs in the HMMER package.
|
| 444 |
+
|
| 445 |
+
.PP
|
| 446 |
+
For complete documentation, see the user guide that came with your
|
| 447 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 448 |
+
(http://hmmer.org/).
|
| 449 |
+
|
| 450 |
+
|
| 451 |
+
|
| 452 |
+
.SH COPYRIGHT
|
| 453 |
+
|
| 454 |
+
.nf
|
| 455 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 456 |
+
Freely distributed under the BSD open source license.
|
| 457 |
+
.fi
|
| 458 |
+
|
| 459 |
+
For additional information on copyright and licensing, see the file
|
| 460 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 461 |
+
web page
|
| 462 |
+
(http://hmmer.org/).
|
| 463 |
+
|
| 464 |
+
|
| 465 |
+
.SH AUTHOR
|
| 466 |
+
|
| 467 |
+
.nf
|
| 468 |
+
http://eddylab.org
|
| 469 |
+
.fi
|
| 470 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmsearch.1
ADDED
|
@@ -0,0 +1,444 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmsearch" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmsearch \- search profile(s) against a sequence database
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B hmmsearch
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I hmmfile
|
| 11 |
+
.I seqdb
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
.SH DESCRIPTION
|
| 15 |
+
|
| 16 |
+
.PP
|
| 17 |
+
.B hmmsearch
|
| 18 |
+
is used to search one or more profiles against a sequence database.
|
| 19 |
+
For each profile in
|
| 20 |
+
.IR hmmfile ,
|
| 21 |
+
use that query profile to search the target database of sequences in
|
| 22 |
+
.IR seqdb ,
|
| 23 |
+
and output ranked lists of the sequences with the most significant
|
| 24 |
+
matches to the profile.
|
| 25 |
+
To build profiles from multiple alignments, see
|
| 26 |
+
.BR hmmbuild .
|
| 27 |
+
|
| 28 |
+
.PP
|
| 29 |
+
Either the query
|
| 30 |
+
.I hmmfile
|
| 31 |
+
or the target
|
| 32 |
+
.I seqdb
|
| 33 |
+
may be '\-' (a dash character), in which case
|
| 34 |
+
the query profile or target database input will be read from a
|
| 35 |
+
stdin
|
| 36 |
+
pipe instead of from a
|
| 37 |
+
file. Only one input source can come through
|
| 38 |
+
stdin,
|
| 39 |
+
not both.
|
| 40 |
+
An exception is that if the
|
| 41 |
+
.I hmmfile
|
| 42 |
+
contains more than one profile query, then
|
| 43 |
+
.I seqdb
|
| 44 |
+
cannot come from stdin, because we can't rewind the
|
| 45 |
+
streaming target database to search it with another profile.
|
| 46 |
+
|
| 47 |
+
.PP
|
| 48 |
+
The output format is designed to be human-readable, but is often so
|
| 49 |
+
voluminous that reading it is impractical, and parsing it is a pain. The
|
| 50 |
+
.B \-\-tblout
|
| 51 |
+
and
|
| 52 |
+
.B \-\-domtblout
|
| 53 |
+
options save output in simple tabular formats that are concise and
|
| 54 |
+
easier to parse.
|
| 55 |
+
The
|
| 56 |
+
.B \-o
|
| 57 |
+
option allows redirecting the main output, including throwing it away
|
| 58 |
+
in /dev/null.
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
.SH OPTIONS
|
| 63 |
+
|
| 64 |
+
.TP
|
| 65 |
+
.B \-h
|
| 66 |
+
Help; print a brief reminder of command line usage and all available
|
| 67 |
+
options.
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
.SH OPTIONS FOR CONTROLLING OUTPUT
|
| 72 |
+
|
| 73 |
+
.TP
|
| 74 |
+
.BI \-o " <f>"
|
| 75 |
+
Direct the main human-readable output to a file
|
| 76 |
+
.I <f>
|
| 77 |
+
instead of the default stdout.
|
| 78 |
+
|
| 79 |
+
.TP
|
| 80 |
+
.BI \-A " <f>"
|
| 81 |
+
Save a multiple alignment of all significant hits (those satisfying
|
| 82 |
+
.IR "inclusion thresholds" )
|
| 83 |
+
to the file
|
| 84 |
+
.IR <f> .
|
| 85 |
+
|
| 86 |
+
.TP
|
| 87 |
+
.BI \-\-tblout " <f>"
|
| 88 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 89 |
+
per-target output, with one data line per homologous target sequence
|
| 90 |
+
found.
|
| 91 |
+
|
| 92 |
+
.TP
|
| 93 |
+
.BI \-\-domtblout " <f>"
|
| 94 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 95 |
+
per-domain output, with one data line per homologous domain
|
| 96 |
+
detected in a query sequence for each homologous model.
|
| 97 |
+
|
| 98 |
+
.TP
|
| 99 |
+
.B \-\-acc
|
| 100 |
+
Use accessions instead of names in the main output, where available
|
| 101 |
+
for profiles and/or sequences.
|
| 102 |
+
|
| 103 |
+
.TP
|
| 104 |
+
.B \-\-noali
|
| 105 |
+
Omit the alignment section from the main output. This can greatly
|
| 106 |
+
reduce the output volume.
|
| 107 |
+
|
| 108 |
+
.TP
|
| 109 |
+
.B \-\-notextw
|
| 110 |
+
Unlimit the length of each line in the main output. The default
|
| 111 |
+
is a limit of 120 characters per line, which helps in displaying
|
| 112 |
+
the output cleanly on terminals and in editors, but can truncate
|
| 113 |
+
target profile description lines.
|
| 114 |
+
|
| 115 |
+
.TP
|
| 116 |
+
.BI \-\-textw " <n>"
|
| 117 |
+
Set the main output's line length limit to
|
| 118 |
+
.I <n>
|
| 119 |
+
characters per line. The default is 120.
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
.SH OPTIONS CONTROLLING REPORTING THRESHOLDS
|
| 124 |
+
|
| 125 |
+
Reporting thresholds control which hits are reported in output files
|
| 126 |
+
(the main output,
|
| 127 |
+
.BR \-\-tblout ,
|
| 128 |
+
and
|
| 129 |
+
.BR \-\-domtblout ).
|
| 130 |
+
Sequence hits and domain hits are ranked by statistical significance
|
| 131 |
+
(E-value) and output is generated in two sections called per-target
|
| 132 |
+
and per-domain output. In per-target output, by default, all
|
| 133 |
+
sequence hits with an E-value <= 10 are reported. In the per-domain
|
| 134 |
+
output, for each target that has passed per-target reporting
|
| 135 |
+
thresholds, all domains satisfying per-domain reporting thresholds are
|
| 136 |
+
reported. By default, these are domains with conditional E-values of
|
| 137 |
+
<= 10. The following options allow you to change the default
|
| 138 |
+
E-value reporting thresholds, or to use bit score thresholds instead.
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
.TP
|
| 142 |
+
.BI \-E " <x>"
|
| 143 |
+
In the per-target output, report target sequences with an E-value of <=
|
| 144 |
+
.IR <x> .
|
| 145 |
+
The default is 10.0, meaning that on average, about 10 false positives
|
| 146 |
+
will be reported per query, so you can see the top of the noise
|
| 147 |
+
and decide for yourself if it's really noise.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-T " <x>"
|
| 151 |
+
Instead of thresholding per-profile output on E-value, instead
|
| 152 |
+
report target sequences with a bit score of >=
|
| 153 |
+
.IR <x> .
|
| 154 |
+
|
| 155 |
+
.TP
|
| 156 |
+
.BI \-\-domE " <x>"
|
| 157 |
+
In the per-domain output, for target sequences that have already satisfied
|
| 158 |
+
the per-profile reporting threshold, report individual domains
|
| 159 |
+
with a conditional E-value of <=
|
| 160 |
+
.IR <x> .
|
| 161 |
+
The default is 10.0.
|
| 162 |
+
A conditional E-value means the expected number of additional false
|
| 163 |
+
positive domains in the smaller search space of those comparisons that
|
| 164 |
+
already satisfied the per-target reporting threshold (and thus must
|
| 165 |
+
have at least one homologous domain already).
|
| 166 |
+
|
| 167 |
+
|
| 168 |
+
.TP
|
| 169 |
+
.BI \-\-domT " <x>"
|
| 170 |
+
Instead of thresholding per-domain output on E-value, instead
|
| 171 |
+
report domains with a bit score of >=
|
| 172 |
+
.IR <x> .
|
| 173 |
+
|
| 174 |
+
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
.SH OPTIONS FOR INCLUSION THRESHOLDS
|
| 178 |
+
|
| 179 |
+
Inclusion thresholds are stricter than reporting thresholds.
|
| 180 |
+
Inclusion thresholds control which hits are considered to be reliable
|
| 181 |
+
enough to be included in an output alignment or a subsequent search
|
| 182 |
+
round, or marked as significant ("!") as opposed to questionable ("?")
|
| 183 |
+
in domain output.
|
| 184 |
+
|
| 185 |
+
.TP
|
| 186 |
+
.BI \-\-incE " <x>"
|
| 187 |
+
Use an E-value of <=
|
| 188 |
+
.I <x>
|
| 189 |
+
as the per-target inclusion threshold.
|
| 190 |
+
The default is 0.01, meaning that on average, about 1 false positive
|
| 191 |
+
would be expected in every 100 searches with different query
|
| 192 |
+
sequences.
|
| 193 |
+
|
| 194 |
+
.TP
|
| 195 |
+
.BI \-\-incT " <x>"
|
| 196 |
+
Instead of using E-values for setting the inclusion threshold, instead
|
| 197 |
+
use a bit score of >=
|
| 198 |
+
.I <x>
|
| 199 |
+
as the per-target inclusion threshold.
|
| 200 |
+
By default this option is unset.
|
| 201 |
+
|
| 202 |
+
.TP
|
| 203 |
+
.BI \-\-incdomE " <x>"
|
| 204 |
+
Use a conditional E-value of <=
|
| 205 |
+
.I <x>
|
| 206 |
+
as the per-domain inclusion threshold, in targets that have already
|
| 207 |
+
satisfied the overall per-target inclusion threshold.
|
| 208 |
+
The default is 0.01.
|
| 209 |
+
|
| 210 |
+
.TP
|
| 211 |
+
.BI \-\-incdomT " <x>"
|
| 212 |
+
Instead of using E-values,
|
| 213 |
+
use a bit score of >=
|
| 214 |
+
.I <x>
|
| 215 |
+
as the per-domain inclusion threshold.
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
|
| 219 |
+
.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING
|
| 220 |
+
|
| 221 |
+
Curated profile databases may define specific bit score thresholds for
|
| 222 |
+
each profile, superseding any thresholding based on statistical
|
| 223 |
+
significance alone.
|
| 224 |
+
|
| 225 |
+
To use these options, the profile must contain the appropriate (GA,
|
| 226 |
+
TC, and/or NC) optional score threshold annotation; this is picked up
|
| 227 |
+
by
|
| 228 |
+
.B hmmbuild
|
| 229 |
+
from Stockholm format alignment files. Each thresholding option has
|
| 230 |
+
two scores: the per-sequence threshold <x1> and the per-domain
|
| 231 |
+
threshold <x2>
|
| 232 |
+
These act as if
|
| 233 |
+
.BI \-T " <x1>"
|
| 234 |
+
.BI \-\-incT " <x1>"
|
| 235 |
+
.BI \-\-domT " <x2>"
|
| 236 |
+
.BI \-\-incdomT " <x2>"
|
| 237 |
+
has been applied specifically using each model's curated thresholds.
|
| 238 |
+
|
| 239 |
+
.TP
|
| 240 |
+
.B \-\-cut_ga
|
| 241 |
+
Use the GA (gathering) bit scores in the model to set
|
| 242 |
+
per-sequence (GA1) and per-domain (GA2) reporting and inclusion
|
| 243 |
+
thresholds. GA thresholds are generally considered to be the
|
| 244 |
+
reliable curated thresholds defining family membership; for example,
|
| 245 |
+
in Pfam, these thresholds define what gets included in Pfam Full
|
| 246 |
+
alignments based on searches with Pfam Seed models.
|
| 247 |
+
|
| 248 |
+
.TP
|
| 249 |
+
.B \-\-cut_nc
|
| 250 |
+
Use the NC (noise cutoff) bit score thresholds in the model to set
|
| 251 |
+
per-sequence (NC1) and per-domain (NC2) reporting and inclusion
|
| 252 |
+
thresholds. NC thresholds are generally considered to be the score of
|
| 253 |
+
the highest-scoring known false positive.
|
| 254 |
+
|
| 255 |
+
.TP
|
| 256 |
+
.B \-\-cut_tc
|
| 257 |
+
Use the TC (trusted cutoff) bit score thresholds in the model to set
|
| 258 |
+
per-sequence (TC1) and per-domain (TC2) reporting and inclusion
|
| 259 |
+
thresholds. TC thresholds are generally considered to be the score of
|
| 260 |
+
the lowest-scoring known true positive that is above all known false
|
| 261 |
+
positives.
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
|
| 265 |
+
|
| 266 |
+
.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE
|
| 267 |
+
|
| 268 |
+
HMMER3 searches are accelerated in a three-step filter pipeline: the
|
| 269 |
+
MSV filter, the Viterbi filter, and the Forward filter. The first
|
| 270 |
+
filter is the fastest and most approximate; the last is the full
|
| 271 |
+
Forward scoring algorithm. There is also a bias filter step between
|
| 272 |
+
MSV and Viterbi. Targets that pass all the steps in the acceleration
|
| 273 |
+
pipeline are then subjected to postprocessing -- domain
|
| 274 |
+
identification and scoring using the Forward/Backward algorithm.
|
| 275 |
+
|
| 276 |
+
Changing filter thresholds only removes or includes targets from
|
| 277 |
+
consideration; changing filter thresholds does not alter bit scores,
|
| 278 |
+
E-values, or alignments, all of which are determined solely in
|
| 279 |
+
postprocessing.
|
| 280 |
+
|
| 281 |
+
.TP
|
| 282 |
+
.B \-\-max
|
| 283 |
+
Turn off all filters, including the bias filter, and run full
|
| 284 |
+
Forward/Backward postprocessing on every target. This increases
|
| 285 |
+
sensitivity somewhat, at a large cost in speed.
|
| 286 |
+
|
| 287 |
+
.TP
|
| 288 |
+
.BI \-\-F1 " <x>"
|
| 289 |
+
Set the P-value threshold for the MSV filter step. The default is
|
| 290 |
+
0.02, meaning that roughly 2% of the highest scoring nonhomologous
|
| 291 |
+
targets are expected to pass the filter.
|
| 292 |
+
|
| 293 |
+
.TP
|
| 294 |
+
.BI \-\-F2 " <x>"
|
| 295 |
+
Set the P-value threshold for the Viterbi filter step.
|
| 296 |
+
The default is 0.001.
|
| 297 |
+
|
| 298 |
+
.TP
|
| 299 |
+
.BI \-\-F3 " <x>"
|
| 300 |
+
Set the P-value threshold for the Forward filter step.
|
| 301 |
+
The default is 1e-5.
|
| 302 |
+
|
| 303 |
+
.TP
|
| 304 |
+
.B \-\-nobias
|
| 305 |
+
Turn off the bias filter. This increases sensitivity somewhat, but can
|
| 306 |
+
come at a high cost in speed, especially if the query has biased
|
| 307 |
+
residue composition (such as a repetitive sequence region, or if it is
|
| 308 |
+
a membrane protein with large regions of hydrophobicity). Without the
|
| 309 |
+
bias filter, too many sequences may pass the filter with biased
|
| 310 |
+
queries, leading to slower than expected performance as the
|
| 311 |
+
computationally intensive Forward/Backward algorithms shoulder an
|
| 312 |
+
abnormally heavy load.
|
| 313 |
+
|
| 314 |
+
|
| 315 |
+
|
| 316 |
+
.SH OTHER OPTIONS
|
| 317 |
+
|
| 318 |
+
.TP
|
| 319 |
+
.B \-\-nonull2
|
| 320 |
+
Turn off the null2 score corrections for biased composition.
|
| 321 |
+
|
| 322 |
+
.TP
|
| 323 |
+
.BI \-Z " <x>"
|
| 324 |
+
Assert that the total number of targets in your searches is
|
| 325 |
+
.IR <x> ,
|
| 326 |
+
for the purposes of per-sequence E-value calculations,
|
| 327 |
+
rather than the actual number of targets seen.
|
| 328 |
+
|
| 329 |
+
.TP
|
| 330 |
+
.BI \-\-domZ " <x>"
|
| 331 |
+
Assert that the total number of targets in your searches is
|
| 332 |
+
.IR <x> ,
|
| 333 |
+
for the purposes of per-domain conditional E-value calculations,
|
| 334 |
+
rather than the number of targets that passed the reporting thresholds.
|
| 335 |
+
|
| 336 |
+
.TP
|
| 337 |
+
.BI \-\-seed " <n>"
|
| 338 |
+
Set the random number seed to
|
| 339 |
+
.IR <n> .
|
| 340 |
+
Some steps in postprocessing require Monte Carlo simulation. The
|
| 341 |
+
default is to use a fixed seed (42), so that results are exactly
|
| 342 |
+
reproducible. Any other positive integer will give different (but also
|
| 343 |
+
reproducible) results. A choice of 0 uses a randomly chosen seed.
|
| 344 |
+
|
| 345 |
+
.TP
|
| 346 |
+
.BI \-\-tformat " <s>"
|
| 347 |
+
Assert that target sequence file
|
| 348 |
+
.I seqfile
|
| 349 |
+
is in format
|
| 350 |
+
.IR <s> ,
|
| 351 |
+
bypassing format autodetection.
|
| 352 |
+
Common choices for
|
| 353 |
+
.I <s>
|
| 354 |
+
include:
|
| 355 |
+
.BR fasta ,
|
| 356 |
+
.BR embl ,
|
| 357 |
+
.BR genbank.
|
| 358 |
+
Alignment formats also work;
|
| 359 |
+
common choices include:
|
| 360 |
+
.BR stockholm ,
|
| 361 |
+
.BR a2m ,
|
| 362 |
+
.BR afa ,
|
| 363 |
+
.BR psiblast ,
|
| 364 |
+
.BR clustal ,
|
| 365 |
+
.BR phylip .
|
| 366 |
+
For more information, and for codes for some less common formats,
|
| 367 |
+
see main documentation.
|
| 368 |
+
The string
|
| 369 |
+
.I <s>
|
| 370 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 371 |
+
|
| 372 |
+
.TP
|
| 373 |
+
.BI \-\-cpu " <n>"
|
| 374 |
+
Set the number of parallel worker threads to
|
| 375 |
+
.IR <n> .
|
| 376 |
+
On multicore machines, the default is 2.
|
| 377 |
+
You can also control this number by setting an environment variable,
|
| 378 |
+
.IR HMMER_NCPU .
|
| 379 |
+
There is also a master thread, so the actual number of threads that
|
| 380 |
+
HMMER spawns is
|
| 381 |
+
.IR <n> +1.
|
| 382 |
+
|
| 383 |
+
This option is not available if HMMER was compiled with POSIX threads
|
| 384 |
+
support turned off.
|
| 385 |
+
|
| 386 |
+
|
| 387 |
+
.TP
|
| 388 |
+
.BI \-\-stall
|
| 389 |
+
For debugging the MPI master/worker version: pause after start, to
|
| 390 |
+
enable the developer to attach debuggers to the running master and
|
| 391 |
+
worker(s) processes. Send SIGCONT signal to release the pause.
|
| 392 |
+
(Under gdb:
|
| 393 |
+
.BR "(gdb) signal SIGCONT" )
|
| 394 |
+
(Only available if optional MPI support was enabled at compile-time.)
|
| 395 |
+
|
| 396 |
+
|
| 397 |
+
|
| 398 |
+
.TP
|
| 399 |
+
.B \-\-mpi
|
| 400 |
+
Run under MPI control with master/worker parallelization (using
|
| 401 |
+
.BR mpirun ,
|
| 402 |
+
for example, or equivalent). Only available if optional MPI support
|
| 403 |
+
was enabled at compile-time.
|
| 404 |
+
|
| 405 |
+
|
| 406 |
+
|
| 407 |
+
|
| 408 |
+
|
| 409 |
+
|
| 410 |
+
.SH SEE ALSO
|
| 411 |
+
|
| 412 |
+
See
|
| 413 |
+
.BR hmmer (1)
|
| 414 |
+
for a master man page with a list of all the individual man pages
|
| 415 |
+
for programs in the HMMER package.
|
| 416 |
+
|
| 417 |
+
.PP
|
| 418 |
+
For complete documentation, see the user guide that came with your
|
| 419 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 420 |
+
(http://hmmer.org/).
|
| 421 |
+
|
| 422 |
+
|
| 423 |
+
|
| 424 |
+
.SH COPYRIGHT
|
| 425 |
+
|
| 426 |
+
.nf
|
| 427 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 428 |
+
Freely distributed under the BSD open source license.
|
| 429 |
+
.fi
|
| 430 |
+
|
| 431 |
+
For additional information on copyright and licensing, see the file
|
| 432 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 433 |
+
web page
|
| 434 |
+
(http://hmmer.org/).
|
| 435 |
+
|
| 436 |
+
|
| 437 |
+
.SH AUTHOR
|
| 438 |
+
|
| 439 |
+
.nf
|
| 440 |
+
http://eddylab.org
|
| 441 |
+
.fi
|
| 442 |
+
|
| 443 |
+
|
| 444 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/hmmsim.1
ADDED
|
@@ -0,0 +1,515 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "hmmsim" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
hmmsim \- collect profile score distributions on random sequences
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B hmmsim
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I hmmfile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
The
|
| 16 |
+
.B hmmsim
|
| 17 |
+
program generates random sequences, scores them with the model(s) in
|
| 18 |
+
.IR hmmfile ,
|
| 19 |
+
and outputs various sorts of histograms, plots, and fitted
|
| 20 |
+
distributions for the resulting scores.
|
| 21 |
+
|
| 22 |
+
.PP
|
| 23 |
+
.B hmmsim
|
| 24 |
+
is not a mainstream part of the HMMER package and most users would have
|
| 25 |
+
no reason to use it. It is used to develop and test the statistical
|
| 26 |
+
methods used to determine P-values and E-values in HMMER3. For
|
| 27 |
+
example, it was used to generate most of the results in a 2008 paper
|
| 28 |
+
on H3's local alignment statistics (PLoS Comp Bio 4:e1000069, 2008;
|
| 29 |
+
http://www.ploscompbiol.org/doi/pcbi.1000069).
|
| 30 |
+
|
| 31 |
+
.PP
|
| 32 |
+
Because it is a research testbed, you should not expect it to be as
|
| 33 |
+
robust as other programs in the package. For example, options may
|
| 34 |
+
interact in weird ways; we haven't tested nor tried to anticipate all
|
| 35 |
+
different possible combinations.
|
| 36 |
+
|
| 37 |
+
.PP
|
| 38 |
+
The main task is to fit a maximum likelihood Gumbel distribution to
|
| 39 |
+
Viterbi scores or an maximum likelihood exponential tail to
|
| 40 |
+
high-scoring Forward scores, and to test that these fitted
|
| 41 |
+
distributions obey the conjecture that lambda ~ log_2 for both the
|
| 42 |
+
Viterbi Gumbel and the Forward exponential tail.
|
| 43 |
+
|
| 44 |
+
.PP
|
| 45 |
+
The output is a table of numbers, one row for each model. Four
|
| 46 |
+
different parametric fits to the score data are tested: (1) maximum
|
| 47 |
+
likelihood fits to both location (mu/tau) and slope (lambda)
|
| 48 |
+
parameters; (2) assuming lambda=log_2, maximum likelihood fit to the
|
| 49 |
+
location parameter only; (3) same but assuming an edge-corrected
|
| 50 |
+
lambda, using current procedures in H3 [Eddy, 2008]; and (4) using
|
| 51 |
+
both parameters determined by H3's current procedures. The standard
|
| 52 |
+
simple, quick and dirty statistic for goodness-of-fit is 'E@10', the
|
| 53 |
+
calculated E-value of the 10th ranked top hit, which we expect to be
|
| 54 |
+
about 10.
|
| 55 |
+
|
| 56 |
+
.PP
|
| 57 |
+
In detail, the columns of the output are:
|
| 58 |
+
|
| 59 |
+
.TP
|
| 60 |
+
.B name
|
| 61 |
+
Name of the model.
|
| 62 |
+
|
| 63 |
+
.TP
|
| 64 |
+
.B tailp
|
| 65 |
+
Fraction of the highest scores used to fit the distribution. For
|
| 66 |
+
Viterbi, MSV, and Hybrid scores, this defaults to 1.0 (a Gumbel
|
| 67 |
+
distribution is fitted to all the data). For Forward scores, this
|
| 68 |
+
defaults to 0.02 (an exponential tail is fitted to the highest 2%
|
| 69 |
+
scores).
|
| 70 |
+
|
| 71 |
+
.TP
|
| 72 |
+
.B mu/tau
|
| 73 |
+
Location parameter for the maximum likelihood fit to the data.
|
| 74 |
+
|
| 75 |
+
.TP
|
| 76 |
+
.B lambda
|
| 77 |
+
Slope parameter for the maximum likelihood fit to the data.
|
| 78 |
+
|
| 79 |
+
.TP
|
| 80 |
+
.B E@10
|
| 81 |
+
The E-value calculated for the 10th ranked high score ('E@10') using the ML
|
| 82 |
+
mu/tau and lambda. By definition, this expected to be about 10, if
|
| 83 |
+
E-value estimation were accurate.
|
| 84 |
+
|
| 85 |
+
.TP
|
| 86 |
+
.B mufix
|
| 87 |
+
Location parameter, for a maximum likelihood fit with a known (fixed)
|
| 88 |
+
slope parameter lambda of log_2 (0.693).
|
| 89 |
+
|
| 90 |
+
.TP
|
| 91 |
+
.B E@10fix
|
| 92 |
+
The E-value calculated for the 10th ranked score using mufix and the
|
| 93 |
+
expected lambda = log_2 = 0.693.
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
.TP
|
| 97 |
+
.B mufix2
|
| 98 |
+
Location parameter, for a maximum likelihood fit with an
|
| 99 |
+
edge-effect-corrected lambda.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.B E@10fix2
|
| 103 |
+
The E-value calculated for the 10th ranked score using mufix2 and the
|
| 104 |
+
edge-effect-corrected lambda.
|
| 105 |
+
|
| 106 |
+
.TP
|
| 107 |
+
.B pmu
|
| 108 |
+
Location parameter as determined by H3's estimation procedures.
|
| 109 |
+
|
| 110 |
+
.TP
|
| 111 |
+
.B plambda
|
| 112 |
+
Slope parameter as determined by H3's estimation procedures.
|
| 113 |
+
|
| 114 |
+
.TP
|
| 115 |
+
.B pE@10
|
| 116 |
+
The E-value calculated for the 10th ranked score using pmu, plambda.
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
.PP
|
| 120 |
+
At the end of this table, one more line is printed, starting with #
|
| 121 |
+
and summarizing the overall CPU time used by the simulations.
|
| 122 |
+
|
| 123 |
+
.PP
|
| 124 |
+
Some of the optional output files are in xmgrace xy format. xmgrace is
|
| 125 |
+
powerful and freely available graph-plotting software.
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
.SH OPTIONS
|
| 129 |
+
|
| 130 |
+
.TP
|
| 131 |
+
.B \-h
|
| 132 |
+
Help; print a brief reminder of command line usage and all available
|
| 133 |
+
options.
|
| 134 |
+
|
| 135 |
+
.TP
|
| 136 |
+
.B \-a
|
| 137 |
+
Collect expected Viterbi alignment length statistics from each
|
| 138 |
+
simulated sequence. This only works with Viterbi scores (the default;
|
| 139 |
+
see
|
| 140 |
+
.BR \-\-vit ).
|
| 141 |
+
Two additional fields are printed in the output table for
|
| 142 |
+
each model: the mean length of Viterbi alignments, and the standard
|
| 143 |
+
deviation.
|
| 144 |
+
|
| 145 |
+
.TP
|
| 146 |
+
.B \-v
|
| 147 |
+
(Verbose). Print the scores too, one score per line.
|
| 148 |
+
|
| 149 |
+
.TP
|
| 150 |
+
.BI \-L " <n>"
|
| 151 |
+
Set the length of the randomly sampled (nonhomologous) sequences to
|
| 152 |
+
.IR <n> .
|
| 153 |
+
The default is 100.
|
| 154 |
+
|
| 155 |
+
|
| 156 |
+
.TP
|
| 157 |
+
.BI \-N " <n>"
|
| 158 |
+
Set the number of randomly sampled sequences to
|
| 159 |
+
.IR <n> .
|
| 160 |
+
The default is 1000.
|
| 161 |
+
|
| 162 |
+
.TP
|
| 163 |
+
.B \-\-mpi
|
| 164 |
+
Run under MPI control with master/worker parallelization (using
|
| 165 |
+
.BR mpirun ,
|
| 166 |
+
for example, or equivalent). Only available if optional MPI support
|
| 167 |
+
was enabled at compile-time.
|
| 168 |
+
|
| 169 |
+
It is parallelized at the level of sending one profile at a time to an
|
| 170 |
+
MPI worker process, so parallelization only helps if you have more
|
| 171 |
+
than one profile in the
|
| 172 |
+
.IR hmmfile ,
|
| 173 |
+
and you want to have at least as many profiles as MPI worker
|
| 174 |
+
processes.
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
.SH OPTIONS CONTROLLING OUTPUT
|
| 180 |
+
|
| 181 |
+
.TP
|
| 182 |
+
.BI \-o " <f>"
|
| 183 |
+
Save the main output table to a file
|
| 184 |
+
.I <f>
|
| 185 |
+
rather than sending it to stdout.
|
| 186 |
+
|
| 187 |
+
.TP
|
| 188 |
+
.BI \-\-afile " <f>"
|
| 189 |
+
When collecting Viterbi alignment statistics (the
|
| 190 |
+
.B \-a
|
| 191 |
+
option), for each sampled sequence, output two fields per
|
| 192 |
+
line to a file
|
| 193 |
+
.IR <f> :
|
| 194 |
+
the length of the optimal alignment, and the Viterbi bit score.
|
| 195 |
+
Requires that the
|
| 196 |
+
.B \-a
|
| 197 |
+
option is also used.
|
| 198 |
+
|
| 199 |
+
.TP
|
| 200 |
+
.BI \-\-efile " <f>"
|
| 201 |
+
Output a rank vs. E-value plot in XMGRACE xy format to file
|
| 202 |
+
.IR <f> .
|
| 203 |
+
The x-axis is the rank of this sequence, from highest score to lowest;
|
| 204 |
+
the y-axis is the E-value calculated for this sequence. E-values are
|
| 205 |
+
calculated using H3's default procedures (i.e. the pmu, plambda
|
| 206 |
+
parameters in the output table). You expect a rough match between rank
|
| 207 |
+
and E-value if E-values are accurately estimated.
|
| 208 |
+
|
| 209 |
+
|
| 210 |
+
.TP
|
| 211 |
+
.BI \-\-ffile " <f>"
|
| 212 |
+
Output a "filter power" file to
|
| 213 |
+
.IR <f> :
|
| 214 |
+
for each model, a line with three fields:
|
| 215 |
+
model name, number of sequences passing the P-value threshold,
|
| 216 |
+
and fraction of sequences passing the P-value threshold. See
|
| 217 |
+
.B \-\-pthresh
|
| 218 |
+
for setting the P-value threshold, which defaults to 0.02 (the default
|
| 219 |
+
MSV filter threshold in H3). The P-values are as determined by H3's
|
| 220 |
+
default procedures (the pmu,plambda parameters in the output table).
|
| 221 |
+
If all is well, you expect to see filter power equal to the predicted
|
| 222 |
+
P-value setting of the threshold.
|
| 223 |
+
|
| 224 |
+
.TP
|
| 225 |
+
.BI \-\-pfile " <f>"
|
| 226 |
+
Output cumulative survival plots (P(S>x)) to file
|
| 227 |
+
.I <f>
|
| 228 |
+
in XMGRACE xy format. There are three plots:
|
| 229 |
+
(1) the observed score distribution;
|
| 230 |
+
(2) the maximum likelihood fitted distribution;
|
| 231 |
+
(3) a maximum likelihood fit to the location parameter (mu/tau) while
|
| 232 |
+
assuming lambda=log_2.
|
| 233 |
+
|
| 234 |
+
.TP
|
| 235 |
+
.BI \-\-xfile " <f>"
|
| 236 |
+
Output the bit scores as a binary array of double-precision floats (8
|
| 237 |
+
bytes per score) to file
|
| 238 |
+
.IR <f> .
|
| 239 |
+
Programs like Easel's
|
| 240 |
+
.B esl-histplot
|
| 241 |
+
can read such binary files. This is useful when generating extremely
|
| 242 |
+
large sample sizes.
|
| 243 |
+
|
| 244 |
+
|
| 245 |
+
.SH OPTIONS CONTROLLING MODEL CONFIGURATION (MODE)
|
| 246 |
+
|
| 247 |
+
H3 only uses multihit local alignment (
|
| 248 |
+
.B \-\-fs
|
| 249 |
+
mode), and this is where we believe the statistical fits.
|
| 250 |
+
Unihit local alignment scores (Smith/Waterman;
|
| 251 |
+
.B \-\-sw
|
| 252 |
+
mode) also obey our statistical conjectures.
|
| 253 |
+
Glocal alignment statistics (either multihit or unihit) are
|
| 254 |
+
still not adequately understood nor adequately fitted.
|
| 255 |
+
|
| 256 |
+
.TP
|
| 257 |
+
.B \-\-fs
|
| 258 |
+
Collect multihit local alignment scores. This is the default.
|
| 259 |
+
"fs" comes from HMMER2's historical terminology for multihit local
|
| 260 |
+
alignment as 'fragment search mode'.
|
| 261 |
+
|
| 262 |
+
.TP
|
| 263 |
+
.B \-\-sw
|
| 264 |
+
Collect unihit local alignment scores. The H3 J state is disabled.
|
| 265 |
+
"sw" comes from HMMER2's historical terminology for unihit local
|
| 266 |
+
alignment as 'Smith/Waterman search mode'.
|
| 267 |
+
|
| 268 |
+
.TP
|
| 269 |
+
.B \-\-ls
|
| 270 |
+
Collect multihit glocal alignment scores. In glocal (global/local)
|
| 271 |
+
alignment, the entire model must align, to a subsequence of the
|
| 272 |
+
target. The H3 local entry/exit transition probabilities are
|
| 273 |
+
disabled. 'ls' comes from HMMER2's historical terminology for multihit local
|
| 274 |
+
alignment as 'local search mode'.
|
| 275 |
+
|
| 276 |
+
.TP
|
| 277 |
+
.B \-\-s
|
| 278 |
+
Collect unihit glocal alignment scores. Both the H3 J state and local
|
| 279 |
+
entry/exit transition probabilities are disabled. 's' comes from
|
| 280 |
+
HMMER2's historical terminology for unihit glocal alignment.
|
| 281 |
+
|
| 282 |
+
|
| 283 |
+
|
| 284 |
+
.SH OPTIONS CONTROLLING SCORING ALGORITHM
|
| 285 |
+
|
| 286 |
+
.TP
|
| 287 |
+
.B \-\-vit
|
| 288 |
+
Collect Viterbi maximum likelihood alignment scores. This is the default.
|
| 289 |
+
|
| 290 |
+
.TP
|
| 291 |
+
.B \-\-fwd
|
| 292 |
+
Collect Forward log-odds likelihood scores, summed over alignment ensemble.
|
| 293 |
+
|
| 294 |
+
.TP
|
| 295 |
+
.B \-\-hyb
|
| 296 |
+
Collect 'Hybrid' scores, as described in papers by Yu and Hwa (for
|
| 297 |
+
instance, Bioinformatics 18:864, 2002). These involve calculating a
|
| 298 |
+
Forward matrix and taking the maximum cell value. The number itself is
|
| 299 |
+
statistically somewhat unmotivated, but the distribution is expected
|
| 300 |
+
be a well-behaved extreme value distribution (Gumbel).
|
| 301 |
+
|
| 302 |
+
.TP
|
| 303 |
+
.B \-\-msv
|
| 304 |
+
Collect MSV (multiple ungapped segment Viterbi) scores, using H3's
|
| 305 |
+
main acceleration heuristic.
|
| 306 |
+
|
| 307 |
+
.TP
|
| 308 |
+
.B \-\-fast
|
| 309 |
+
For any of the above options, use H3's optimized production
|
| 310 |
+
implementation (using SIMD vectorization). The default is to use the
|
| 311 |
+
"generic" implementation (slow and non-vectorized). The optimized
|
| 312 |
+
implementations sacrifice a small amount of numerical precision. This
|
| 313 |
+
can introduce confounding noise into statistical simulations and fits,
|
| 314 |
+
so when one gets super-concerned about exact details, it's better to
|
| 315 |
+
be able to factor that source of noise out.
|
| 316 |
+
|
| 317 |
+
.SH OPTIONS CONTROLLING FITTED TAIL MASSES FOR FORWARD
|
| 318 |
+
|
| 319 |
+
In some experiments, it was useful to fit Forward scores to a range of
|
| 320 |
+
different tail masses, rather than just one. These options provide a
|
| 321 |
+
mechanism for fitting an evenly-spaced range of different tail masses.
|
| 322 |
+
For each different tail mass, a line is generated in the output.
|
| 323 |
+
|
| 324 |
+
.TP
|
| 325 |
+
.BI \-\-tmin " <x>"
|
| 326 |
+
Set the lower bound on the tail mass distribution. (The default is
|
| 327 |
+
0.02 for the default single tail mass.)
|
| 328 |
+
|
| 329 |
+
.TP
|
| 330 |
+
.BI \-\-tmax " <x>"
|
| 331 |
+
Set the upper bound on the tail mass distribution. (The default is
|
| 332 |
+
0.02 for the default single tail mass.)
|
| 333 |
+
|
| 334 |
+
.TP
|
| 335 |
+
.BI \-\-tpoints " <n>"
|
| 336 |
+
Set the number of tail masses to sample, starting from
|
| 337 |
+
.B \-\-tmin
|
| 338 |
+
and ending at
|
| 339 |
+
.BR \-\-tmax .
|
| 340 |
+
(The default is 1, for the default 0.02 single tail mass.)
|
| 341 |
+
|
| 342 |
+
.TP
|
| 343 |
+
.B \-\-tlinear
|
| 344 |
+
Sample a range of tail masses with uniform linear spacing. The default
|
| 345 |
+
is to use uniform logarithmic spacing.
|
| 346 |
+
|
| 347 |
+
|
| 348 |
+
|
| 349 |
+
.SH OPTIONS CONTROLLING H3 PARAMETER ESTIMATION METHODS
|
| 350 |
+
|
| 351 |
+
H3 uses three short random sequence simulations to estimating the
|
| 352 |
+
location parameters for the expected score distributions for MSV
|
| 353 |
+
scores, Viterbi scores, and Forward scores. These options allow these
|
| 354 |
+
simulations to be modified.
|
| 355 |
+
|
| 356 |
+
.TP
|
| 357 |
+
.BI \-\-EmL " <n>"
|
| 358 |
+
Sets the sequence length in simulation that estimates the location
|
| 359 |
+
parameter mu for MSV E-values. Default is 200.
|
| 360 |
+
|
| 361 |
+
.TP
|
| 362 |
+
.BI \-\-EmN " <n>"
|
| 363 |
+
Sets the number of sequences in simulation that estimates the location
|
| 364 |
+
parameter mu for MSV E-values. Default is 200.
|
| 365 |
+
|
| 366 |
+
.TP
|
| 367 |
+
.BI \-\-EvL " <n>"
|
| 368 |
+
Sets the sequence length in simulation that estimates the location
|
| 369 |
+
parameter mu for Viterbi E-values. Default is 200.
|
| 370 |
+
|
| 371 |
+
.TP
|
| 372 |
+
.BI \-\-EvN " <n>"
|
| 373 |
+
Sets the number of sequences in simulation that estimates the location
|
| 374 |
+
parameter mu for Viterbi E-values. Default is 200.
|
| 375 |
+
|
| 376 |
+
.TP
|
| 377 |
+
.BI \-\-EfL " <n>"
|
| 378 |
+
Sets the sequence length in simulation that estimates the location
|
| 379 |
+
parameter tau for Forward E-values. Default is 100.
|
| 380 |
+
|
| 381 |
+
.TP
|
| 382 |
+
.BI \-\-EfN " <n>"
|
| 383 |
+
Sets the number of sequences in simulation that estimates the location
|
| 384 |
+
parameter tau for Forward E-values. Default is 200.
|
| 385 |
+
|
| 386 |
+
.TP
|
| 387 |
+
.BI \-\-Eft " <x>"
|
| 388 |
+
Sets the tail mass fraction to fit in the simulation that estimates
|
| 389 |
+
the location parameter tau for Forward evalues. Default is 0.04.
|
| 390 |
+
|
| 391 |
+
|
| 392 |
+
.SH DEBUGGING OPTIONS
|
| 393 |
+
|
| 394 |
+
.TP
|
| 395 |
+
.B \-\-stall
|
| 396 |
+
For debugging the MPI master/worker version: pause after start, to
|
| 397 |
+
enable the developer to attach debuggers to the running master and
|
| 398 |
+
worker(s) processes. Send SIGCONT signal to release the pause.
|
| 399 |
+
(Under gdb:
|
| 400 |
+
.IR "(gdb) signal SIGCONT" )
|
| 401 |
+
(Only available if optional MPI support was enabled at compile-time.)
|
| 402 |
+
|
| 403 |
+
.TP
|
| 404 |
+
.BI \-\-seed " <n>"
|
| 405 |
+
Set the random number seed to
|
| 406 |
+
.IR <n> .
|
| 407 |
+
The default is 0, which makes the random number generator use
|
| 408 |
+
an arbitrary seed, so that different runs of
|
| 409 |
+
.B hmmsim
|
| 410 |
+
will almost certainly generate a different statistical sample.
|
| 411 |
+
For debugging, it is useful to force reproducible results, by
|
| 412 |
+
fixing a random number seed.
|
| 413 |
+
|
| 414 |
+
|
| 415 |
+
|
| 416 |
+
.SH EXPERIMENTAL OPTIONS
|
| 417 |
+
|
| 418 |
+
These options were used in a small variety of different exploratory
|
| 419 |
+
experiments.
|
| 420 |
+
|
| 421 |
+
.TP
|
| 422 |
+
.B \-\-bgflat
|
| 423 |
+
Set the background residue distribution to a uniform distribution,
|
| 424 |
+
both for purposes of the null model used in calculating scores, and
|
| 425 |
+
for generating the random sequences. The default is to use a standard
|
| 426 |
+
amino acid background frequency distribution.
|
| 427 |
+
|
| 428 |
+
.TP
|
| 429 |
+
.B \-\-bgcomp
|
| 430 |
+
Set the background residue distribution to the mean composition of the
|
| 431 |
+
profile. This was used in exploring some of the effects of biased
|
| 432 |
+
composition.
|
| 433 |
+
|
| 434 |
+
.TP
|
| 435 |
+
.B \-\-x\-no\-lengthmodel
|
| 436 |
+
Turn the H3 target sequence length model off. Set the self-transitions
|
| 437 |
+
for N,C,J and the null model to 350/351 instead; this emulates HMMER2.
|
| 438 |
+
Not a good idea in general. This was used to demonstrate one of the
|
| 439 |
+
main H2 vs. H3 differences.
|
| 440 |
+
|
| 441 |
+
.TP
|
| 442 |
+
.BI \-\-nu " <x>"
|
| 443 |
+
Set the nu parameter for the MSV algorithm -- the expected number of
|
| 444 |
+
ungapped local alignments per target sequence. The default is 2.0,
|
| 445 |
+
corresponding to a E->J transition probability of 0.5. This was used
|
| 446 |
+
to test whether varying nu has significant effect on result (it
|
| 447 |
+
doesn't seem to, within reason).
|
| 448 |
+
This option
|
| 449 |
+
only works if
|
| 450 |
+
.B \-\-msv
|
| 451 |
+
is selected (it only affects MSV),
|
| 452 |
+
and it will not work with
|
| 453 |
+
.B \-\-fast
|
| 454 |
+
(because the optimized implementations are hardwired to assume nu=2.0).
|
| 455 |
+
|
| 456 |
+
.TP
|
| 457 |
+
.BI \-\-pthresh " <x>"
|
| 458 |
+
Set the filter P-value threshold to use in generating filter power
|
| 459 |
+
files with
|
| 460 |
+
.BR \-\-ffile .
|
| 461 |
+
The default is 0.02 (which would be appropriate for testing MSV
|
| 462 |
+
scores, since this is the default MSV filter threshold in H3's
|
| 463 |
+
acceleration pipeline.) Other appropriate choices (matching defaults
|
| 464 |
+
in the acceleration pipeline) would be 0.001 for
|
| 465 |
+
Viterbi, and 1e-5 for Forward.
|
| 466 |
+
|
| 467 |
+
|
| 468 |
+
|
| 469 |
+
|
| 470 |
+
|
| 471 |
+
.SH SEE ALSO
|
| 472 |
+
|
| 473 |
+
See
|
| 474 |
+
.BR hmmer (1)
|
| 475 |
+
for a master man page with a list of all the individual man pages
|
| 476 |
+
for programs in the HMMER package.
|
| 477 |
+
|
| 478 |
+
.PP
|
| 479 |
+
For complete documentation, see the user guide that came with your
|
| 480 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 481 |
+
(http://hmmer.org/).
|
| 482 |
+
|
| 483 |
+
|
| 484 |
+
|
| 485 |
+
.SH COPYRIGHT
|
| 486 |
+
|
| 487 |
+
.nf
|
| 488 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 489 |
+
Freely distributed under the BSD open source license.
|
| 490 |
+
.fi
|
| 491 |
+
|
| 492 |
+
For additional information on copyright and licensing, see the file
|
| 493 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 494 |
+
web page
|
| 495 |
+
(http://hmmer.org/).
|
| 496 |
+
|
| 497 |
+
|
| 498 |
+
.SH AUTHOR
|
| 499 |
+
|
| 500 |
+
.nf
|
| 501 |
+
http://eddylab.org
|
| 502 |
+
.fi
|
| 503 |
+
|
| 504 |
+
|
| 505 |
+
|
| 506 |
+
|
| 507 |
+
|
| 508 |
+
|
| 509 |
+
|
| 510 |
+
|
| 511 |
+
|
| 512 |
+
|
| 513 |
+
|
| 514 |
+
|
| 515 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/jackhmmer.1
ADDED
|
@@ -0,0 +1,808 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "jackhmmer" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
jackhmmer \- iteratively search sequence(s) against a sequence database
|
| 5 |
+
|
| 6 |
+
.SH SYNOPSIS
|
| 7 |
+
.B jackhmmer
|
| 8 |
+
[\fIoptions\fR]
|
| 9 |
+
.I seqfile
|
| 10 |
+
.I seqdb
|
| 11 |
+
|
| 12 |
+
.SH DESCRIPTION
|
| 13 |
+
|
| 14 |
+
.PP
|
| 15 |
+
.B jackhmmer
|
| 16 |
+
iteratively searches each query sequence in
|
| 17 |
+
.I seqfile
|
| 18 |
+
against the target sequence(s) in
|
| 19 |
+
.IR seqdb .
|
| 20 |
+
The first iteration is identical to a
|
| 21 |
+
.B phmmer
|
| 22 |
+
search.
|
| 23 |
+
For the next iteration,
|
| 24 |
+
a multiple alignment of the query together with all target sequences
|
| 25 |
+
satisfying
|
| 26 |
+
inclusion thresholds
|
| 27 |
+
is assembled, a profile is constructed from this alignment
|
| 28 |
+
(identical to using
|
| 29 |
+
.B hmmbuild
|
| 30 |
+
on the alignment), and profile search of the
|
| 31 |
+
.I seqdb
|
| 32 |
+
is done (identical to an
|
| 33 |
+
.B hmmsearch
|
| 34 |
+
with the profile).
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
.PP
|
| 38 |
+
The query
|
| 39 |
+
.I seqfile
|
| 40 |
+
may be '\-' (a dash character), in which case
|
| 41 |
+
the query sequences are read from a stdin pipe instead of from a
|
| 42 |
+
file.
|
| 43 |
+
|
| 44 |
+
The
|
| 45 |
+
.I seqdb
|
| 46 |
+
needs to be a 'normal' sequence file. It cannot be read from a stdin stream, because
|
| 47 |
+
.B jackhmmer
|
| 48 |
+
needs to do multiple passes over the database. It cannot be a
|
| 49 |
+
compressed (gzipped) file either, because we treat gzipped files
|
| 50 |
+
essentially as stdin streams, calling an external decompression
|
| 51 |
+
program.
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
.PP
|
| 55 |
+
The output format is designed to be human-readable, but is often so
|
| 56 |
+
voluminous that reading it is impractical, and parsing it is a pain. The
|
| 57 |
+
.B \-\-tblout
|
| 58 |
+
and
|
| 59 |
+
.B \-\-domtblout
|
| 60 |
+
options save output in simple tabular formats that are concise and
|
| 61 |
+
easier to parse.
|
| 62 |
+
The
|
| 63 |
+
.B \-o
|
| 64 |
+
option allows redirecting the main output, including throwing it away
|
| 65 |
+
in /dev/null.
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
.SH OPTIONS
|
| 69 |
+
|
| 70 |
+
.TP
|
| 71 |
+
.B \-h
|
| 72 |
+
Help; print a brief reminder of command line usage and all available
|
| 73 |
+
options.
|
| 74 |
+
|
| 75 |
+
.TP
|
| 76 |
+
.BI \-N " <n>"
|
| 77 |
+
Set the maximum number of iterations to
|
| 78 |
+
.IR <n> .
|
| 79 |
+
The default is 5. If N=1, the result is equivalent to a
|
| 80 |
+
.B phmmer
|
| 81 |
+
search.
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
.SH OPTIONS CONTROLLING OUTPUT
|
| 87 |
+
|
| 88 |
+
By default, output for each iteration appears on stdout in a somewhat
|
| 89 |
+
human readable, somewhat parseable format. These options allow
|
| 90 |
+
redirecting that output or saving additional kinds of output to files,
|
| 91 |
+
including checkpoint files for each iteration.
|
| 92 |
+
|
| 93 |
+
.TP
|
| 94 |
+
.BI \-o " <f>"
|
| 95 |
+
Direct the human-readable output to a file
|
| 96 |
+
.IR <f> .
|
| 97 |
+
|
| 98 |
+
.TP
|
| 99 |
+
.BI \-A " <f>"
|
| 100 |
+
After the final iteration, save an annotated multiple alignment of all
|
| 101 |
+
hits satisfying inclusion thresholds (also including the original query) to
|
| 102 |
+
.I <f>
|
| 103 |
+
in Stockholm format.
|
| 104 |
+
|
| 105 |
+
.TP
|
| 106 |
+
.BI \-\-tblout " <f>"
|
| 107 |
+
After the final iteration, save a tabular summary of top sequence hits
|
| 108 |
+
to
|
| 109 |
+
.I <f>
|
| 110 |
+
in a readily parseable, columnar, whitespace-delimited format.
|
| 111 |
+
|
| 112 |
+
.TP
|
| 113 |
+
.BI \-\-domtblout " <f>"
|
| 114 |
+
After the final iteration, save a tabular summary of top domain hits
|
| 115 |
+
to
|
| 116 |
+
.I <f>
|
| 117 |
+
in a readily parseable, columnar, whitespace-delimited format.
|
| 118 |
+
|
| 119 |
+
.TP
|
| 120 |
+
.BI \-\-chkhmm " prefix"
|
| 121 |
+
At the start of each iteration, checkpoint the query HMM, saving it
|
| 122 |
+
to a file named
|
| 123 |
+
\fIprefix\fR\fB-\fR\fIn\fR\fB.hmm\fR
|
| 124 |
+
where
|
| 125 |
+
.I n
|
| 126 |
+
is the iteration number (from 1..N).
|
| 127 |
+
|
| 128 |
+
.TP
|
| 129 |
+
.BI \-\-chkali " prefix"
|
| 130 |
+
At the end of each iteration, checkpoint an alignment of all
|
| 131 |
+
domains satisfying inclusion thresholds (e.g. what will become the
|
| 132 |
+
query HMM for the next iteration),
|
| 133 |
+
saving it
|
| 134 |
+
to a file named
|
| 135 |
+
\fIprefix\fR\fB-\fR\fIn\fR\fB.sto\fR
|
| 136 |
+
in Stockholm format,
|
| 137 |
+
where
|
| 138 |
+
.I n
|
| 139 |
+
is the iteration number (from 1..N).
|
| 140 |
+
|
| 141 |
+
.TP
|
| 142 |
+
.B \-\-acc
|
| 143 |
+
Use accessions instead of names in the main output, where available
|
| 144 |
+
for profiles and/or sequences.
|
| 145 |
+
|
| 146 |
+
.TP
|
| 147 |
+
.B \-\-noali
|
| 148 |
+
Omit the alignment section from the main output. This can greatly
|
| 149 |
+
reduce the output volume.
|
| 150 |
+
|
| 151 |
+
.TP
|
| 152 |
+
.B \-\-notextw
|
| 153 |
+
Unlimit the length of each line in the main output. The default
|
| 154 |
+
is a limit of 120 characters per line, which helps in displaying
|
| 155 |
+
the output cleanly on terminals and in editors, but can truncate
|
| 156 |
+
target profile description lines.
|
| 157 |
+
|
| 158 |
+
.TP
|
| 159 |
+
.BI \-\-textw " <n>"
|
| 160 |
+
Set the main output's line length limit to
|
| 161 |
+
.I <n>
|
| 162 |
+
characters per line. The default is 120.
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
.SH OPTIONS CONTROLLING SINGLE SEQUENCE SCORING (FIRST ITERATION)
|
| 170 |
+
|
| 171 |
+
By default, the first iteration uses a search model constructed from a
|
| 172 |
+
single query sequence. This model is constructed using a standard
|
| 173 |
+
20x20 substitution matrix for residue probabilities, and two
|
| 174 |
+
additional parameters for position-independent gap open and gap extend
|
| 175 |
+
probabilities. These options allow the default single-sequence scoring
|
| 176 |
+
parameters to be changed.
|
| 177 |
+
|
| 178 |
+
.TP
|
| 179 |
+
.BI \-\-popen " <x>"
|
| 180 |
+
Set the gap open probability for a single sequence query model to
|
| 181 |
+
.IR <x> .
|
| 182 |
+
The default is 0.02.
|
| 183 |
+
.I <x>
|
| 184 |
+
must be >= 0 and < 0.5.
|
| 185 |
+
|
| 186 |
+
.TP
|
| 187 |
+
.BI \-\-pextend " <x>"
|
| 188 |
+
Set the gap extend probability for a single sequence query model to
|
| 189 |
+
.IR <x> .
|
| 190 |
+
The default is 0.4.
|
| 191 |
+
.I <x>
|
| 192 |
+
must be >= 0 and < 1.0.
|
| 193 |
+
|
| 194 |
+
.TP
|
| 195 |
+
.BI \-\-mx " <s>"
|
| 196 |
+
Obtain residue alignment probabilities from the built-in
|
| 197 |
+
substitution matrix named
|
| 198 |
+
.IR <s> .
|
| 199 |
+
Several standard matrices are built-in, and do not need to be
|
| 200 |
+
read from files.
|
| 201 |
+
The matrix name
|
| 202 |
+
.I <s>
|
| 203 |
+
can be
|
| 204 |
+
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
|
| 205 |
+
or BLOSUM90.
|
| 206 |
+
Only one of the
|
| 207 |
+
.B \-\-mx
|
| 208 |
+
and
|
| 209 |
+
.B \-\-mxfile
|
| 210 |
+
options may be used.
|
| 211 |
+
|
| 212 |
+
.TP
|
| 213 |
+
.BI \-\-mxfile " mxfile"
|
| 214 |
+
Obtain residue alignment probabilities from the substitution matrix
|
| 215 |
+
in file
|
| 216 |
+
.IR mxfile .
|
| 217 |
+
The default score matrix is BLOSUM62 (this matrix is internal to
|
| 218 |
+
HMMER and does not have to be available as a file).
|
| 219 |
+
The format of a substitution matrix
|
| 220 |
+
.I mxfile
|
| 221 |
+
is the standard format accepted by BLAST, FASTA, and other sequence
|
| 222 |
+
analysis software.
|
| 223 |
+
See
|
| 224 |
+
.B ftp.ncbi.nlm.nih.gov/blast/matrices/
|
| 225 |
+
for example files. (The only
|
| 226 |
+
exception: we require matrices to be square, so for DNA, use files
|
| 227 |
+
like NCBI's NUC.4.4, not NUC.4.2.)
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
.SH OPTIONS CONTROLLING REPORTING THRESHOLDS
|
| 231 |
+
|
| 232 |
+
Reporting thresholds control which hits are reported in output files
|
| 233 |
+
(the main output,
|
| 234 |
+
.BR \-\-tblout ,
|
| 235 |
+
and
|
| 236 |
+
.BR \-\-domtblout ).
|
| 237 |
+
In each iteration, sequence hits and domain hits are ranked by
|
| 238 |
+
statistical significance (E-value) and output is generated in two
|
| 239 |
+
sections called per-target and per-domain output. In per-target
|
| 240 |
+
output, by default, all sequence hits with an E-value <= 10 are
|
| 241 |
+
reported. In the per-domain output, for each target that has passed
|
| 242 |
+
per-target reporting thresholds, all domains satisfying per-domain
|
| 243 |
+
reporting thresholds are reported. By default, these are domains with
|
| 244 |
+
conditional E-values of <= 10. The following options allow you to
|
| 245 |
+
change the default E-value reporting thresholds, or to use bit score
|
| 246 |
+
thresholds instead.
|
| 247 |
+
|
| 248 |
+
|
| 249 |
+
.TP
|
| 250 |
+
.BI \-E " <x>"
|
| 251 |
+
Report sequences with E-values <=
|
| 252 |
+
.I <x>
|
| 253 |
+
in per-sequence output. The default is 10.0.
|
| 254 |
+
|
| 255 |
+
.TP
|
| 256 |
+
.BI \-T " <x>"
|
| 257 |
+
Use a bit score threshold for per-sequence output instead of an
|
| 258 |
+
E-value threshold (any setting of
|
| 259 |
+
.B \-E
|
| 260 |
+
is ignored). Report sequences with a bit score of >=
|
| 261 |
+
.IR <x> .
|
| 262 |
+
By default this option is unset.
|
| 263 |
+
|
| 264 |
+
.TP
|
| 265 |
+
.BI \-Z " <x>"
|
| 266 |
+
Declare the total size of the database to be
|
| 267 |
+
.I <x>
|
| 268 |
+
sequences, for purposes of E-value calculation.
|
| 269 |
+
Normally E-values are calculated relative to the size of the database
|
| 270 |
+
you actually searched (e.g. the number of sequences in
|
| 271 |
+
.IR target_seqdb ).
|
| 272 |
+
In some cases (for instance, if you've split your
|
| 273 |
+
target sequence database into multiple files for parallelization of
|
| 274 |
+
your search), you may know better what the actual size of your search
|
| 275 |
+
space is.
|
| 276 |
+
|
| 277 |
+
.TP
|
| 278 |
+
.BI \-\-domE " <x>"
|
| 279 |
+
Report domains with conditional E-values <=
|
| 280 |
+
.I <x>
|
| 281 |
+
in per-domain output, in addition to the top-scoring
|
| 282 |
+
domain per significant sequence hit. The default is 10.0.
|
| 283 |
+
|
| 284 |
+
.TP
|
| 285 |
+
.BI \-\-domT " <x>"
|
| 286 |
+
Use a bit score threshold for per-domain output instead of an
|
| 287 |
+
E-value threshold (any setting of
|
| 288 |
+
.B \-\-domE
|
| 289 |
+
is ignored). Report domains with a bit score of >=
|
| 290 |
+
.I <x>
|
| 291 |
+
in per-domain output, in addition to the top-scoring domain per
|
| 292 |
+
significant sequence hit. By default this option is unset.
|
| 293 |
+
|
| 294 |
+
.TP
|
| 295 |
+
.BI \-\-domZ " <x>"
|
| 296 |
+
Declare the number of significant sequences to be
|
| 297 |
+
.I <x>
|
| 298 |
+
sequences, for purposes of conditional E-value calculation for
|
| 299 |
+
additional domain significance.
|
| 300 |
+
Normally conditional E-values are calculated relative to the number of
|
| 301 |
+
sequences passing per-sequence reporting threshold.
|
| 302 |
+
|
| 303 |
+
|
| 304 |
+
.SH OPTIONS CONTROLLING INCLUSION THRESHOLDS
|
| 305 |
+
|
| 306 |
+
Inclusion thresholds control which hits are included in the multiple
|
| 307 |
+
alignment and profile constructed for the next search iteration.
|
| 308 |
+
By default,
|
| 309 |
+
a sequence must have a per-sequence
|
| 310 |
+
E-value of <= 0.001 (see
|
| 311 |
+
.B \-E
|
| 312 |
+
option) to be included, and any additional domains in it besides the
|
| 313 |
+
top-scoring one must have a conditional E-value of <= 0.001 (see
|
| 314 |
+
.B \-\-domE
|
| 315 |
+
option). The difference between reporting thresholds and inclusion
|
| 316 |
+
thresholds is that inclusion thresholds control which hits actually
|
| 317 |
+
get used in the next iteration (or the final output multiple alignment
|
| 318 |
+
if the
|
| 319 |
+
.B \-A
|
| 320 |
+
option is used), whereas reporting thresholds control what you see in
|
| 321 |
+
output. Reporting thresholds are generally more loose so you can see
|
| 322 |
+
borderline hits in the top of the noise that might be of interest.
|
| 323 |
+
|
| 324 |
+
.TP
|
| 325 |
+
.BI \-\-incE " <x>"
|
| 326 |
+
Include sequences with E-values <=
|
| 327 |
+
.I <x>
|
| 328 |
+
in subsequent iteration or final
|
| 329 |
+
alignment output by
|
| 330 |
+
.BR \-A .
|
| 331 |
+
The default is 0.001.
|
| 332 |
+
|
| 333 |
+
.TP
|
| 334 |
+
.BI \-\-incT " <x>"
|
| 335 |
+
Use a bit score threshold for per-sequence inclusion instead of an
|
| 336 |
+
E-value threshold (any setting of
|
| 337 |
+
.B \-\-incE
|
| 338 |
+
is ignored). Include sequences with a bit score of >=
|
| 339 |
+
.IR <x> .
|
| 340 |
+
By default this option is unset.
|
| 341 |
+
|
| 342 |
+
.TP
|
| 343 |
+
.BI \-\-incdomE " <x>"
|
| 344 |
+
Include domains with conditional E-values <=
|
| 345 |
+
.I <x>
|
| 346 |
+
in subsequent iteration or final alignment output by
|
| 347 |
+
.BR \-A ,
|
| 348 |
+
in addition to the top-scoring
|
| 349 |
+
domain per significant sequence hit.
|
| 350 |
+
The default is 0.001.
|
| 351 |
+
|
| 352 |
+
.TP
|
| 353 |
+
.BI \-\-incdomT " <x>"
|
| 354 |
+
Use a bit score threshold for per-domain inclusion instead of an
|
| 355 |
+
E-value threshold (any setting of
|
| 356 |
+
.B \-\-incdomE
|
| 357 |
+
is ignored). Include domains with a bit score of >=
|
| 358 |
+
.IR <x> .
|
| 359 |
+
By default this option is unset.
|
| 360 |
+
|
| 361 |
+
|
| 362 |
+
|
| 363 |
+
.SH OPTIONS CONTROLLING ACCELERATION HEURISTICS
|
| 364 |
+
|
| 365 |
+
HMMER3 searches are accelerated in a three-step filter pipeline: the
|
| 366 |
+
MSV filter, the Viterbi filter, and the Forward filter. The first
|
| 367 |
+
filter is the fastest and most approximate; the last is the full
|
| 368 |
+
Forward scoring algorithm, slowest but most accurate. There is also a
|
| 369 |
+
bias filter step between MSV and Viterbi. Targets that pass all the
|
| 370 |
+
steps in the acceleration pipeline are then subjected to
|
| 371 |
+
postprocessing -- domain identification and scoring using the
|
| 372 |
+
Forward/Backward algorithm.
|
| 373 |
+
|
| 374 |
+
Essentially the only free parameters that control HMMER's heuristic
|
| 375 |
+
filters are the P-value thresholds controlling the expected fraction
|
| 376 |
+
of nonhomologous sequences that pass the filters. Setting the default
|
| 377 |
+
thresholds higher will pass a higher proportion of nonhomologous
|
| 378 |
+
sequence, increasing sensitivity at the expense of speed; conversely,
|
| 379 |
+
setting lower P-value thresholds will pass a smaller proportion,
|
| 380 |
+
decreasing sensitivity and increasing speed. Setting a filter's
|
| 381 |
+
P-value threshold to 1.0 means it will passing all sequences, and
|
| 382 |
+
effectively disables the filter.
|
| 383 |
+
|
| 384 |
+
Changing filter thresholds only removes or includes targets from
|
| 385 |
+
consideration; changing filter thresholds does not alter bit scores,
|
| 386 |
+
E-values, or alignments, all of which are determined solely in
|
| 387 |
+
postprocessing.
|
| 388 |
+
|
| 389 |
+
.TP
|
| 390 |
+
.B \-\-max
|
| 391 |
+
Maximum sensitivity. Turn off all filters, including the bias filter,
|
| 392 |
+
and run full Forward/Backward postprocessing on every target. This
|
| 393 |
+
increases sensitivity slightly, at a large cost in speed.
|
| 394 |
+
|
| 395 |
+
.TP
|
| 396 |
+
.BI \-\-F1 " <x>"
|
| 397 |
+
First filter threshold; set the P-value threshold for the MSV filter
|
| 398 |
+
step. The default is 0.02, meaning that roughly 2% of the highest
|
| 399 |
+
scoring nonhomologous targets are expected to pass the filter.
|
| 400 |
+
|
| 401 |
+
.TP
|
| 402 |
+
.BI \-\-F2 " <x>"
|
| 403 |
+
Second filter threshold; set the P-value threshold for the Viterbi
|
| 404 |
+
filter step. The default is 0.001.
|
| 405 |
+
|
| 406 |
+
.TP
|
| 407 |
+
.BI \-\-F3 " <x>"
|
| 408 |
+
Third filter threshold; set the P-value threshold for the Forward
|
| 409 |
+
filter step. The default is 1e-5.
|
| 410 |
+
|
| 411 |
+
.TP
|
| 412 |
+
.B \-\-nobias
|
| 413 |
+
Turn off the bias filter. This increases sensitivity somewhat, but can
|
| 414 |
+
come at a high cost in speed, especially if the query has biased
|
| 415 |
+
residue composition (such as a repetitive sequence region, or if it is
|
| 416 |
+
a membrane protein with large regions of hydrophobicity). Without the
|
| 417 |
+
bias filter, too many sequences may pass the filter with biased
|
| 418 |
+
queries, leading to slower than expected performance as the
|
| 419 |
+
computationally intensive Forward/Backward algorithms shoulder an
|
| 420 |
+
abnormally heavy load.
|
| 421 |
+
|
| 422 |
+
|
| 423 |
+
|
| 424 |
+
.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION (LATER ITERATIONS)
|
| 425 |
+
|
| 426 |
+
.B jackhmmer
|
| 427 |
+
always includes your original query sequence in the alignment result
|
| 428 |
+
at every iteration, and consensus positions are always defined by that
|
| 429 |
+
query sequence. That is, a
|
| 430 |
+
.B jackhmmer
|
| 431 |
+
profile is always the same length as your original query, at every
|
| 432 |
+
iteration.
|
| 433 |
+
Therefore
|
| 434 |
+
.B jackhmmer
|
| 435 |
+
gives you less control over profile construction than
|
| 436 |
+
.B hmmbuild
|
| 437 |
+
does; it does not have the
|
| 438 |
+
.BR \-\-fast ,
|
| 439 |
+
or
|
| 440 |
+
.BR \-\-hand ,
|
| 441 |
+
or
|
| 442 |
+
.B \-\-symfrac
|
| 443 |
+
options.
|
| 444 |
+
The only profile construction option available in
|
| 445 |
+
.B jackhmmer
|
| 446 |
+
is
|
| 447 |
+
.BR \-\-fragthresh :
|
| 448 |
+
|
| 449 |
+
|
| 450 |
+
.TP
|
| 451 |
+
.BI \-\-fragthresh " <x>"
|
| 452 |
+
We only want to count terminal gaps as deletions if the aligned
|
| 453 |
+
sequence is known to be full-length, not if it is a fragment (for
|
| 454 |
+
instance, because only part of it was sequenced). HMMER uses a simple
|
| 455 |
+
rule to infer fragments: if the sequence length L is less than
|
| 456 |
+
or equal to a fraction
|
| 457 |
+
.I <x>
|
| 458 |
+
times the alignment length in columns,
|
| 459 |
+
then the sequence is handled as a fragment. The default is 0.5.
|
| 460 |
+
Setting
|
| 461 |
+
.B \-\-fragthresh 0
|
| 462 |
+
will define no (nonempty) sequence as a fragment; you might want to do
|
| 463 |
+
this if you know you've got a carefully curated alignment of full-length
|
| 464 |
+
sequences.
|
| 465 |
+
Setting
|
| 466 |
+
.B \-\-fragthresh 1
|
| 467 |
+
will define all sequences as fragments; you might want to do this if
|
| 468 |
+
you know your alignment is entirely composed of fragments, such as
|
| 469 |
+
translated short reads in metagenomic shotgun data.
|
| 470 |
+
|
| 471 |
+
|
| 472 |
+
|
| 473 |
+
.SH OPTIONS CONTROLLING RELATIVE WEIGHTS
|
| 474 |
+
|
| 475 |
+
Whenever a profile is built from a multiple alignment, HMMER uses an
|
| 476 |
+
ad hoc sequence weighting algorithm to downweight closely related
|
| 477 |
+
sequences and upweight distantly related ones. This has the effect of
|
| 478 |
+
making models less biased by uneven phylogenetic representation. For
|
| 479 |
+
example, two identical sequences would typically each receive half the
|
| 480 |
+
weight that one sequence would (and this is why
|
| 481 |
+
.B jackhmmer
|
| 482 |
+
isn't concerned about always including your original query sequence in
|
| 483 |
+
each iteration's alignment, even if it finds it again in the database
|
| 484 |
+
you're searching). These options control which algorithm gets used.
|
| 485 |
+
|
| 486 |
+
.TP
|
| 487 |
+
.B \-\-wpb
|
| 488 |
+
Use the Henikoff position-based sequence weighting scheme [Henikoff
|
| 489 |
+
and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default.
|
| 490 |
+
|
| 491 |
+
.TP
|
| 492 |
+
.B \-\-wgsc
|
| 493 |
+
Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et
|
| 494 |
+
al, J. Mol. Biol. 235:1067, 1994].
|
| 495 |
+
|
| 496 |
+
.TP
|
| 497 |
+
.B \-\-wblosum
|
| 498 |
+
Use the same clustering scheme that was used to weight data in
|
| 499 |
+
calculating BLOSUM substitution matrices [Henikoff and Henikoff,
|
| 500 |
+
Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
|
| 501 |
+
clustered at an identity threshold (default 0.62; see
|
| 502 |
+
.BR \-\-wid )
|
| 503 |
+
and within each cluster of c sequences, each sequence gets relative
|
| 504 |
+
weight 1/c.
|
| 505 |
+
|
| 506 |
+
.TP
|
| 507 |
+
.B \-\-wnone
|
| 508 |
+
No relative weights. All sequences are assigned uniform weight.
|
| 509 |
+
|
| 510 |
+
.TP
|
| 511 |
+
.BI \-\-wid " <x>"
|
| 512 |
+
Sets the identity threshold used by single-linkage clustering when
|
| 513 |
+
using
|
| 514 |
+
.BR \-\-wblosum .
|
| 515 |
+
Invalid with any other weighting scheme. Default is 0.62.
|
| 516 |
+
|
| 517 |
+
|
| 518 |
+
|
| 519 |
+
|
| 520 |
+
|
| 521 |
+
.SH OPTIONS CONTROLLING EFFECTIVE SEQUENCE NUMBER
|
| 522 |
+
|
| 523 |
+
After relative weights are determined, they are normalized to sum to a
|
| 524 |
+
total effective sequence number,
|
| 525 |
+
.IR eff_nseq .
|
| 526 |
+
This number may be the actual number of sequences in the alignment,
|
| 527 |
+
but it is almost always smaller than that.
|
| 528 |
+
The default entropy weighting method
|
| 529 |
+
(\fB\-\-eent\fR)
|
| 530 |
+
reduces the effective sequence
|
| 531 |
+
number to reduce the information content (relative entropy, or average
|
| 532 |
+
expected score on true homologs) per consensus position. The target
|
| 533 |
+
relative entropy is controlled by a two-parameter function, where the
|
| 534 |
+
two parameters are settable with
|
| 535 |
+
.B \-\-ere
|
| 536 |
+
and
|
| 537 |
+
.BR \-\-esigma .
|
| 538 |
+
|
| 539 |
+
.TP
|
| 540 |
+
.B \-\-eent
|
| 541 |
+
Adjust effective sequence number to achieve a specific relative entropy
|
| 542 |
+
per position (see
|
| 543 |
+
.BR \-\-ere ).
|
| 544 |
+
This is the default.
|
| 545 |
+
|
| 546 |
+
.TP
|
| 547 |
+
.B \-\-eclust
|
| 548 |
+
Set effective sequence number to the number of single-linkage clusters
|
| 549 |
+
at a specific identity threshold (see
|
| 550 |
+
.BR \-\-eid ).
|
| 551 |
+
This option is not recommended; it's for experiments evaluating
|
| 552 |
+
how much better
|
| 553 |
+
.B \-\-eent
|
| 554 |
+
is.
|
| 555 |
+
|
| 556 |
+
.TP
|
| 557 |
+
.B \-\-enone
|
| 558 |
+
Turn off effective sequence number determination and just use the
|
| 559 |
+
actual number of sequences. One reason you might want to do this is
|
| 560 |
+
to try to maximize the relative entropy/position of your model, which
|
| 561 |
+
may be useful for short models.
|
| 562 |
+
|
| 563 |
+
.TP
|
| 564 |
+
.BI \-\-eset " <x>"
|
| 565 |
+
Explicitly set the effective sequence number for all models to
|
| 566 |
+
.IR <x> .
|
| 567 |
+
|
| 568 |
+
.TP
|
| 569 |
+
.BI \-\-ere " <x>"
|
| 570 |
+
Set the minimum relative entropy/position target to
|
| 571 |
+
.IR <x> .
|
| 572 |
+
Requires
|
| 573 |
+
.BR \-\-eent .
|
| 574 |
+
Default depends on the sequence alphabet; for protein
|
| 575 |
+
sequences, it is 0.59 bits/position.
|
| 576 |
+
|
| 577 |
+
.TP
|
| 578 |
+
.BI \-\-esigma " <x>"
|
| 579 |
+
Sets the minimum relative entropy contributed by an entire
|
| 580 |
+
model alignment, over its whole length. This has the effect
|
| 581 |
+
of making short models have
|
| 582 |
+
higher relative entropy per position than
|
| 583 |
+
.B \-\-ere
|
| 584 |
+
alone would give. The default is 45.0 bits.
|
| 585 |
+
|
| 586 |
+
.TP
|
| 587 |
+
.BI \-\-eid " <x>"
|
| 588 |
+
Sets the fractional pairwise identity cutoff used by
|
| 589 |
+
single linkage clustering with the
|
| 590 |
+
.B \-\-eclust
|
| 591 |
+
option. The default is 0.62.
|
| 592 |
+
|
| 593 |
+
|
| 594 |
+
|
| 595 |
+
.SH OPTIONS CONTROLLING PRIORS
|
| 596 |
+
|
| 597 |
+
In profile construction, by default, weighted counts are converted to
|
| 598 |
+
mean posterior probability parameter estimates using mixture Dirichlet
|
| 599 |
+
priors. Default mixture Dirichlet prior parameters for protein models
|
| 600 |
+
and for nucleic acid (RNA and DNA) models are built in. The following
|
| 601 |
+
options allow you to override the default priors.
|
| 602 |
+
|
| 603 |
+
.TP
|
| 604 |
+
.B \-\-pnone
|
| 605 |
+
Don't use any priors. Probability parameters will simply be the
|
| 606 |
+
observed frequencies, after relative sequence weighting.
|
| 607 |
+
|
| 608 |
+
.TP
|
| 609 |
+
.B \-\-plaplace
|
| 610 |
+
Use a Laplace +1 prior in place of the default mixture Dirichlet
|
| 611 |
+
prior.
|
| 612 |
+
|
| 613 |
+
|
| 614 |
+
|
| 615 |
+
.SH OPTIONS CONTROLLING E-VALUE CALIBRATION
|
| 616 |
+
|
| 617 |
+
Estimating the location parameters for the expected score
|
| 618 |
+
distributions for MSV filter scores, Viterbi filter scores, and
|
| 619 |
+
Forward scores requires three short random sequence simulations.
|
| 620 |
+
|
| 621 |
+
.TP
|
| 622 |
+
.BI \-\-EmL " <n>"
|
| 623 |
+
Sets the sequence length in simulation that estimates the location
|
| 624 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 625 |
+
|
| 626 |
+
.TP
|
| 627 |
+
.BI \-\-EmN " <n>"
|
| 628 |
+
Sets the number of sequences in simulation that estimates the location
|
| 629 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 630 |
+
|
| 631 |
+
.TP
|
| 632 |
+
.BI \-\-EvL " <n>"
|
| 633 |
+
Sets the sequence length in simulation that estimates the location
|
| 634 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 635 |
+
|
| 636 |
+
.TP
|
| 637 |
+
.BI \-\-EvN " <n>"
|
| 638 |
+
Sets the number of sequences in simulation that estimates the location
|
| 639 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 640 |
+
|
| 641 |
+
.TP
|
| 642 |
+
.BI \-\-EfL " <n>"
|
| 643 |
+
Sets the sequence length in simulation that estimates the location
|
| 644 |
+
parameter tau for Forward E-values. Default is 100.
|
| 645 |
+
|
| 646 |
+
.TP
|
| 647 |
+
.BI \-\-EfN " <n>"
|
| 648 |
+
Sets the number of sequences in simulation that estimates the location
|
| 649 |
+
parameter tau for Forward E-values. Default is 200.
|
| 650 |
+
|
| 651 |
+
.TP
|
| 652 |
+
.BI \-\-Eft " <x>"
|
| 653 |
+
Sets the tail mass fraction to fit in the simulation that estimates
|
| 654 |
+
the location parameter tau for Forward evalues. Default is 0.04.
|
| 655 |
+
|
| 656 |
+
|
| 657 |
+
.SH OTHER OPTIONS
|
| 658 |
+
|
| 659 |
+
.TP
|
| 660 |
+
.B \-\-nonull2
|
| 661 |
+
Turn off the null2 score corrections for biased composition.
|
| 662 |
+
|
| 663 |
+
.TP
|
| 664 |
+
.BI \-Z " <x>"
|
| 665 |
+
Assert that the total number of targets in your searches is
|
| 666 |
+
.IR <x> ,
|
| 667 |
+
for the purposes of per-sequence E-value calculations,
|
| 668 |
+
rather than the actual number of targets seen.
|
| 669 |
+
|
| 670 |
+
.TP
|
| 671 |
+
.BI \-\-domZ " <x>"
|
| 672 |
+
Assert that the total number of targets in your searches is
|
| 673 |
+
.IR <x> ,
|
| 674 |
+
for the purposes of per-domain conditional E-value calculations,
|
| 675 |
+
rather than the number of targets that passed the reporting thresholds.
|
| 676 |
+
|
| 677 |
+
.TP
|
| 678 |
+
.BI \-\-seed " <n>"
|
| 679 |
+
Seed the random number generator with
|
| 680 |
+
.IR <n> ,
|
| 681 |
+
an integer >= 0.
|
| 682 |
+
If
|
| 683 |
+
.I <n>
|
| 684 |
+
is >0, any stochastic simulations will be reproducible; the same
|
| 685 |
+
command will give the same results.
|
| 686 |
+
If
|
| 687 |
+
.I <n>
|
| 688 |
+
is 0, the random number generator is seeded arbitrarily, and
|
| 689 |
+
stochastic simulations will vary from run to run of the same command.
|
| 690 |
+
The default seed is 42.
|
| 691 |
+
|
| 692 |
+
|
| 693 |
+
.TP
|
| 694 |
+
.BI \-\-qformat " <s>"
|
| 695 |
+
Assert that input query
|
| 696 |
+
.I seqfile
|
| 697 |
+
is in format
|
| 698 |
+
.IR <s> ,
|
| 699 |
+
bypassing format autodetection.
|
| 700 |
+
Common choices for
|
| 701 |
+
.I <s>
|
| 702 |
+
include:
|
| 703 |
+
.BR fasta ,
|
| 704 |
+
.BR embl ,
|
| 705 |
+
.BR genbank.
|
| 706 |
+
Alignment formats also work;
|
| 707 |
+
common choices include:
|
| 708 |
+
.BR stockholm ,
|
| 709 |
+
.BR a2m ,
|
| 710 |
+
.BR afa ,
|
| 711 |
+
.BR psiblast ,
|
| 712 |
+
.BR clustal ,
|
| 713 |
+
.BR phylip .
|
| 714 |
+
.B jackhmmer
|
| 715 |
+
always uses a single sequence query to start its search, so when the input
|
| 716 |
+
.I seqfile
|
| 717 |
+
is an alignment,
|
| 718 |
+
.B jackhmmer
|
| 719 |
+
reads it one unaligned query sequence at a time, not as an alignment.
|
| 720 |
+
For more information, and for codes for some less common formats,
|
| 721 |
+
see main documentation.
|
| 722 |
+
The string
|
| 723 |
+
.I <s>
|
| 724 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 725 |
+
|
| 726 |
+
.TP
|
| 727 |
+
.BI \-\-tformat " <s>"
|
| 728 |
+
Assert that the input target sequence
|
| 729 |
+
.I seqdb
|
| 730 |
+
is in format
|
| 731 |
+
.IR <s> .
|
| 732 |
+
See
|
| 733 |
+
.B \-\-qformat
|
| 734 |
+
above for accepted choices for
|
| 735 |
+
.IR <s> .
|
| 736 |
+
|
| 737 |
+
|
| 738 |
+
|
| 739 |
+
.TP
|
| 740 |
+
.BI \-\-cpu " <n>"
|
| 741 |
+
Set the number of parallel worker threads to
|
| 742 |
+
.IR <n> .
|
| 743 |
+
On multicore machines, the default is 2.
|
| 744 |
+
You can also control this number by setting an environment variable,
|
| 745 |
+
.IR HMMER_NCPU .
|
| 746 |
+
There is also a master thread, so the actual number of threads that
|
| 747 |
+
HMMER spawns is
|
| 748 |
+
.IR <n> +1.
|
| 749 |
+
|
| 750 |
+
This option is not available if HMMER was compiled with POSIX threads
|
| 751 |
+
support turned off.
|
| 752 |
+
|
| 753 |
+
|
| 754 |
+
|
| 755 |
+
.TP
|
| 756 |
+
.BI \-\-stall
|
| 757 |
+
For debugging the MPI master/worker version: pause after start, to
|
| 758 |
+
enable the developer to attach debuggers to the running master and
|
| 759 |
+
worker(s) processes. Send SIGCONT signal to release the pause.
|
| 760 |
+
(Under gdb:
|
| 761 |
+
.BR "(gdb) signal SIGCONT" )
|
| 762 |
+
(Only available if optional MPI support was enabled at compile-time.)
|
| 763 |
+
|
| 764 |
+
.TP
|
| 765 |
+
.BI \-\-mpi
|
| 766 |
+
Run under MPI control with master/worker parallelization (using
|
| 767 |
+
.BR mpirun ,
|
| 768 |
+
for example, or equivalent). Only available if optional MPI support
|
| 769 |
+
was enabled at compile-time.
|
| 770 |
+
|
| 771 |
+
|
| 772 |
+
|
| 773 |
+
|
| 774 |
+
|
| 775 |
+
.SH SEE ALSO
|
| 776 |
+
|
| 777 |
+
See
|
| 778 |
+
.BR hmmer (1)
|
| 779 |
+
for a master man page with a list of all the individual man pages
|
| 780 |
+
for programs in the HMMER package.
|
| 781 |
+
|
| 782 |
+
.PP
|
| 783 |
+
For complete documentation, see the user guide that came with your
|
| 784 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 785 |
+
(http://hmmer.org/).
|
| 786 |
+
|
| 787 |
+
|
| 788 |
+
|
| 789 |
+
.SH COPYRIGHT
|
| 790 |
+
|
| 791 |
+
.nf
|
| 792 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 793 |
+
Freely distributed under the BSD open source license.
|
| 794 |
+
.fi
|
| 795 |
+
|
| 796 |
+
For additional information on copyright and licensing, see the file
|
| 797 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 798 |
+
web page
|
| 799 |
+
(http://hmmer.org/).
|
| 800 |
+
|
| 801 |
+
|
| 802 |
+
.SH AUTHOR
|
| 803 |
+
|
| 804 |
+
.nf
|
| 805 |
+
http://eddylab.org
|
| 806 |
+
.fi
|
| 807 |
+
|
| 808 |
+
|
flax_model/alphafold3/_tools/hmmer/share/man/man1/phmmer.1
ADDED
|
@@ -0,0 +1,523 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.TH "phmmer" 1 "Aug 2023" "HMMER 3.4" "HMMER Manual"
|
| 2 |
+
|
| 3 |
+
.SH NAME
|
| 4 |
+
phmmer \- search protein sequence(s) against a protein sequence database
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
.SH SYNOPSIS
|
| 8 |
+
.B phmmer
|
| 9 |
+
[\fIoptions\fR]
|
| 10 |
+
.I seqfile
|
| 11 |
+
.I seqdb
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
.SH DESCRIPTION
|
| 15 |
+
|
| 16 |
+
.PP
|
| 17 |
+
.B phmmer
|
| 18 |
+
is used to search one or more query protein sequences against a protein sequence database.
|
| 19 |
+
For each query sequence in
|
| 20 |
+
.IR seqfile ,
|
| 21 |
+
use that sequence to search the target database of sequences in
|
| 22 |
+
.IR seqdb ,
|
| 23 |
+
and output ranked lists of the sequences with the most significant
|
| 24 |
+
matches to the query.
|
| 25 |
+
|
| 26 |
+
.PP
|
| 27 |
+
Either the query
|
| 28 |
+
.I seqfile
|
| 29 |
+
or the target
|
| 30 |
+
.I seqdb
|
| 31 |
+
may be '\-' (a dash character), in which case
|
| 32 |
+
the query sequences or target database input will be read from a <stdin> pipe instead of from a
|
| 33 |
+
file. Only one input source can come through <stdin>, not both.
|
| 34 |
+
An exception is that if the
|
| 35 |
+
.I seqfile
|
| 36 |
+
contains more than one query sequence, then
|
| 37 |
+
.I seqdb
|
| 38 |
+
cannot come from <stdin>, because we can't rewind the
|
| 39 |
+
streaming target database to search it with another query.
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
.PP
|
| 43 |
+
The output format is designed to be human-readable, but is often so
|
| 44 |
+
voluminous that reading it is impractical, and parsing it is a pain. The
|
| 45 |
+
.B \-\-tblout
|
| 46 |
+
and
|
| 47 |
+
.B \-\-domtblout
|
| 48 |
+
options save output in simple tabular formats that are concise and
|
| 49 |
+
easier to parse.
|
| 50 |
+
The
|
| 51 |
+
.B \-o
|
| 52 |
+
option allows redirecting the main output, including throwing it away
|
| 53 |
+
in /dev/null.
|
| 54 |
+
|
| 55 |
+
.SH OPTIONS
|
| 56 |
+
|
| 57 |
+
.TP
|
| 58 |
+
.B \-h
|
| 59 |
+
Help; print a brief reminder of command line usage and all available
|
| 60 |
+
options.
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
.SH OPTIONS FOR CONTROLLING OUTPUT
|
| 64 |
+
|
| 65 |
+
.TP
|
| 66 |
+
.BI \-o " <f>"
|
| 67 |
+
Direct the main human-readable output to a file
|
| 68 |
+
.I <f>
|
| 69 |
+
instead of the default stdout.
|
| 70 |
+
|
| 71 |
+
.TP
|
| 72 |
+
.BI \-A " <f>"
|
| 73 |
+
Save a multiple alignment of all significant hits (those satisfying
|
| 74 |
+
inclusion thresholds)
|
| 75 |
+
to the file
|
| 76 |
+
.I <f>
|
| 77 |
+
in Stockholm format.
|
| 78 |
+
|
| 79 |
+
.TP
|
| 80 |
+
.BI \-\-tblout " <f>"
|
| 81 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 82 |
+
per-target output, with one data line per homologous target sequence
|
| 83 |
+
found.
|
| 84 |
+
|
| 85 |
+
.TP
|
| 86 |
+
.BI \-\-domtblout " <f>"
|
| 87 |
+
Save a simple tabular (space-delimited) file summarizing the
|
| 88 |
+
per-domain output, with one data line per homologous domain
|
| 89 |
+
detected in a query sequence for each homologous model.
|
| 90 |
+
|
| 91 |
+
.TP
|
| 92 |
+
.B \-\-acc
|
| 93 |
+
Use accessions instead of names in the main output, where available
|
| 94 |
+
for profiles and/or sequences.
|
| 95 |
+
|
| 96 |
+
.TP
|
| 97 |
+
.B \-\-noali
|
| 98 |
+
Omit the alignment section from the main output. This can greatly
|
| 99 |
+
reduce the output volume.
|
| 100 |
+
|
| 101 |
+
.TP
|
| 102 |
+
.B \-\-notextw
|
| 103 |
+
Unlimit the length of each line in the main output. The default
|
| 104 |
+
is a limit of 120 characters per line, which helps in displaying
|
| 105 |
+
the output cleanly on terminals and in editors, but can truncate
|
| 106 |
+
target profile description lines.
|
| 107 |
+
|
| 108 |
+
.TP
|
| 109 |
+
.BI \-\-textw " <n>"
|
| 110 |
+
Set the main output's line length limit to
|
| 111 |
+
.I <n>
|
| 112 |
+
characters per line. The default is 120.
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
.SH OPTIONS CONTROLLING SCORING SYSTEM
|
| 117 |
+
|
| 118 |
+
The probability model in
|
| 119 |
+
.B phmmer
|
| 120 |
+
is constructed by inferring residue probabilities from a standard
|
| 121 |
+
20x20 substitution score matrix, plus two additional parameters for
|
| 122 |
+
position-independent gap open and gap extend probabilities.
|
| 123 |
+
|
| 124 |
+
.TP
|
| 125 |
+
.BI \-\-popen " <x>"
|
| 126 |
+
Set the gap open probability for a single sequence query model to
|
| 127 |
+
.IR <x> .
|
| 128 |
+
The default is 0.02.
|
| 129 |
+
.I <x>
|
| 130 |
+
must be >= 0 and < 0.5.
|
| 131 |
+
|
| 132 |
+
.TP
|
| 133 |
+
.BI \-\-pextend " <x>"
|
| 134 |
+
Set the gap extend probability for a single sequence query model to
|
| 135 |
+
.IR <x> .
|
| 136 |
+
The default is 0.4.
|
| 137 |
+
.I <x>
|
| 138 |
+
must be >= 0 and < 1.0.
|
| 139 |
+
|
| 140 |
+
.TP
|
| 141 |
+
.BI \-\-mx " <s>"
|
| 142 |
+
Obtain residue alignment probabilities from the built-in
|
| 143 |
+
substitution matrix named
|
| 144 |
+
.IR <s> .
|
| 145 |
+
Several standard matrices are built-in, and do not need to be
|
| 146 |
+
read from files.
|
| 147 |
+
The matrix name
|
| 148 |
+
.I <s>
|
| 149 |
+
can be
|
| 150 |
+
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
|
| 151 |
+
or BLOSUM90.
|
| 152 |
+
Only one of the
|
| 153 |
+
.B \-\-mx
|
| 154 |
+
and
|
| 155 |
+
.B \-\-mxfile
|
| 156 |
+
options may be used.
|
| 157 |
+
|
| 158 |
+
.TP
|
| 159 |
+
.BI \-\-mxfile " mxfile"
|
| 160 |
+
Obtain residue alignment probabilities from the substitution matrix
|
| 161 |
+
in file
|
| 162 |
+
.IR mxfile .
|
| 163 |
+
The default score matrix is BLOSUM62 (this matrix is internal to
|
| 164 |
+
HMMER and does not have to be available as a file).
|
| 165 |
+
The format of a substitution matrix
|
| 166 |
+
.I mxfile
|
| 167 |
+
is the standard format accepted by BLAST, FASTA, and other sequence
|
| 168 |
+
analysis software.
|
| 169 |
+
See ftp.ncbi.nlm.nih.gov/blast/matrices/ for example files. (The only
|
| 170 |
+
exception: we require matrices to be square, so for DNA, use files
|
| 171 |
+
like NCBI's NUC.4.4, not NUC.4.2.)
|
| 172 |
+
|
| 173 |
+
|
| 174 |
+
|
| 175 |
+
.SH OPTIONS CONTROLLING REPORTING THRESHOLDS
|
| 176 |
+
|
| 177 |
+
Reporting thresholds control which hits are reported in output files
|
| 178 |
+
(the main output,
|
| 179 |
+
.BR \-\-tblout ,
|
| 180 |
+
and
|
| 181 |
+
.BR \-\-domtblout ).
|
| 182 |
+
Sequence hits and domain hits are ranked by statistical significance
|
| 183 |
+
(E-value) and output is generated in two sections called per-target
|
| 184 |
+
and per-domain output. In per-target output, by default, all
|
| 185 |
+
sequence hits with an E-value <= 10 are reported. In the per-domain
|
| 186 |
+
output, for each target that has passed per-target reporting
|
| 187 |
+
thresholds, all domains satisfying per-domain reporting thresholds are
|
| 188 |
+
reported. By default, these are domains with conditional E-values of
|
| 189 |
+
<= 10. The following options allow you to change the default
|
| 190 |
+
E-value reporting thresholds, or to use bit score thresholds instead.
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
.TP
|
| 194 |
+
.BI \-E " <x>"
|
| 195 |
+
In the per-target output, report target sequences with an E-value of <=
|
| 196 |
+
.IR <x> .
|
| 197 |
+
The default is 10.0, meaning that on average, about 10 false positives
|
| 198 |
+
will be reported per query, so you can see the top of the noise
|
| 199 |
+
and decide for yourself if it's really noise.
|
| 200 |
+
|
| 201 |
+
.TP
|
| 202 |
+
.BI \-T " <x>"
|
| 203 |
+
Instead of thresholding per-profile output on E-value, instead
|
| 204 |
+
report target sequences with a bit score of >=
|
| 205 |
+
.IR <x> .
|
| 206 |
+
|
| 207 |
+
.TP
|
| 208 |
+
.BI \-\-domE " <x>"
|
| 209 |
+
In the per-domain output, for target sequences that have already satisfied
|
| 210 |
+
the per-profile reporting threshold, report individual domains
|
| 211 |
+
with a conditional E-value of <=
|
| 212 |
+
.IR <x> .
|
| 213 |
+
The default is 10.0.
|
| 214 |
+
A conditional E-value means the expected number of additional false
|
| 215 |
+
positive domains in the smaller search space of those comparisons that
|
| 216 |
+
already satisfied the per-target reporting threshold (and thus must
|
| 217 |
+
have at least one homologous domain already).
|
| 218 |
+
|
| 219 |
+
.TP
|
| 220 |
+
.BI \-\-domT " <x>"
|
| 221 |
+
Instead of thresholding per-domain output on E-value, instead
|
| 222 |
+
report domains with a bit score of >=
|
| 223 |
+
.IR <x> .
|
| 224 |
+
|
| 225 |
+
.SH OPTIONS CONTROLLING INCLUSION THRESHOLDS
|
| 226 |
+
|
| 227 |
+
Inclusion thresholds are stricter than reporting thresholds. They
|
| 228 |
+
control which hits are included in any output multiple alignment (the
|
| 229 |
+
.B \-A
|
| 230 |
+
option) and which domains are marked as significant ("!") as opposed
|
| 231 |
+
to questionable ("?") in domain output.
|
| 232 |
+
|
| 233 |
+
.TP
|
| 234 |
+
.BI \-\-incE " <x>"
|
| 235 |
+
Use an E-value of <=
|
| 236 |
+
.I <x>
|
| 237 |
+
as the per-target inclusion threshold.
|
| 238 |
+
The default is 0.01, meaning that on average, about 1 false positive
|
| 239 |
+
would be expected in every 100 searches with different query
|
| 240 |
+
sequences.
|
| 241 |
+
|
| 242 |
+
.TP
|
| 243 |
+
.BI \-\-incT " <x>"
|
| 244 |
+
Instead of using E-values for setting the inclusion threshold, instead
|
| 245 |
+
use a bit score of >=
|
| 246 |
+
.I <x>
|
| 247 |
+
as the per-target inclusion threshold.
|
| 248 |
+
By default this option is unset.
|
| 249 |
+
|
| 250 |
+
.TP
|
| 251 |
+
.BI \-\-incdomE " <x>"
|
| 252 |
+
Use a conditional E-value of <=
|
| 253 |
+
.I <x>
|
| 254 |
+
as the per-domain inclusion threshold, in targets that have already
|
| 255 |
+
satisfied the overall per-target inclusion threshold.
|
| 256 |
+
The default is 0.01.
|
| 257 |
+
|
| 258 |
+
.TP
|
| 259 |
+
.BI \-\-incdomT " <x>"
|
| 260 |
+
Instead of using E-values,
|
| 261 |
+
use a bit score of >=
|
| 262 |
+
.I <x>
|
| 263 |
+
as the per-domain inclusion threshold.
|
| 264 |
+
By default this option is unset.
|
| 265 |
+
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
|
| 269 |
+
.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE
|
| 270 |
+
|
| 271 |
+
HMMER3 searches are accelerated in a three-step filter pipeline: the
|
| 272 |
+
MSV filter, the Viterbi filter, and the Forward filter. The first
|
| 273 |
+
filter is the fastest and most approximate; the last is the full
|
| 274 |
+
Forward scoring algorithm, slowest but most accurate. There is also a
|
| 275 |
+
bias filter step between MSV and Viterbi. Targets that pass all the
|
| 276 |
+
steps in the acceleration pipeline are then subjected to
|
| 277 |
+
postprocessing -- domain identification and scoring using the
|
| 278 |
+
Forward/Backward algorithm.
|
| 279 |
+
|
| 280 |
+
Essentially the only free parameters that control HMMER's heuristic
|
| 281 |
+
filters are the P-value thresholds controlling the expected fraction
|
| 282 |
+
of nonhomologous sequences that pass the filters. Setting the default
|
| 283 |
+
thresholds higher will pass a higher proportion of nonhomologous
|
| 284 |
+
sequence, increasing sensitivity at the expense of speed; conversely,
|
| 285 |
+
setting lower P-value thresholds will pass a smaller proportion,
|
| 286 |
+
decreasing sensitivity and increasing speed. Setting a filter's
|
| 287 |
+
P-value threshold to 1.0 means it will passing all sequences, and
|
| 288 |
+
effectively disables the filter.
|
| 289 |
+
|
| 290 |
+
Changing filter thresholds only removes or includes targets from
|
| 291 |
+
consideration; changing filter thresholds does not alter bit scores,
|
| 292 |
+
E-values, or alignments, all of which are determined solely in
|
| 293 |
+
postprocessing.
|
| 294 |
+
|
| 295 |
+
.TP
|
| 296 |
+
.B \-\-max
|
| 297 |
+
Maximum sensitivity. Turn off all filters, including the bias filter,
|
| 298 |
+
and run full Forward/Backward postprocessing on every target. This
|
| 299 |
+
increases sensitivity slightly, at a large cost in speed.
|
| 300 |
+
|
| 301 |
+
.TP
|
| 302 |
+
.BI \-\-F1 " <x>"
|
| 303 |
+
First filter threshold; set the P-value threshold for the MSV filter
|
| 304 |
+
step. The default is 0.02, meaning that roughly 2% of the highest
|
| 305 |
+
scoring nonhomologous targets are expected to pass the filter.
|
| 306 |
+
|
| 307 |
+
.TP
|
| 308 |
+
.BI \-\-F2 " <x>"
|
| 309 |
+
Second filter threshold; set the P-value threshold for the Viterbi
|
| 310 |
+
filter step. The default is 0.001.
|
| 311 |
+
|
| 312 |
+
.TP
|
| 313 |
+
.BI \-\-F3 " <x>"
|
| 314 |
+
Third filter threshold; set the P-value threshold for the Forward
|
| 315 |
+
filter step. The default is 1e-5.
|
| 316 |
+
|
| 317 |
+
.TP
|
| 318 |
+
.B \-\-nobias
|
| 319 |
+
Turn off the bias filter. This increases sensitivity somewhat, but can
|
| 320 |
+
come at a high cost in speed, especially if the query has biased
|
| 321 |
+
residue composition (such as a repetitive sequence region, or if it is
|
| 322 |
+
a membrane protein with large regions of hydrophobicity). Without the
|
| 323 |
+
bias filter, too many sequences may pass the filter with biased
|
| 324 |
+
queries, leading to slower than expected performance as the
|
| 325 |
+
computationally intensive Forward/Backward algorithms shoulder an
|
| 326 |
+
abnormally heavy load.
|
| 327 |
+
|
| 328 |
+
|
| 329 |
+
|
| 330 |
+
|
| 331 |
+
.SH OPTIONS CONTROLLING E-VALUE CALIBRATION
|
| 332 |
+
|
| 333 |
+
Estimating the location parameters for the expected score
|
| 334 |
+
distributions for MSV filter scores, Viterbi filter scores, and
|
| 335 |
+
Forward scores requires three short random sequence simulations.
|
| 336 |
+
|
| 337 |
+
.TP
|
| 338 |
+
.BI \-\-EmL " <n>"
|
| 339 |
+
Sets the sequence length in simulation that estimates the location
|
| 340 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 341 |
+
|
| 342 |
+
.TP
|
| 343 |
+
.BI \-\-EmN " <n>"
|
| 344 |
+
Sets the number of sequences in simulation that estimates the location
|
| 345 |
+
parameter mu for MSV filter E-values. Default is 200.
|
| 346 |
+
|
| 347 |
+
.TP
|
| 348 |
+
.BI \-\-EvL " <n>"
|
| 349 |
+
Sets the sequence length in simulation that estimates the location
|
| 350 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 351 |
+
|
| 352 |
+
.TP
|
| 353 |
+
.BI \-\-EvN " <n>"
|
| 354 |
+
Sets the number of sequences in simulation that estimates the location
|
| 355 |
+
parameter mu for Viterbi filter E-values. Default is 200.
|
| 356 |
+
|
| 357 |
+
.TP
|
| 358 |
+
.BI \-\-EfL " <n>"
|
| 359 |
+
Sets the sequence length in simulation that estimates the location
|
| 360 |
+
parameter tau for Forward E-values. Default is 100.
|
| 361 |
+
|
| 362 |
+
.TP
|
| 363 |
+
.BI \-\-EfN " <n>"
|
| 364 |
+
Sets the number of sequences in simulation that estimates the location
|
| 365 |
+
parameter tau for Forward E-values. Default is 200.
|
| 366 |
+
|
| 367 |
+
.TP
|
| 368 |
+
.BI \-\-Eft " <x>"
|
| 369 |
+
Sets the tail mass fraction to fit in the simulation that estimates
|
| 370 |
+
the location parameter tau for Forward evalues. Default is 0.04.
|
| 371 |
+
|
| 372 |
+
|
| 373 |
+
|
| 374 |
+
|
| 375 |
+
.SH OTHER OPTIONS
|
| 376 |
+
|
| 377 |
+
.TP
|
| 378 |
+
.B \-\-nonull2
|
| 379 |
+
Turn off the null2 score corrections for biased composition.
|
| 380 |
+
|
| 381 |
+
.TP
|
| 382 |
+
.BI \-Z " <x>"
|
| 383 |
+
Assert that the total number of targets in your searches is
|
| 384 |
+
.IR <x> ,
|
| 385 |
+
for the purposes of per-sequence E-value calculations,
|
| 386 |
+
rather than the actual number of targets seen.
|
| 387 |
+
|
| 388 |
+
.TP
|
| 389 |
+
.BI \-\-domZ " <x>"
|
| 390 |
+
Assert that the total number of targets in your searches is
|
| 391 |
+
.IR <x> ,
|
| 392 |
+
for the purposes of per-domain conditional E-value calculations,
|
| 393 |
+
rather than the number of targets that passed the reporting thresholds.
|
| 394 |
+
|
| 395 |
+
.TP
|
| 396 |
+
.BI \-\-seed " <n>"
|
| 397 |
+
Seed the random number generator with
|
| 398 |
+
.IR <n> ,
|
| 399 |
+
an integer >= 0.
|
| 400 |
+
If
|
| 401 |
+
.I <n>
|
| 402 |
+
is >0, any stochastic simulations will be reproducible; the same
|
| 403 |
+
command will give the same results.
|
| 404 |
+
If
|
| 405 |
+
.I <n>
|
| 406 |
+
is 0, the random number generator is seeded arbitrarily, and
|
| 407 |
+
stochastic simulations will vary from run to run of the same command.
|
| 408 |
+
The default seed is 42.
|
| 409 |
+
|
| 410 |
+
.TP
|
| 411 |
+
.BI \-\-qformat " <s>"
|
| 412 |
+
Assert that input
|
| 413 |
+
.I seqfile
|
| 414 |
+
is in format
|
| 415 |
+
.IR <s> ,
|
| 416 |
+
bypassing format autodetection.
|
| 417 |
+
Common choices for
|
| 418 |
+
.I <s>
|
| 419 |
+
include:
|
| 420 |
+
.BR fasta ,
|
| 421 |
+
.BR embl ,
|
| 422 |
+
.BR genbank.
|
| 423 |
+
Alignment formats also work;
|
| 424 |
+
common choices include:
|
| 425 |
+
.BR stockholm ,
|
| 426 |
+
.BR a2m ,
|
| 427 |
+
.BR afa ,
|
| 428 |
+
.BR psiblast ,
|
| 429 |
+
.BR clustal ,
|
| 430 |
+
.BR phylip .
|
| 431 |
+
.B phmmer
|
| 432 |
+
always uses a single sequence query to start its search, so when the input
|
| 433 |
+
.I seqfile
|
| 434 |
+
is an alignment,
|
| 435 |
+
.B phmmer
|
| 436 |
+
reads it one unaligned query sequence at a time, not as an alignment.
|
| 437 |
+
For more information, and for codes for some less common formats,
|
| 438 |
+
see main documentation.
|
| 439 |
+
The string
|
| 440 |
+
.I <s>
|
| 441 |
+
is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work).
|
| 442 |
+
|
| 443 |
+
.BI \-\-tformat " <s>"
|
| 444 |
+
Assert that target sequence database
|
| 445 |
+
.I seqdb
|
| 446 |
+
is in format
|
| 447 |
+
.IR <s> ,
|
| 448 |
+
bypassing format autodetection.
|
| 449 |
+
See
|
| 450 |
+
.B \-\-qformat
|
| 451 |
+
above for list of accepted format codes for
|
| 452 |
+
.IR <s> .
|
| 453 |
+
|
| 454 |
+
|
| 455 |
+
.TP
|
| 456 |
+
.BI \-\-cpu " <n>"
|
| 457 |
+
Set the number of parallel worker threads to
|
| 458 |
+
.IR <n> .
|
| 459 |
+
On multicore machines, the default is 2.
|
| 460 |
+
You can also control this number by setting an environment variable,
|
| 461 |
+
.IR HMMER_NCPU .
|
| 462 |
+
There is also a master thread, so the actual number of threads that
|
| 463 |
+
HMMER spawns is
|
| 464 |
+
.IR <n> +1.
|
| 465 |
+
|
| 466 |
+
This option is not available if HMMER was compiled with POSIX threads
|
| 467 |
+
support turned off.
|
| 468 |
+
|
| 469 |
+
|
| 470 |
+
|
| 471 |
+
.TP
|
| 472 |
+
.BI \-\-stall
|
| 473 |
+
For debugging the MPI master/worker version: pause after start, to
|
| 474 |
+
enable the developer to attach debuggers to the running master and
|
| 475 |
+
worker(s) processes. Send SIGCONT signal to release the pause.
|
| 476 |
+
(Under gdb:
|
| 477 |
+
.BR "(gdb) signal SIGCONT" )
|
| 478 |
+
(Only available if optional MPI support was enabled at compile-time.)
|
| 479 |
+
|
| 480 |
+
.TP
|
| 481 |
+
.BI \-\-mpi
|
| 482 |
+
Run under MPI control with master/worker parallelization (using
|
| 483 |
+
.BR mpirun ,
|
| 484 |
+
for example, or equivalent). Only available if optional MPI support
|
| 485 |
+
was enabled at compile-time.
|
| 486 |
+
|
| 487 |
+
|
| 488 |
+
|
| 489 |
+
|
| 490 |
+
|
| 491 |
+
.SH SEE ALSO
|
| 492 |
+
|
| 493 |
+
See
|
| 494 |
+
.BR hmmer (1)
|
| 495 |
+
for a master man page with a list of all the individual man pages
|
| 496 |
+
for programs in the HMMER package.
|
| 497 |
+
|
| 498 |
+
.PP
|
| 499 |
+
For complete documentation, see the user guide that came with your
|
| 500 |
+
HMMER distribution (Userguide.pdf); or see the HMMER web page
|
| 501 |
+
(http://hmmer.org/).
|
| 502 |
+
|
| 503 |
+
|
| 504 |
+
|
| 505 |
+
.SH COPYRIGHT
|
| 506 |
+
|
| 507 |
+
.nf
|
| 508 |
+
Copyright (C) 2023 Howard Hughes Medical Institute.
|
| 509 |
+
Freely distributed under the BSD open source license.
|
| 510 |
+
.fi
|
| 511 |
+
|
| 512 |
+
For additional information on copyright and licensing, see the file
|
| 513 |
+
called COPYRIGHT in your HMMER source distribution, or see the HMMER
|
| 514 |
+
web page
|
| 515 |
+
(http://hmmer.org/).
|
| 516 |
+
|
| 517 |
+
|
| 518 |
+
.SH AUTHOR
|
| 519 |
+
|
| 520 |
+
.nf
|
| 521 |
+
http://eddylab.org
|
| 522 |
+
.fi
|
| 523 |
+
|
flax_model/alphafold3/data/__init__.py
ADDED
|
File without changes
|
flax_model/alphafold3/data/cpp/msa_profile_pybind.h
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
* Copyright 2024 DeepMind Technologies Limited
|
| 3 |
+
*
|
| 4 |
+
* AlphaFold 3 source code is licensed under CC BY-NC-SA 4.0. To view a copy of
|
| 5 |
+
* this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/
|
| 6 |
+
*
|
| 7 |
+
* To request access to the AlphaFold 3 model parameters, follow the process set
|
| 8 |
+
* out at https://github.com/google-deepmind/alphafold3. You may only use these
|
| 9 |
+
* if received directly from Google. Use is subject to terms of use available at
|
| 10 |
+
* https://github.com/google-deepmind/alphafold3/blob/main/WEIGHTS_TERMS_OF_USE.md
|
| 11 |
+
*/
|
| 12 |
+
|
| 13 |
+
#ifndef ALPHAFOLD3_SRC_ALPHAFOLD3_DATA_PYTHON_MSA_PROFILE_PYBIND_H_
|
| 14 |
+
#define ALPHAFOLD3_SRC_ALPHAFOLD3_DATA_PYTHON_MSA_PROFILE_PYBIND_H_
|
| 15 |
+
|
| 16 |
+
#include "pybind11/pybind11.h"
|
| 17 |
+
|
| 18 |
+
namespace alphafold3 {
|
| 19 |
+
|
| 20 |
+
void RegisterModuleMsaProfile(pybind11::module m);
|
| 21 |
+
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
#endif // ALPHAFOLD3_SRC_ALPHAFOLD3_DATA_PYTHON_MSA_PROFILE_PYBIND_H_
|
flax_model/alphafold3/data/featurisation.py
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""AlphaFold 3 featurisation pipeline."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Sequence
|
| 6 |
+
import datetime
|
| 7 |
+
import time
|
| 8 |
+
|
| 9 |
+
from flax_model.alphafold3.common import folding_input
|
| 10 |
+
from flax_model.alphafold3.constants import chemical_components
|
| 11 |
+
from flax_model.alphafold3.model import features
|
| 12 |
+
from flax_model.alphafold3.model.pipeline import pipeline
|
| 13 |
+
import numpy as np
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def validate_fold_input(fold_input: folding_input.Input):
|
| 17 |
+
"""Validates the fold input contains MSA and templates for featurisation."""
|
| 18 |
+
for i, chain in enumerate(fold_input.protein_chains):
|
| 19 |
+
if chain.unpaired_msa is None:
|
| 20 |
+
raise ValueError(f'Protein chain {i + 1} is missing unpaired MSA.')
|
| 21 |
+
if chain.paired_msa is None:
|
| 22 |
+
raise ValueError(f'Protein chain {i + 1} is missing paired MSA.')
|
| 23 |
+
if chain.templates is None:
|
| 24 |
+
raise ValueError(f'Protein chain {i + 1} is missing Templates.')
|
| 25 |
+
for i, chain in enumerate(fold_input.rna_chains):
|
| 26 |
+
if chain.unpaired_msa is None:
|
| 27 |
+
raise ValueError(f'RNA chain {i + 1} is missing unpaired MSA.')
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
def featurise_input(
|
| 31 |
+
fold_input: folding_input.Input,
|
| 32 |
+
ccd: chemical_components.Ccd,
|
| 33 |
+
buckets: Sequence[int] | None,
|
| 34 |
+
ref_max_modified_date: datetime.date | None = None,
|
| 35 |
+
conformer_max_iterations: int | None = None,
|
| 36 |
+
resolve_msa_overlaps: bool = True,
|
| 37 |
+
verbose: bool = False,
|
| 38 |
+
) -> Sequence[features.BatchDict]:
|
| 39 |
+
"""Featurise the folding input.
|
| 40 |
+
|
| 41 |
+
Args:
|
| 42 |
+
fold_input: The input to featurise.
|
| 43 |
+
ccd: The chemical components dictionary.
|
| 44 |
+
buckets: Bucket sizes to pad the data to, to avoid excessive re-compilation
|
| 45 |
+
of the model. If None, calculate the appropriate bucket size from the
|
| 46 |
+
number of tokens. If not None, must be a sequence of at least one integer,
|
| 47 |
+
in strictly increasing order. Will raise an error if the number of tokens
|
| 48 |
+
is more than the largest bucket size.
|
| 49 |
+
ref_max_modified_date: Optional maximum date that controls whether to allow
|
| 50 |
+
use of model coordinates for a chemical component from the CCD if RDKit
|
| 51 |
+
conformer generation fails and the component does not have ideal
|
| 52 |
+
coordinates set. Only for components that have been released before this
|
| 53 |
+
date the model coordinates can be used as a fallback.
|
| 54 |
+
conformer_max_iterations: Optional override for maximum number of iterations
|
| 55 |
+
to run for RDKit conformer search.
|
| 56 |
+
resolve_msa_overlaps: Whether to deduplicate unpaired MSA against paired
|
| 57 |
+
MSA. The default behaviour matches the method described in the AlphaFold 3
|
| 58 |
+
paper. Set this to false if providing custom paired MSA using the unpaired
|
| 59 |
+
MSA field to keep it exactly as is as deduplication against the paired MSA
|
| 60 |
+
could break the manually crafted pairing between MSA sequences.
|
| 61 |
+
verbose: Whether to print progress messages.
|
| 62 |
+
|
| 63 |
+
Returns:
|
| 64 |
+
A featurised batch for each rng_seed in the input.
|
| 65 |
+
"""
|
| 66 |
+
validate_fold_input(fold_input)
|
| 67 |
+
|
| 68 |
+
# Set up data pipeline for single use.
|
| 69 |
+
data_pipeline = pipeline.WholePdbPipeline(
|
| 70 |
+
config=pipeline.WholePdbPipeline.Config(
|
| 71 |
+
buckets=buckets,
|
| 72 |
+
ref_max_modified_date=ref_max_modified_date,
|
| 73 |
+
conformer_max_iterations=conformer_max_iterations,
|
| 74 |
+
resolve_msa_overlaps=resolve_msa_overlaps,
|
| 75 |
+
),
|
| 76 |
+
)
|
| 77 |
+
|
| 78 |
+
batches = []
|
| 79 |
+
for rng_seed in fold_input.rng_seeds:
|
| 80 |
+
featurisation_start_time = time.time()
|
| 81 |
+
if verbose:
|
| 82 |
+
print(f'Featurising data with seed {rng_seed}.')
|
| 83 |
+
batch = data_pipeline.process_item(
|
| 84 |
+
fold_input=fold_input,
|
| 85 |
+
ccd=ccd,
|
| 86 |
+
random_state=np.random.RandomState(rng_seed),
|
| 87 |
+
random_seed=rng_seed,
|
| 88 |
+
)
|
| 89 |
+
if verbose:
|
| 90 |
+
print(
|
| 91 |
+
f'Featurising data with seed {rng_seed} took'
|
| 92 |
+
f' {time.time() - featurisation_start_time:.2f} seconds.'
|
| 93 |
+
)
|
| 94 |
+
batches.append(batch)
|
| 95 |
+
|
| 96 |
+
return batches
|
flax_model/alphafold3/data/msa_config.py
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Genetic search config settings for data pipelines."""
|
| 4 |
+
|
| 5 |
+
import dataclasses
|
| 6 |
+
import datetime
|
| 7 |
+
from typing import Self
|
| 8 |
+
from flax_model.alphafold3.constants import mmcif_names
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
def _validate_chain_poly_type(chain_poly_type: str) -> None:
|
| 12 |
+
if chain_poly_type not in mmcif_names.STANDARD_POLYMER_CHAIN_TYPES:
|
| 13 |
+
raise ValueError(
|
| 14 |
+
'chain_poly_type must be one of'
|
| 15 |
+
f' {mmcif_names.STANDARD_POLYMER_CHAIN_TYPES}: {chain_poly_type}'
|
| 16 |
+
)
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 20 |
+
class DatabaseConfig:
|
| 21 |
+
"""Configuration for a database."""
|
| 22 |
+
|
| 23 |
+
name: str
|
| 24 |
+
path: str
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 28 |
+
class JackhmmerConfig:
|
| 29 |
+
"""Configuration for a jackhmmer run.
|
| 30 |
+
|
| 31 |
+
Attributes:
|
| 32 |
+
binary_path: Path to the binary of the msa tool.
|
| 33 |
+
database_config: Database configuration.
|
| 34 |
+
n_cpu: An integer with the number of CPUs to use.
|
| 35 |
+
n_iter: An integer with the number of database search iterations.
|
| 36 |
+
e_value: e-value for the database lookup.
|
| 37 |
+
z_value: The Z-value representing the database size in number of sequences
|
| 38 |
+
for E-value and domain E-value calculation. Must be set for sharded
|
| 39 |
+
databases.
|
| 40 |
+
dom_z_value: The Z-value representing the database size in number of
|
| 41 |
+
sequences for domain E-value calculation. Must be set for sharded
|
| 42 |
+
databases.
|
| 43 |
+
max_sequences: Max sequences to return in MSA.
|
| 44 |
+
max_parallel_shards: If given, the maximum number of shards to search
|
| 45 |
+
against in parallel. If None, one Jackhmmer instance will be run per
|
| 46 |
+
shard. Only applicable if the database is sharded.
|
| 47 |
+
max_threads: If given, the maximum number of threads used when running
|
| 48 |
+
sharded databases.
|
| 49 |
+
"""
|
| 50 |
+
|
| 51 |
+
binary_path: str
|
| 52 |
+
database_config: DatabaseConfig
|
| 53 |
+
n_cpu: int
|
| 54 |
+
n_iter: int
|
| 55 |
+
e_value: float
|
| 56 |
+
z_value: int | None
|
| 57 |
+
dom_z_value: int | None
|
| 58 |
+
max_sequences: int
|
| 59 |
+
max_parallel_shards: int | None = None
|
| 60 |
+
max_threads: int | None = None
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 64 |
+
class NhmmerConfig:
|
| 65 |
+
"""Configuration for a nhmmer run.
|
| 66 |
+
|
| 67 |
+
Attributes:
|
| 68 |
+
binary_path: Path to the binary of the msa tool.
|
| 69 |
+
hmmalign_binary_path: Path to the hmmalign binary.
|
| 70 |
+
hmmbuild_binary_path: Path to the hmmbuild binary.
|
| 71 |
+
database_config: Database configuration.
|
| 72 |
+
n_cpu: An integer with the number of CPUs to use.
|
| 73 |
+
e_value: e-value for the database lookup.
|
| 74 |
+
z_value: The Z-value representing the database size in megabases for
|
| 75 |
+
E-value calculation. Allows fractional values. Must be set for sharded
|
| 76 |
+
databases.
|
| 77 |
+
max_sequences: Max sequences to return in MSA.
|
| 78 |
+
alphabet: The alphabet when building a profile with hmmbuild.
|
| 79 |
+
max_parallel_shards: If given, the maximum number of shards to search
|
| 80 |
+
against in parallel. If None, one Nhmmer instance will be run per shard.
|
| 81 |
+
Only applicable if the database is sharded.
|
| 82 |
+
max_threads: If given, the maximum number of threads used when running
|
| 83 |
+
sharded databases.
|
| 84 |
+
"""
|
| 85 |
+
|
| 86 |
+
binary_path: str
|
| 87 |
+
hmmalign_binary_path: str
|
| 88 |
+
hmmbuild_binary_path: str
|
| 89 |
+
database_config: DatabaseConfig
|
| 90 |
+
n_cpu: int
|
| 91 |
+
e_value: float
|
| 92 |
+
z_value: float | None
|
| 93 |
+
max_sequences: int
|
| 94 |
+
alphabet: str | None
|
| 95 |
+
max_parallel_shards: int | None = None
|
| 96 |
+
max_threads: int | None = None
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 100 |
+
class MmseqsConfig:
|
| 101 |
+
"""Configuration for mmseqs run.
|
| 102 |
+
|
| 103 |
+
Attributes:
|
| 104 |
+
binary_path: Path to the binary of the msa tool.
|
| 105 |
+
database_config: Database configuration.
|
| 106 |
+
n_cpu: An integer with the number of CPUs to use.
|
| 107 |
+
use_gpu: An integer with the number of GPUs to use.
|
| 108 |
+
mmseqs_options: Options for the mmseqs run.
|
| 109 |
+
result2msa_options: Options for the result2msa run.
|
| 110 |
+
"""
|
| 111 |
+
|
| 112 |
+
binary_path: str
|
| 113 |
+
database_config: DatabaseConfig
|
| 114 |
+
n_cpu: int
|
| 115 |
+
use_gpu: int=0
|
| 116 |
+
mmseqs_options: str
|
| 117 |
+
result2msa_options: str
|
| 118 |
+
max_sequences: int
|
| 119 |
+
|
| 120 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 121 |
+
class RunConfig:
|
| 122 |
+
"""Configuration for an MSA run.
|
| 123 |
+
|
| 124 |
+
Attributes:
|
| 125 |
+
config: MSA tool config.
|
| 126 |
+
chain_poly_type: The chain type for which the tools will be run.
|
| 127 |
+
crop_size: The maximum number of sequences to keep in the MSA. If None, all
|
| 128 |
+
sequences are kept. Note that the query is included in the MSA, so it
|
| 129 |
+
doesn't make sense to set this to less than 2.
|
| 130 |
+
"""
|
| 131 |
+
|
| 132 |
+
config: JackhmmerConfig | NhmmerConfig | MmseqsConfig
|
| 133 |
+
chain_poly_type: str
|
| 134 |
+
crop_size: int | None
|
| 135 |
+
|
| 136 |
+
def __post_init__(self):
|
| 137 |
+
if self.crop_size is not None and self.crop_size < 2:
|
| 138 |
+
raise ValueError(f'crop_size must be None or >= 2: {self.crop_size}')
|
| 139 |
+
|
| 140 |
+
_validate_chain_poly_type(self.chain_poly_type)
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 144 |
+
class HmmsearchConfig:
|
| 145 |
+
"""Configuration for a hmmsearch."""
|
| 146 |
+
|
| 147 |
+
hmmsearch_binary_path: str
|
| 148 |
+
hmmbuild_binary_path: str
|
| 149 |
+
|
| 150 |
+
e_value: float
|
| 151 |
+
inc_e: float
|
| 152 |
+
dom_e: float
|
| 153 |
+
incdom_e: float
|
| 154 |
+
alphabet: str = 'amino'
|
| 155 |
+
filter_f1: float | None = None
|
| 156 |
+
filter_f2: float | None = None
|
| 157 |
+
filter_f3: float | None = None
|
| 158 |
+
filter_max: bool = False
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 162 |
+
class TemplateToolConfig:
|
| 163 |
+
"""Configuration for a template tool."""
|
| 164 |
+
|
| 165 |
+
database_path: str
|
| 166 |
+
chain_poly_type: str
|
| 167 |
+
hmmsearch_config: HmmsearchConfig
|
| 168 |
+
max_a3m_query_sequences: int | None = 300
|
| 169 |
+
|
| 170 |
+
def __post_init__(self):
|
| 171 |
+
_validate_chain_poly_type(self.chain_poly_type)
|
| 172 |
+
|
| 173 |
+
|
| 174 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 175 |
+
class TemplateFilterConfig:
|
| 176 |
+
"""Configuration for a template filter."""
|
| 177 |
+
|
| 178 |
+
max_subsequence_ratio: float | None
|
| 179 |
+
min_align_ratio: float | None
|
| 180 |
+
min_hit_length: int | None
|
| 181 |
+
deduplicate_sequences: bool
|
| 182 |
+
max_hits: int | None
|
| 183 |
+
max_template_date: datetime.date
|
| 184 |
+
|
| 185 |
+
@classmethod
|
| 186 |
+
def no_op_filter(cls) -> Self:
|
| 187 |
+
"""Returns a config for filter that keeps everything."""
|
| 188 |
+
return cls(
|
| 189 |
+
max_subsequence_ratio=None,
|
| 190 |
+
min_align_ratio=None,
|
| 191 |
+
min_hit_length=None,
|
| 192 |
+
deduplicate_sequences=False,
|
| 193 |
+
max_hits=None,
|
| 194 |
+
max_template_date=datetime.date(3000, 1, 1), # Very far in the future.
|
| 195 |
+
)
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
@dataclasses.dataclass(frozen=True, kw_only=True, slots=True)
|
| 199 |
+
class TemplatesConfig:
|
| 200 |
+
"""Configuration for the template search pipeline."""
|
| 201 |
+
|
| 202 |
+
template_tool_config: TemplateToolConfig
|
| 203 |
+
filter_config: TemplateFilterConfig
|
flax_model/alphafold3/data/msa_features.py
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Utilities for computing MSA features."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Sequence
|
| 6 |
+
import re
|
| 7 |
+
from flax_model.alphafold3.constants import mmcif_names
|
| 8 |
+
import numpy as np
|
| 9 |
+
|
| 10 |
+
_PROTEIN_TO_ID = {
|
| 11 |
+
'A': 0,
|
| 12 |
+
'B': 3, # Same as D.
|
| 13 |
+
'C': 4,
|
| 14 |
+
'D': 3,
|
| 15 |
+
'E': 6,
|
| 16 |
+
'F': 13,
|
| 17 |
+
'G': 7,
|
| 18 |
+
'H': 8,
|
| 19 |
+
'I': 9,
|
| 20 |
+
'J': 20, # Same as unknown (X).
|
| 21 |
+
'K': 11,
|
| 22 |
+
'L': 10,
|
| 23 |
+
'M': 12,
|
| 24 |
+
'N': 2,
|
| 25 |
+
'O': 20, # Same as unknown (X).
|
| 26 |
+
'P': 14,
|
| 27 |
+
'Q': 5,
|
| 28 |
+
'R': 1,
|
| 29 |
+
'S': 15,
|
| 30 |
+
'T': 16,
|
| 31 |
+
'U': 4, # Same as C.
|
| 32 |
+
'V': 19,
|
| 33 |
+
'W': 17,
|
| 34 |
+
'X': 20,
|
| 35 |
+
'Y': 18,
|
| 36 |
+
'Z': 6, # Same as E.
|
| 37 |
+
'-': 21,
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
_RNA_TO_ID = {
|
| 41 |
+
# Map non-standard residues to UNK_NUCLEIC (N) -> 30
|
| 42 |
+
**{chr(i): 30 for i in range(ord('A'), ord('Z') + 1)},
|
| 43 |
+
# Continue the RNA indices from where Protein indices left off.
|
| 44 |
+
'-': 21,
|
| 45 |
+
'A': 22,
|
| 46 |
+
'G': 23,
|
| 47 |
+
'C': 24,
|
| 48 |
+
'U': 25,
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
_DNA_TO_ID = {
|
| 52 |
+
# Map non-standard residues to UNK_NUCLEIC (N) -> 30
|
| 53 |
+
**{chr(i): 30 for i in range(ord('A'), ord('Z') + 1)},
|
| 54 |
+
# Continue the DNA indices from where DNA indices left off.
|
| 55 |
+
'-': 21,
|
| 56 |
+
'A': 26,
|
| 57 |
+
'G': 27,
|
| 58 |
+
'C': 28,
|
| 59 |
+
'T': 29,
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def extract_msa_features(
|
| 64 |
+
msa_sequences: Sequence[str], chain_poly_type: str
|
| 65 |
+
) -> tuple[np.ndarray, np.ndarray]:
|
| 66 |
+
"""Extracts MSA features.
|
| 67 |
+
|
| 68 |
+
Example:
|
| 69 |
+
The input raw MSA is: `[["AAAAAA"], ["Ai-CiDiiiEFa"]]`
|
| 70 |
+
The output MSA will be: `[["AAAAAA"], ["A-CDEF"]]`
|
| 71 |
+
The deletions will be: `[[0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 3, 0]]`
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
msa_sequences: A list of strings, each string with one MSA sequence. Each
|
| 75 |
+
string must have the same, constant number of non-lowercase (matching)
|
| 76 |
+
residues.
|
| 77 |
+
chain_poly_type: Either 'polypeptide(L)' (protein), 'polyribonucleotide'
|
| 78 |
+
(RNA), or 'polydeoxyribonucleotide' (DNA). Use the appropriate string
|
| 79 |
+
constant from mmcif_names.py.
|
| 80 |
+
|
| 81 |
+
Returns:
|
| 82 |
+
A tuple with:
|
| 83 |
+
* MSA array of shape (num_seq, num_res) that contains only the uppercase
|
| 84 |
+
characters or gaps (-) from the original MSA.
|
| 85 |
+
* Deletions array of shape (num_seq, num_res) that contains the number
|
| 86 |
+
of deletions (lowercase letters in the MSA) to the left from each
|
| 87 |
+
non-deleted residue (uppercase letters in the MSA).
|
| 88 |
+
|
| 89 |
+
Raises:
|
| 90 |
+
ValueError if any of the preconditions are not met.
|
| 91 |
+
"""
|
| 92 |
+
|
| 93 |
+
# Select the appropriate character map based on the chain type.
|
| 94 |
+
if chain_poly_type == mmcif_names.RNA_CHAIN:
|
| 95 |
+
char_map = _RNA_TO_ID
|
| 96 |
+
elif chain_poly_type == mmcif_names.DNA_CHAIN:
|
| 97 |
+
char_map = _DNA_TO_ID
|
| 98 |
+
elif chain_poly_type == mmcif_names.PROTEIN_CHAIN:
|
| 99 |
+
char_map = _PROTEIN_TO_ID
|
| 100 |
+
else:
|
| 101 |
+
raise ValueError(f'{chain_poly_type=} invalid.')
|
| 102 |
+
|
| 103 |
+
# Handle empty MSA.
|
| 104 |
+
if not msa_sequences:
|
| 105 |
+
empty_msa = np.array([], dtype=np.int32).reshape((0, 0))
|
| 106 |
+
empty_deletions = np.array([], dtype=np.int32).reshape((0, 0))
|
| 107 |
+
return empty_msa, empty_deletions
|
| 108 |
+
|
| 109 |
+
# Get the number of rows and columns in the MSA.
|
| 110 |
+
num_rows = len(msa_sequences)
|
| 111 |
+
num_cols = sum(1 for c in msa_sequences[0] if c in char_map)
|
| 112 |
+
|
| 113 |
+
# Initialize the output arrays.
|
| 114 |
+
msa_arr = np.zeros((num_rows, num_cols), dtype=np.int32)
|
| 115 |
+
deletions_arr = np.zeros((num_rows, num_cols), dtype=np.int32)
|
| 116 |
+
|
| 117 |
+
# Populate the output arrays.
|
| 118 |
+
for problem_row, msa_sequence in enumerate(msa_sequences):
|
| 119 |
+
deletion_count = 0
|
| 120 |
+
upper_count = 0
|
| 121 |
+
problem_col = 0
|
| 122 |
+
problems = []
|
| 123 |
+
for current in msa_sequence:
|
| 124 |
+
msa_id = char_map.get(current, -1)
|
| 125 |
+
if msa_id == -1:
|
| 126 |
+
if not current.islower():
|
| 127 |
+
problems.append(f'({problem_row}, {problem_col}):{current}')
|
| 128 |
+
deletion_count += 1
|
| 129 |
+
else:
|
| 130 |
+
# Check the access is safe before writing to the array.
|
| 131 |
+
# We don't need to check problem_row since it's guaranteed to be within
|
| 132 |
+
# the array bounds, while upper_count is incremented in the loop.
|
| 133 |
+
if upper_count < deletions_arr.shape[1]:
|
| 134 |
+
deletions_arr[problem_row, upper_count] = deletion_count
|
| 135 |
+
msa_arr[problem_row, upper_count] = msa_id
|
| 136 |
+
deletion_count = 0
|
| 137 |
+
upper_count += 1
|
| 138 |
+
problem_col += 1
|
| 139 |
+
if problems:
|
| 140 |
+
raise ValueError(
|
| 141 |
+
f"Unknown residues in MSA: {', '.join(problems)}. "
|
| 142 |
+
f'target_sequence: {msa_sequences[0]}'
|
| 143 |
+
)
|
| 144 |
+
if upper_count != num_cols:
|
| 145 |
+
raise ValueError(
|
| 146 |
+
'Invalid shape all strings must have the same number '
|
| 147 |
+
'of non-lowercase characters; First string has '
|
| 148 |
+
f"{num_cols} non-lowercase characters but '{msa_sequence}' has "
|
| 149 |
+
f'{upper_count}. target_sequence: {msa_sequences[0]}'
|
| 150 |
+
)
|
| 151 |
+
|
| 152 |
+
return msa_arr, deletions_arr
|
| 153 |
+
|
| 154 |
+
|
| 155 |
+
# UniProtKB SwissProt/TrEMBL dbs have the following description format:
|
| 156 |
+
# `db|UniqueIdentifier|EntryName`, e.g. `sp|P0C2L1|A3X1_LOXLA` or
|
| 157 |
+
# `tr|A0A146SKV9|A0A146SKV9_FUNHE`.
|
| 158 |
+
_UNIPROT_ENTRY_NAME_REGEX = re.compile(
|
| 159 |
+
# UniProtKB TrEMBL or SwissProt database.
|
| 160 |
+
r'(?:tr|sp)\|'
|
| 161 |
+
# A primary accession number of the UniProtKB entry.
|
| 162 |
+
r'(?:[A-Z0-9]{6,10})'
|
| 163 |
+
# Occasionally there is an isoform suffix (e.g. _1 or _10) which we ignore.
|
| 164 |
+
r'(?:_\d+)?\|'
|
| 165 |
+
# TrEMBL: Same as AccessionId (6-10 characters).
|
| 166 |
+
# SwissProt: A mnemonic protein identification code (1-5 characters).
|
| 167 |
+
r'(?:[A-Z0-9]{1,10}_)'
|
| 168 |
+
# A mnemonic species identification code.
|
| 169 |
+
r'(?P<SpeciesId>[A-Z0-9]{1,5})'
|
| 170 |
+
)
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
def extract_species_ids(msa_descriptions: Sequence[str]) -> Sequence[str]:
|
| 174 |
+
"""Extracts species ID from MSA UniProtKB sequence identifiers.
|
| 175 |
+
|
| 176 |
+
Args:
|
| 177 |
+
msa_descriptions: The descriptions (the FASTA/A3M comment line) for each of
|
| 178 |
+
the sequences.
|
| 179 |
+
|
| 180 |
+
Returns:
|
| 181 |
+
Extracted UniProtKB species IDs if there is a regex match for each
|
| 182 |
+
description line, blank if the regex doesn't match.
|
| 183 |
+
"""
|
| 184 |
+
species_ids = []
|
| 185 |
+
for msa_description in msa_descriptions:
|
| 186 |
+
msa_description = msa_description.strip()
|
| 187 |
+
match = _UNIPROT_ENTRY_NAME_REGEX.match(msa_description)
|
| 188 |
+
if match:
|
| 189 |
+
species_ids.append(match.group('SpeciesId'))
|
| 190 |
+
else:
|
| 191 |
+
# Handle cases where the regex doesn't match
|
| 192 |
+
# (e.g., append None or raise an error depending on your needs)
|
| 193 |
+
species_ids.append('')
|
| 194 |
+
return species_ids
|
flax_model/alphafold3/data/msa_identifiers.py
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Utilities for extracting identifiers from MSA sequence descriptions."""
|
| 4 |
+
|
| 5 |
+
import dataclasses
|
| 6 |
+
import re
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
# Sequences coming from UniProtKB database come in the
|
| 10 |
+
# `db|UniqueIdentifier|EntryName` format, e.g. `tr|A0A146SKV9|A0A146SKV9_FUNHE`
|
| 11 |
+
# or `sp|P0C2L1|A3X1_LOXLA` (for TREMBL/Swiss-Prot respectively).
|
| 12 |
+
_UNIPROT_PATTERN = re.compile(
|
| 13 |
+
r"""
|
| 14 |
+
^
|
| 15 |
+
# UniProtKB/TrEMBL or UniProtKB/Swiss-Prot
|
| 16 |
+
(?:tr|sp)
|
| 17 |
+
\|
|
| 18 |
+
# A primary accession number of the UniProtKB entry.
|
| 19 |
+
(?P<AccessionIdentifier>[A-Za-z0-9]{6,10})
|
| 20 |
+
# Occasionally there is a _0 or _1 isoform suffix, which we ignore.
|
| 21 |
+
(?:_\d)?
|
| 22 |
+
\|
|
| 23 |
+
# TREMBL repeats the accession ID here. Swiss-Prot has a mnemonic
|
| 24 |
+
# protein ID code.
|
| 25 |
+
(?:[A-Za-z0-9]+)
|
| 26 |
+
_
|
| 27 |
+
# A mnemonic species identification code.
|
| 28 |
+
(?P<SpeciesIdentifier>([A-Za-z0-9]){1,5})
|
| 29 |
+
# Small BFD uses a final value after an underscore, which we ignore.
|
| 30 |
+
(?:_\d+)?
|
| 31 |
+
$
|
| 32 |
+
""",
|
| 33 |
+
re.VERBOSE,
|
| 34 |
+
)
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
@dataclasses.dataclass(frozen=True)
|
| 38 |
+
class Identifiers:
|
| 39 |
+
species_id: str = ''
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def _parse_sequence_identifier(msa_sequence_identifier: str) -> Identifiers:
|
| 43 |
+
"""Gets species from an msa sequence identifier.
|
| 44 |
+
|
| 45 |
+
The sequence identifier has the format specified by
|
| 46 |
+
_UNIPROT_TREMBL_ENTRY_NAME_PATTERN or _UNIPROT_SWISSPROT_ENTRY_NAME_PATTERN.
|
| 47 |
+
An example of a sequence identifier: `tr|A0A146SKV9|A0A146SKV9_FUNHE`
|
| 48 |
+
|
| 49 |
+
Args:
|
| 50 |
+
msa_sequence_identifier: a sequence identifier.
|
| 51 |
+
|
| 52 |
+
Returns:
|
| 53 |
+
An `Identifiers` instance with species_id. These
|
| 54 |
+
can be empty in the case where no identifier was found.
|
| 55 |
+
"""
|
| 56 |
+
matches = re.search(_UNIPROT_PATTERN, msa_sequence_identifier.strip())
|
| 57 |
+
if matches:
|
| 58 |
+
return Identifiers(species_id=matches.group('SpeciesIdentifier'))
|
| 59 |
+
return Identifiers()
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
def _extract_sequence_identifier(description: str) -> str | None:
|
| 63 |
+
"""Extracts sequence identifier from description. Returns None if no match."""
|
| 64 |
+
split_description = description.split()
|
| 65 |
+
if split_description:
|
| 66 |
+
return split_description[0].partition('/')[0]
|
| 67 |
+
else:
|
| 68 |
+
return None
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
def get_identifiers(description: str) -> Identifiers:
|
| 72 |
+
"""Computes extra MSA features from the description."""
|
| 73 |
+
sequence_identifier = _extract_sequence_identifier(description)
|
| 74 |
+
if sequence_identifier is None:
|
| 75 |
+
return Identifiers()
|
| 76 |
+
else:
|
| 77 |
+
return _parse_sequence_identifier(sequence_identifier)
|
flax_model/alphafold3/data/parsers.py
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Functions for parsing various file formats."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Iterable, Sequence
|
| 6 |
+
from typing import IO, TypeAlias
|
| 7 |
+
|
| 8 |
+
from flax_model.alphafold3.cpp import fasta_iterator
|
| 9 |
+
from flax_model.alphafold3.cpp import msa_conversion
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
DeletionMatrix: TypeAlias = Sequence[Sequence[int]]
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def lazy_parse_fasta_string(fasta_string: str) -> Iterable[tuple[str, str]]:
|
| 16 |
+
"""Lazily parses a FASTA/A3M string and yields (sequence, description) tuples.
|
| 17 |
+
|
| 18 |
+
This implementation is more memory friendly than `fasta_sequence` while
|
| 19 |
+
offering comparable performance. The underlying implementation is in C++ and
|
| 20 |
+
is therefore faster than a pure Python implementation.
|
| 21 |
+
|
| 22 |
+
Use this method when parsing FASTA files where you already have the FASTA
|
| 23 |
+
string, but need to control how far you iterate through its sequences.
|
| 24 |
+
|
| 25 |
+
Arguments:
|
| 26 |
+
fasta_string: A string with the contents of FASTA/A3M file.
|
| 27 |
+
|
| 28 |
+
Returns:
|
| 29 |
+
Iterator of (sequence, description). In the description, the leading ">" is
|
| 30 |
+
stripped.
|
| 31 |
+
|
| 32 |
+
Raises:
|
| 33 |
+
ValueError if the FASTA/A3M file is invalid, e.g. empty.
|
| 34 |
+
"""
|
| 35 |
+
|
| 36 |
+
# The lifetime of the FastaStringIterator is tied to the lifetime of
|
| 37 |
+
# fasta_string - fasta_string must be kept while the iterator is in use.
|
| 38 |
+
return fasta_iterator.FastaStringIterator(fasta_string)
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def parse_fasta(fasta_string: str) -> tuple[Sequence[str], Sequence[str]]:
|
| 42 |
+
"""Parses FASTA string and returns list of strings with amino-acid sequences.
|
| 43 |
+
|
| 44 |
+
Arguments:
|
| 45 |
+
fasta_string: The string contents of a FASTA file.
|
| 46 |
+
|
| 47 |
+
Returns:
|
| 48 |
+
A tuple of two lists:
|
| 49 |
+
* A list of sequences.
|
| 50 |
+
* A list of sequence descriptions taken from the comment lines. In the
|
| 51 |
+
same order as the sequences.
|
| 52 |
+
"""
|
| 53 |
+
return fasta_iterator.parse_fasta_include_descriptions(fasta_string)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def convert_a3m_to_stockholm(a3m: str, max_seqs: int | None = None) -> str:
|
| 57 |
+
"""Converts MSA in the A3M format to the Stockholm format."""
|
| 58 |
+
sequences, descriptions = parse_fasta(a3m)
|
| 59 |
+
if max_seqs is not None:
|
| 60 |
+
sequences = sequences[:max_seqs]
|
| 61 |
+
descriptions = descriptions[:max_seqs]
|
| 62 |
+
|
| 63 |
+
stockholm = ['# STOCKHOLM 1.0', '']
|
| 64 |
+
|
| 65 |
+
# Add the Stockholm header with the sequence metadata.
|
| 66 |
+
names = []
|
| 67 |
+
for i, description in enumerate(descriptions):
|
| 68 |
+
name, _, rest = description.replace('\t', ' ').partition(' ')
|
| 69 |
+
# Ensure that the names are unique - stockholm format requires that
|
| 70 |
+
# the sequence names are unique.
|
| 71 |
+
name = f'{name}_{i}'
|
| 72 |
+
names.append(name)
|
| 73 |
+
# Avoid zero-length description due to historic hmmbuild parsing bug.
|
| 74 |
+
desc = rest.strip() or '<EMPTY>'
|
| 75 |
+
stockholm.append(f'#=GS {name.strip()} DE {desc}')
|
| 76 |
+
stockholm.append('')
|
| 77 |
+
|
| 78 |
+
# Convert insertions in a sequence into gaps in all other sequences that don't
|
| 79 |
+
# have an insertion in that column as well.
|
| 80 |
+
sequences = msa_conversion.convert_a3m_to_stockholm(sequences)
|
| 81 |
+
|
| 82 |
+
# Add the MSA data.
|
| 83 |
+
max_name_width = max(len(name) for name in names)
|
| 84 |
+
for name, sequence in zip(names, sequences, strict=True):
|
| 85 |
+
# Align the names to the left and pad with spaces to the maximum length.
|
| 86 |
+
stockholm.append(f'{name:<{max_name_width}s} {sequence}')
|
| 87 |
+
|
| 88 |
+
# Add the reference annotation for the query (the first sequence).
|
| 89 |
+
ref_annotation = ''.join('.' if c == '-' else 'x' for c in sequences[0])
|
| 90 |
+
stockholm.append(f'{"#=GC RF":<{max_name_width}s} {ref_annotation}')
|
| 91 |
+
stockholm.append('//')
|
| 92 |
+
|
| 93 |
+
return '\n'.join(stockholm)
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
def convert_stockholm_to_a3m(
|
| 97 |
+
stockholm: IO[str],
|
| 98 |
+
max_sequences: int | None = None,
|
| 99 |
+
remove_first_row_gaps: bool = True,
|
| 100 |
+
linewidth: int | None = None,
|
| 101 |
+
) -> str:
|
| 102 |
+
"""Converts MSA in Stockholm format to the A3M format."""
|
| 103 |
+
descriptions = {}
|
| 104 |
+
sequences = {}
|
| 105 |
+
reached_max_sequences = False
|
| 106 |
+
|
| 107 |
+
if linewidth is not None and linewidth <= 0:
|
| 108 |
+
raise ValueError('linewidth must be > 0 or None')
|
| 109 |
+
|
| 110 |
+
for line in stockholm:
|
| 111 |
+
reached_max_sequences = max_sequences and len(sequences) >= max_sequences
|
| 112 |
+
line = line.strip()
|
| 113 |
+
# Ignore blank lines, markup and end symbols - remainder are alignment
|
| 114 |
+
# sequence parts.
|
| 115 |
+
if not line or line.startswith(('#', '//')):
|
| 116 |
+
continue
|
| 117 |
+
seqname, aligned_seq = line.split(maxsplit=1)
|
| 118 |
+
if seqname not in sequences:
|
| 119 |
+
if reached_max_sequences:
|
| 120 |
+
continue
|
| 121 |
+
sequences[seqname] = ''
|
| 122 |
+
sequences[seqname] += aligned_seq
|
| 123 |
+
|
| 124 |
+
if not sequences:
|
| 125 |
+
return ''
|
| 126 |
+
|
| 127 |
+
stockholm.seek(0)
|
| 128 |
+
for line in stockholm:
|
| 129 |
+
line = line.strip()
|
| 130 |
+
if line[:4] == '#=GS':
|
| 131 |
+
# Description row - example format is:
|
| 132 |
+
# #=GS UniRef90_Q9H5Z4/4-78 DE [subseq from] cDNA: FLJ22755 ...
|
| 133 |
+
columns = line.split(maxsplit=3)
|
| 134 |
+
seqname, feature = columns[1:3]
|
| 135 |
+
value = columns[3] if len(columns) == 4 else ''
|
| 136 |
+
if feature != 'DE':
|
| 137 |
+
continue
|
| 138 |
+
if reached_max_sequences and seqname not in sequences:
|
| 139 |
+
continue
|
| 140 |
+
descriptions[seqname] = value
|
| 141 |
+
if len(descriptions) == len(sequences):
|
| 142 |
+
break
|
| 143 |
+
|
| 144 |
+
assert len(descriptions) <= len(sequences)
|
| 145 |
+
|
| 146 |
+
# Convert sto format to a3m line by line
|
| 147 |
+
a3m_sequences = {}
|
| 148 |
+
# query_sequence is assumed to be the first sequence
|
| 149 |
+
query_sequence = next(iter(sequences.values()))
|
| 150 |
+
for seqname, sto_sequence in sequences.items():
|
| 151 |
+
if remove_first_row_gaps:
|
| 152 |
+
a3m_sequences[seqname] = msa_conversion.align_sequence_to_gapless_query(
|
| 153 |
+
sequence=sto_sequence, query_sequence=query_sequence
|
| 154 |
+
).replace('.', '')
|
| 155 |
+
else:
|
| 156 |
+
a3m_sequences[seqname] = sto_sequence.replace('.', '')
|
| 157 |
+
|
| 158 |
+
fasta_chunks = []
|
| 159 |
+
|
| 160 |
+
for seqname, seq in a3m_sequences.items():
|
| 161 |
+
fasta_chunks.append(f'>{seqname} {descriptions.get(seqname, "")}')
|
| 162 |
+
|
| 163 |
+
if linewidth:
|
| 164 |
+
fasta_chunks.extend(
|
| 165 |
+
seq[i : linewidth + i] for i in range(0, len(seq), linewidth)
|
| 166 |
+
)
|
| 167 |
+
else:
|
| 168 |
+
fasta_chunks.append(seq)
|
| 169 |
+
|
| 170 |
+
return '\n'.join(fasta_chunks) + '\n' # Include terminating newline.
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
def convert_mmseqs_stockholm_to_a3m(
|
| 174 |
+
stockholm: IO[str],
|
| 175 |
+
max_sequences: int | None = None,
|
| 176 |
+
remove_first_row_gaps: bool = True,
|
| 177 |
+
linewidth: int | None = None,
|
| 178 |
+
) -> str:
|
| 179 |
+
"""Converts MSA in Stockholm format to the A3M format."""
|
| 180 |
+
from collections import defaultdict
|
| 181 |
+
|
| 182 |
+
descriptions = {}
|
| 183 |
+
sequences = {} # 存储最终序列(自动处理重复键)
|
| 184 |
+
seqname_counter = defaultdict(int) # 记录原始seqname出现次数
|
| 185 |
+
original_seqnames = {} # 记录处理后的seqname对应的原始名�?
|
| 186 |
+
|
| 187 |
+
if linewidth is not None and linewidth <= 0:
|
| 188 |
+
raise ValueError('linewidth must be > 0 or None')
|
| 189 |
+
|
| 190 |
+
# 第一遍:读取所有序列行,处理重复键
|
| 191 |
+
for line in stockholm:
|
| 192 |
+
line = line.strip()
|
| 193 |
+
if not line or line.startswith(('#', '//')):
|
| 194 |
+
continue
|
| 195 |
+
parts = line.split(maxsplit=1)
|
| 196 |
+
if len(parts) < 2:
|
| 197 |
+
continue
|
| 198 |
+
original_seqname, aligned_seq = parts
|
| 199 |
+
|
| 200 |
+
# 生成唯一seqname(例�?"_1", "_1_a", "_1_b"�?
|
| 201 |
+
count = seqname_counter[original_seqname]
|
| 202 |
+
if count == 0:
|
| 203 |
+
new_seqname = original_seqname
|
| 204 |
+
else:
|
| 205 |
+
new_seqname = f"{original_seqname}_{chr(97 + count - 1)}" # 97是ASCII码的'a'
|
| 206 |
+
seqname_counter[original_seqname] += 1
|
| 207 |
+
|
| 208 |
+
# 达到最大序列数时跳过后续序�?
|
| 209 |
+
if max_sequences and len(sequences) >= max_sequences:
|
| 210 |
+
continue
|
| 211 |
+
|
| 212 |
+
# 累积序列(原逻辑�?
|
| 213 |
+
sequences.setdefault(new_seqname, '')
|
| 214 |
+
sequences[new_seqname] += aligned_seq
|
| 215 |
+
original_seqnames[new_seqname] = original_seqname
|
| 216 |
+
|
| 217 |
+
if not sequences:
|
| 218 |
+
return ''
|
| 219 |
+
|
| 220 |
+
# 第二遍:读取描述信息
|
| 221 |
+
stockholm.seek(0)
|
| 222 |
+
for line in stockholm:
|
| 223 |
+
line = line.strip()
|
| 224 |
+
if line.startswith('#=GS'):
|
| 225 |
+
columns = line.split(maxsplit=3)
|
| 226 |
+
if len(columns) < 4:
|
| 227 |
+
continue
|
| 228 |
+
seqname, feature = columns[1:3]
|
| 229 |
+
if feature != 'DE':
|
| 230 |
+
continue
|
| 231 |
+
value = columns[3] if len(columns) >= 4 else ''
|
| 232 |
+
descriptions[seqname] = value
|
| 233 |
+
|
| 234 |
+
# 转换序列格式
|
| 235 |
+
a3m_sequences = {}
|
| 236 |
+
query_sequence = next(iter(sequences.values())).replace('.', '') # 假设第一个序列是查询序列
|
| 237 |
+
|
| 238 |
+
for seqname, sto_sequence in sequences.items():
|
| 239 |
+
current_seq = sto_sequence.replace('.', '')
|
| 240 |
+
if remove_first_row_gaps:
|
| 241 |
+
aligned = msa_conversion.align_sequence_to_gapless_query(
|
| 242 |
+
sequence=current_seq, query_sequence=query_sequence
|
| 243 |
+
).replace('.', '')
|
| 244 |
+
else:
|
| 245 |
+
aligned = current_seq
|
| 246 |
+
a3m_sequences[seqname] = aligned
|
| 247 |
+
|
| 248 |
+
# 生成FASTA
|
| 249 |
+
fasta_chunks = []
|
| 250 |
+
for seqname, seq in a3m_sequences.items():
|
| 251 |
+
original_seqname = original_seqnames.get(seqname, seqname)
|
| 252 |
+
desc = descriptions.get(original_seqname, "")
|
| 253 |
+
fasta_chunks.append(f'>{seqname} {desc}')
|
| 254 |
+
|
| 255 |
+
if linewidth:
|
| 256 |
+
chunks = [seq[i:i+linewidth] for i in range(0, len(seq), linewidth)]
|
| 257 |
+
fasta_chunks.extend(chunks)
|
| 258 |
+
else:
|
| 259 |
+
fasta_chunks.append(seq)
|
| 260 |
+
|
| 261 |
+
return '\n'.join(fasta_chunks) + '\n'
|
flax_model/alphafold3/data/pipeline.py
ADDED
|
@@ -0,0 +1,677 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Functions for running the MSA and template tools for the AlphaFold model."""
|
| 4 |
+
|
| 5 |
+
from concurrent import futures
|
| 6 |
+
import dataclasses
|
| 7 |
+
import datetime
|
| 8 |
+
import functools
|
| 9 |
+
import logging
|
| 10 |
+
import time
|
| 11 |
+
|
| 12 |
+
from flax_model.alphafold3.common import folding_input
|
| 13 |
+
from flax_model.alphafold3.constants import mmcif_names
|
| 14 |
+
from flax_model.alphafold3.data import msa
|
| 15 |
+
from flax_model.alphafold3.data import msa_config
|
| 16 |
+
from flax_model.alphafold3.data import structure_stores
|
| 17 |
+
from flax_model.alphafold3.data import templates as templates_lib
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
# Cache to avoid re-running template search for the same sequence in homomers.
|
| 22 |
+
@functools.cache
|
| 23 |
+
def _get_protein_templates(
|
| 24 |
+
sequence: str,
|
| 25 |
+
input_msa_a3m: str,
|
| 26 |
+
run_template_search: bool,
|
| 27 |
+
templates_config: msa_config.TemplatesConfig,
|
| 28 |
+
pdb_database_path: str,
|
| 29 |
+
) -> templates_lib.Templates:
|
| 30 |
+
"""Searches for templates for a single protein chain."""
|
| 31 |
+
if run_template_search:
|
| 32 |
+
templates_start_time = time.time()
|
| 33 |
+
logging.info('Getting protein templates for sequence %s', sequence)
|
| 34 |
+
protein_templates = templates_lib.Templates.from_seq_and_a3m(
|
| 35 |
+
query_sequence=sequence,
|
| 36 |
+
msa_a3m=input_msa_a3m,
|
| 37 |
+
max_template_date=templates_config.filter_config.max_template_date,
|
| 38 |
+
database_path=templates_config.template_tool_config.database_path,
|
| 39 |
+
hmmsearch_config=templates_config.template_tool_config.hmmsearch_config,
|
| 40 |
+
max_a3m_query_sequences=None,
|
| 41 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 42 |
+
structure_store=structure_stores.StructureStore(pdb_database_path),
|
| 43 |
+
filter_config=templates_config.filter_config,
|
| 44 |
+
)
|
| 45 |
+
logging.info(
|
| 46 |
+
'Getting %d protein templates took %.2f seconds for sequence %s',
|
| 47 |
+
protein_templates.num_hits,
|
| 48 |
+
time.time() - templates_start_time,
|
| 49 |
+
sequence,
|
| 50 |
+
)
|
| 51 |
+
else:
|
| 52 |
+
logging.info('Skipping template search for sequence %s', sequence)
|
| 53 |
+
protein_templates = templates_lib.Templates(
|
| 54 |
+
query_sequence=sequence,
|
| 55 |
+
hits=[],
|
| 56 |
+
max_template_date=templates_config.filter_config.max_template_date,
|
| 57 |
+
structure_store=structure_stores.StructureStore(pdb_database_path),
|
| 58 |
+
)
|
| 59 |
+
return protein_templates
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
# Cache to avoid re-running the MSA tools for the same sequence in homomers.
|
| 63 |
+
@functools.cache
|
| 64 |
+
def _get_protein_msa_and_templates(
|
| 65 |
+
sequence: str,
|
| 66 |
+
run_template_search: bool,
|
| 67 |
+
uniref90_msa_config: msa_config.RunConfig,
|
| 68 |
+
mgnify_msa_config: msa_config.RunConfig,
|
| 69 |
+
small_bfd_msa_config: msa_config.RunConfig,
|
| 70 |
+
uniprot_msa_config: msa_config.RunConfig,
|
| 71 |
+
templates_config: msa_config.TemplatesConfig,
|
| 72 |
+
pdb_database_path: str,
|
| 73 |
+
model_loader_callback=None,
|
| 74 |
+
) -> tuple[msa.Msa, msa.Msa, templates_lib.Templates]:
|
| 75 |
+
"""Processes a single protein chain."""
|
| 76 |
+
logging.info('Getting protein MSAs for sequence %s', sequence)
|
| 77 |
+
msa_start_time = time.time()
|
| 78 |
+
# Run various MSA tools in parallel. Use a ThreadPoolExecutor because
|
| 79 |
+
# they're not blocked by the GIL, as they're sub-shelled out.
|
| 80 |
+
with futures.ThreadPoolExecutor(max_workers=4) as executor:
|
| 81 |
+
uniref90_msa_future = executor.submit(
|
| 82 |
+
msa.get_msa,
|
| 83 |
+
target_sequence=sequence,
|
| 84 |
+
run_config=uniref90_msa_config,
|
| 85 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 86 |
+
)
|
| 87 |
+
mgnify_msa_future = executor.submit(
|
| 88 |
+
msa.get_msa,
|
| 89 |
+
target_sequence=sequence,
|
| 90 |
+
run_config=mgnify_msa_config,
|
| 91 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 92 |
+
)
|
| 93 |
+
small_bfd_msa_future = executor.submit(
|
| 94 |
+
msa.get_msa,
|
| 95 |
+
target_sequence=sequence,
|
| 96 |
+
run_config=small_bfd_msa_config,
|
| 97 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 98 |
+
)
|
| 99 |
+
uniprot_msa_future = executor.submit(
|
| 100 |
+
msa.get_msa,
|
| 101 |
+
target_sequence=sequence,
|
| 102 |
+
run_config=uniprot_msa_config,
|
| 103 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 104 |
+
)
|
| 105 |
+
uniref90_msa = uniref90_msa_future.result()
|
| 106 |
+
mgnify_msa = mgnify_msa_future.result()
|
| 107 |
+
small_bfd_msa = small_bfd_msa_future.result()
|
| 108 |
+
uniprot_msa = uniprot_msa_future.result()
|
| 109 |
+
logging.info(
|
| 110 |
+
'Getting protein MSAs took %.2f seconds for sequence %s',
|
| 111 |
+
time.time() - msa_start_time,
|
| 112 |
+
sequence,
|
| 113 |
+
)
|
| 114 |
+
|
| 115 |
+
# Load model after protein MSAs are completed
|
| 116 |
+
if model_loader_callback is not None:
|
| 117 |
+
logging.info('Protein MSAs completed. Loading model parameters...')
|
| 118 |
+
model_loader_callback()
|
| 119 |
+
|
| 120 |
+
logging.info('Deduplicating MSAs for sequence %s', sequence)
|
| 121 |
+
msa_dedupe_start_time = time.time()
|
| 122 |
+
with futures.ThreadPoolExecutor() as executor:
|
| 123 |
+
unpaired_protein_msa_future = executor.submit(
|
| 124 |
+
msa.Msa.from_multiple_msas,
|
| 125 |
+
msas=[uniref90_msa, small_bfd_msa, mgnify_msa],
|
| 126 |
+
deduplicate=True,
|
| 127 |
+
)
|
| 128 |
+
paired_protein_msa_future = executor.submit(
|
| 129 |
+
msa.Msa.from_multiple_msas, msas=[uniprot_msa], deduplicate=False
|
| 130 |
+
)
|
| 131 |
+
unpaired_protein_msa = unpaired_protein_msa_future.result()
|
| 132 |
+
paired_protein_msa = paired_protein_msa_future.result()
|
| 133 |
+
logging.info(
|
| 134 |
+
'Deduplicating MSAs took %.2f seconds for sequence %s, found %d unpaired'
|
| 135 |
+
' sequences, %d paired sequences',
|
| 136 |
+
time.time() - msa_dedupe_start_time,
|
| 137 |
+
sequence,
|
| 138 |
+
unpaired_protein_msa.depth,
|
| 139 |
+
paired_protein_msa.depth,
|
| 140 |
+
)
|
| 141 |
+
|
| 142 |
+
protein_templates = _get_protein_templates(
|
| 143 |
+
sequence=sequence,
|
| 144 |
+
input_msa_a3m=unpaired_protein_msa.to_a3m(),
|
| 145 |
+
run_template_search=run_template_search,
|
| 146 |
+
templates_config=templates_config,
|
| 147 |
+
pdb_database_path=pdb_database_path,
|
| 148 |
+
)
|
| 149 |
+
|
| 150 |
+
return unpaired_protein_msa, paired_protein_msa, protein_templates
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
# Cache to avoid re-running the Nhmmer for the same sequence in homomers.
|
| 154 |
+
@functools.cache
|
| 155 |
+
def _get_rna_msa(
|
| 156 |
+
sequence: str,
|
| 157 |
+
nt_rna_msa_config: msa_config.NhmmerConfig,
|
| 158 |
+
rfam_msa_config: msa_config.NhmmerConfig,
|
| 159 |
+
rnacentral_msa_config: msa_config.NhmmerConfig,
|
| 160 |
+
) -> msa.Msa:
|
| 161 |
+
"""Processes a single RNA chain."""
|
| 162 |
+
logging.info('Getting RNA MSAs for sequence %s', sequence)
|
| 163 |
+
rna_msa_start_time = time.time()
|
| 164 |
+
# Run various MSA tools in parallel. Use a ThreadPoolExecutor because
|
| 165 |
+
# they're not blocked by the GIL, as they're sub-shelled out.
|
| 166 |
+
with futures.ThreadPoolExecutor() as executor:
|
| 167 |
+
nt_rna_msa_future = executor.submit(
|
| 168 |
+
msa.get_msa,
|
| 169 |
+
target_sequence=sequence,
|
| 170 |
+
run_config=nt_rna_msa_config,
|
| 171 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 172 |
+
)
|
| 173 |
+
rfam_msa_future = executor.submit(
|
| 174 |
+
msa.get_msa,
|
| 175 |
+
target_sequence=sequence,
|
| 176 |
+
run_config=rfam_msa_config,
|
| 177 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 178 |
+
)
|
| 179 |
+
rnacentral_msa_future = executor.submit(
|
| 180 |
+
msa.get_msa,
|
| 181 |
+
target_sequence=sequence,
|
| 182 |
+
run_config=rnacentral_msa_config,
|
| 183 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 184 |
+
)
|
| 185 |
+
nt_rna_msa = nt_rna_msa_future.result()
|
| 186 |
+
rfam_msa = rfam_msa_future.result()
|
| 187 |
+
rnacentral_msa = rnacentral_msa_future.result()
|
| 188 |
+
rna_msa = msa.Msa.from_multiple_msas(
|
| 189 |
+
msas=[rfam_msa, rnacentral_msa, nt_rna_msa],
|
| 190 |
+
deduplicate=True,
|
| 191 |
+
)
|
| 192 |
+
logging.info(
|
| 193 |
+
'Getting RNA MSAs took %.2f seconds for sequence %s, found %d unpaired'
|
| 194 |
+
' sequences',
|
| 195 |
+
time.time() - rna_msa_start_time,
|
| 196 |
+
sequence,
|
| 197 |
+
rna_msa.depth,
|
| 198 |
+
)
|
| 199 |
+
return rna_msa
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
@dataclasses.dataclass(frozen=True, slots=True, kw_only=True)
|
| 203 |
+
class DataPipelineConfig:
|
| 204 |
+
"""The configuration for the data pipeline.
|
| 205 |
+
|
| 206 |
+
Attributes:
|
| 207 |
+
jackhmmer_binary_path: Jackhmmer binary path, used for protein MSA search.
|
| 208 |
+
nhmmer_binary_path: Nhmmer binary path, used for RNA MSA search.
|
| 209 |
+
hmmalign_binary_path: Hmmalign binary path, used to align hits to the query
|
| 210 |
+
profile.
|
| 211 |
+
hmmsearch_binary_path: Hmmsearch binary path, used for template search.
|
| 212 |
+
hmmbuild_binary_path: Hmmbuild binary path, used to build HMM profile from
|
| 213 |
+
raw MSA in template search.
|
| 214 |
+
small_bfd_database_path: Small BFD database path, used for protein MSA
|
| 215 |
+
search.
|
| 216 |
+
small_bfd_z_value: The Z-value representing the database size in number of
|
| 217 |
+
sequences for E-value calculation. Must be set for sharded databases.
|
| 218 |
+
mgnify_database_path: Mgnify database path, used for protein MSA search.
|
| 219 |
+
mgnify_z_value: The Z-value representing the database size in number of
|
| 220 |
+
sequences for E-value calculation. Must be set for sharded databases.
|
| 221 |
+
uniprot_cluster_annot_database_path: Uniprot database path, used for protein
|
| 222 |
+
paired MSA search.
|
| 223 |
+
uniprot_cluster_annot_z_value: The Z-value representing the database size in
|
| 224 |
+
number of sequences for E-value calculation. Must be set for sharded
|
| 225 |
+
databases.
|
| 226 |
+
uniref90_database_path: UniRef90 database path, used for MSA search, and the
|
| 227 |
+
MSA obtained by searching it is used to construct the profile for template
|
| 228 |
+
search.
|
| 229 |
+
uniref90_z_value: The Z-value representing the database size in number of
|
| 230 |
+
sequences for E-value calculation. Must be set for sharded databases.
|
| 231 |
+
ntrna_database_path: NT-RNA database path, used for RNA MSA search.
|
| 232 |
+
ntrna_z_value: The Z-value representing the database size in megabases for
|
| 233 |
+
E-value calculation. Must be set for sharded databases.
|
| 234 |
+
rfam_database_path: Rfam database path, used for RNA MSA search.
|
| 235 |
+
rfam_z_value: The Z-value representing the database size in megabases for
|
| 236 |
+
E-value calculation. Must be set for sharded databases.
|
| 237 |
+
rna_central_database_path: RNAcentral database path, used for RNA MSA
|
| 238 |
+
search.
|
| 239 |
+
rna_central_z_value: The Z-value representing the database size in megabases
|
| 240 |
+
for E-value calculation. Must be set for sharded databases.
|
| 241 |
+
seqres_database_path: PDB sequence database path, used for template search.
|
| 242 |
+
pdb_database_path: PDB database directory with mmCIF files path, used for
|
| 243 |
+
template search.
|
| 244 |
+
jackhmmer_n_cpu: Number of CPUs to use for Jackhmmer.
|
| 245 |
+
jackhmmer_max_parallel_shards: Maximum number of shards to search against in
|
| 246 |
+
parallel. If None, one Jackhmmer instance will be run per shard. Only
|
| 247 |
+
applicable if the database is sharded.
|
| 248 |
+
nhmmer_n_cpu: Number of CPUs to use for Nhmmer.
|
| 249 |
+
nhmmer_max_parallel_shards: Maximum number of shards to search against in
|
| 250 |
+
parallel. If None, one Nhmmer instance will be run per shard. Only
|
| 251 |
+
applicable if the database is sharded.
|
| 252 |
+
max_template_date: The latest date of templates to use.
|
| 253 |
+
"""
|
| 254 |
+
|
| 255 |
+
# Binary paths.
|
| 256 |
+
jackhmmer_binary_path: str
|
| 257 |
+
nhmmer_binary_path: str
|
| 258 |
+
hmmalign_binary_path: str
|
| 259 |
+
hmmsearch_binary_path: str
|
| 260 |
+
hmmbuild_binary_path: str
|
| 261 |
+
mmseqs_binary_path: str
|
| 262 |
+
|
| 263 |
+
# Jackhmmer databases.
|
| 264 |
+
small_bfd_database_path: str
|
| 265 |
+
small_bfd_z_value: int | None = None
|
| 266 |
+
mgnify_database_path: str
|
| 267 |
+
mgnify_z_value: int | None = None
|
| 268 |
+
uniprot_cluster_annot_database_path: str
|
| 269 |
+
uniprot_cluster_annot_z_value: int | None = None
|
| 270 |
+
uniref90_database_path: str
|
| 271 |
+
uniref90_z_value: int | None = None
|
| 272 |
+
# Nhmmer databases.
|
| 273 |
+
ntrna_database_path: str
|
| 274 |
+
ntrna_z_value: int | None = None
|
| 275 |
+
rfam_database_path: str
|
| 276 |
+
rfam_z_value: int | None = None
|
| 277 |
+
rna_central_database_path: str
|
| 278 |
+
rna_central_z_value: int | None = None
|
| 279 |
+
# Template search databases.
|
| 280 |
+
seqres_database_path: str
|
| 281 |
+
pdb_database_path: str
|
| 282 |
+
|
| 283 |
+
# Optional configuration for MSA tools.
|
| 284 |
+
jackhmmer_n_cpu: int = 8
|
| 285 |
+
jackhmmer_max_parallel_shards: int | None = None
|
| 286 |
+
jackhmmer_max_threads: int | None = None
|
| 287 |
+
nhmmer_n_cpu: int = 8
|
| 288 |
+
nhmmer_max_parallel_shards: int | None = None
|
| 289 |
+
nhmmer_max_threads: int | None = None
|
| 290 |
+
mmseqs_n_cpu: int = 8
|
| 291 |
+
|
| 292 |
+
max_template_date: datetime.date
|
| 293 |
+
|
| 294 |
+
use_mmseqs: bool = False
|
| 295 |
+
use_mmseqs_gpu: bool = False
|
| 296 |
+
mmseqs_options: str
|
| 297 |
+
result2msa_options: str
|
| 298 |
+
|
| 299 |
+
class DataPipeline:
|
| 300 |
+
"""Runs the alignment tools and assembles the input features."""
|
| 301 |
+
|
| 302 |
+
def __init__(self, data_pipeline_config: DataPipelineConfig, model_loader_callback=None):
|
| 303 |
+
"""Initializes the data pipeline with default configurations."""
|
| 304 |
+
if not data_pipeline_config.use_mmseqs:
|
| 305 |
+
self._uniref90_msa_config = msa_config.RunConfig(
|
| 306 |
+
config=msa_config.JackhmmerConfig(
|
| 307 |
+
binary_path=data_pipeline_config.jackhmmer_binary_path,
|
| 308 |
+
database_config=msa_config.DatabaseConfig(
|
| 309 |
+
name='uniref90',
|
| 310 |
+
path=data_pipeline_config.uniref90_database_path,
|
| 311 |
+
),
|
| 312 |
+
n_cpu=data_pipeline_config.jackhmmer_n_cpu,
|
| 313 |
+
n_iter=1,
|
| 314 |
+
e_value=1e-4,
|
| 315 |
+
z_value=data_pipeline_config.uniref90_z_value,
|
| 316 |
+
dom_z_value=data_pipeline_config.uniref90_z_value,
|
| 317 |
+
max_sequences=10_000,
|
| 318 |
+
max_parallel_shards=data_pipeline_config.jackhmmer_max_parallel_shards,
|
| 319 |
+
max_threads=data_pipeline_config.jackhmmer_max_threads,
|
| 320 |
+
),
|
| 321 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 322 |
+
crop_size=None,
|
| 323 |
+
)
|
| 324 |
+
self._mgnify_msa_config = msa_config.RunConfig(
|
| 325 |
+
config=msa_config.JackhmmerConfig(
|
| 326 |
+
binary_path=data_pipeline_config.jackhmmer_binary_path,
|
| 327 |
+
database_config=msa_config.DatabaseConfig(
|
| 328 |
+
name='mgnify',
|
| 329 |
+
path=data_pipeline_config.mgnify_database_path,
|
| 330 |
+
),
|
| 331 |
+
n_cpu=data_pipeline_config.jackhmmer_n_cpu,
|
| 332 |
+
n_iter=1,
|
| 333 |
+
e_value=1e-4,
|
| 334 |
+
z_value=data_pipeline_config.mgnify_z_value,
|
| 335 |
+
dom_z_value=data_pipeline_config.mgnify_z_value,
|
| 336 |
+
max_sequences=5_000,
|
| 337 |
+
max_parallel_shards=data_pipeline_config.jackhmmer_max_parallel_shards,
|
| 338 |
+
max_threads=data_pipeline_config.jackhmmer_max_threads,
|
| 339 |
+
),
|
| 340 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 341 |
+
crop_size=None,
|
| 342 |
+
)
|
| 343 |
+
self._small_bfd_msa_config = msa_config.RunConfig(
|
| 344 |
+
config=msa_config.JackhmmerConfig(
|
| 345 |
+
binary_path=data_pipeline_config.jackhmmer_binary_path,
|
| 346 |
+
database_config=msa_config.DatabaseConfig(
|
| 347 |
+
name='small_bfd',
|
| 348 |
+
path=data_pipeline_config.small_bfd_database_path,
|
| 349 |
+
),
|
| 350 |
+
n_cpu=data_pipeline_config.jackhmmer_n_cpu,
|
| 351 |
+
n_iter=1,
|
| 352 |
+
e_value=1e-4,
|
| 353 |
+
# Set z_value=138_515_945 to match the z_value used in the paper.
|
| 354 |
+
# In practice, this has minimal impact on predicted structures.
|
| 355 |
+
z_value=data_pipeline_config.small_bfd_z_value,
|
| 356 |
+
dom_z_value=data_pipeline_config.small_bfd_z_value,
|
| 357 |
+
max_sequences=5_000,
|
| 358 |
+
max_parallel_shards=data_pipeline_config.jackhmmer_max_parallel_shards,
|
| 359 |
+
max_threads=data_pipeline_config.jackhmmer_max_threads,
|
| 360 |
+
),
|
| 361 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 362 |
+
crop_size=None,
|
| 363 |
+
)
|
| 364 |
+
self._uniprot_msa_config = msa_config.RunConfig(
|
| 365 |
+
config=msa_config.JackhmmerConfig(
|
| 366 |
+
binary_path=data_pipeline_config.jackhmmer_binary_path,
|
| 367 |
+
database_config=msa_config.DatabaseConfig(
|
| 368 |
+
name='uniprot_cluster_annot',
|
| 369 |
+
path=data_pipeline_config.uniprot_cluster_annot_database_path,
|
| 370 |
+
),
|
| 371 |
+
n_cpu=data_pipeline_config.jackhmmer_n_cpu,
|
| 372 |
+
n_iter=1,
|
| 373 |
+
e_value=1e-4,
|
| 374 |
+
z_value=data_pipeline_config.uniprot_cluster_annot_z_value,
|
| 375 |
+
dom_z_value=data_pipeline_config.uniprot_cluster_annot_z_value,
|
| 376 |
+
max_sequences=50_000,
|
| 377 |
+
max_parallel_shards=data_pipeline_config.jackhmmer_max_parallel_shards,
|
| 378 |
+
max_threads=data_pipeline_config.jackhmmer_max_threads,
|
| 379 |
+
),
|
| 380 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 381 |
+
crop_size=None,
|
| 382 |
+
)
|
| 383 |
+
else:
|
| 384 |
+
self._uniref90_msa_config = msa_config.RunConfig(
|
| 385 |
+
config=msa_config.MmseqsConfig(
|
| 386 |
+
binary_path=data_pipeline_config.mmseqs_binary_path,
|
| 387 |
+
database_config=msa_config.DatabaseConfig(
|
| 388 |
+
name='uniref90',
|
| 389 |
+
path=data_pipeline_config.uniref90_database_path,
|
| 390 |
+
),
|
| 391 |
+
n_cpu=data_pipeline_config.mmseqs_n_cpu,
|
| 392 |
+
use_gpu=1 if data_pipeline_config.use_mmseqs_gpu else 0,
|
| 393 |
+
mmseqs_options=data_pipeline_config.mmseqs_options,
|
| 394 |
+
result2msa_options=data_pipeline_config.result2msa_options,
|
| 395 |
+
max_sequences=10_000,
|
| 396 |
+
),
|
| 397 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 398 |
+
crop_size=None,
|
| 399 |
+
)
|
| 400 |
+
self._mgnify_msa_config = msa_config.RunConfig(
|
| 401 |
+
config=msa_config.MmseqsConfig(
|
| 402 |
+
binary_path=data_pipeline_config.mmseqs_binary_path,
|
| 403 |
+
database_config=msa_config.DatabaseConfig(
|
| 404 |
+
name='mgnify',
|
| 405 |
+
path=data_pipeline_config.mgnify_database_path,
|
| 406 |
+
),
|
| 407 |
+
n_cpu=data_pipeline_config.mmseqs_n_cpu,
|
| 408 |
+
use_gpu=1 if data_pipeline_config.use_mmseqs_gpu else 0,
|
| 409 |
+
mmseqs_options=data_pipeline_config.mmseqs_options,
|
| 410 |
+
result2msa_options=data_pipeline_config.result2msa_options,
|
| 411 |
+
max_sequences=5_000,
|
| 412 |
+
),
|
| 413 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 414 |
+
crop_size=None,
|
| 415 |
+
)
|
| 416 |
+
self._small_bfd_msa_config = msa_config.RunConfig(
|
| 417 |
+
config=msa_config.MmseqsConfig(
|
| 418 |
+
binary_path=data_pipeline_config.mmseqs_binary_path,
|
| 419 |
+
database_config=msa_config.DatabaseConfig(
|
| 420 |
+
name='small_bfd',
|
| 421 |
+
path=data_pipeline_config.small_bfd_database_path,
|
| 422 |
+
),
|
| 423 |
+
n_cpu=data_pipeline_config.mmseqs_n_cpu,
|
| 424 |
+
use_gpu=1 if data_pipeline_config.use_mmseqs_gpu else 0,
|
| 425 |
+
mmseqs_options=data_pipeline_config.mmseqs_options,
|
| 426 |
+
result2msa_options=data_pipeline_config.result2msa_options,
|
| 427 |
+
max_sequences=5_000,
|
| 428 |
+
),
|
| 429 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 430 |
+
crop_size=None,
|
| 431 |
+
)
|
| 432 |
+
self._uniprot_msa_config = msa_config.RunConfig(
|
| 433 |
+
config=msa_config.MmseqsConfig(
|
| 434 |
+
binary_path=data_pipeline_config.mmseqs_binary_path,
|
| 435 |
+
database_config=msa_config.DatabaseConfig(
|
| 436 |
+
name='uniprot_cluster_annot',
|
| 437 |
+
path=data_pipeline_config.uniprot_cluster_annot_database_path,
|
| 438 |
+
),
|
| 439 |
+
n_cpu=data_pipeline_config.mmseqs_n_cpu,
|
| 440 |
+
use_gpu=1 if data_pipeline_config.use_mmseqs_gpu else 0,
|
| 441 |
+
mmseqs_options=data_pipeline_config.mmseqs_options,
|
| 442 |
+
result2msa_options=data_pipeline_config.result2msa_options,
|
| 443 |
+
max_sequences=50_000,
|
| 444 |
+
),
|
| 445 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 446 |
+
crop_size=None,
|
| 447 |
+
)
|
| 448 |
+
|
| 449 |
+
self._nt_rna_msa_config = msa_config.RunConfig(
|
| 450 |
+
config=msa_config.NhmmerConfig(
|
| 451 |
+
binary_path=data_pipeline_config.nhmmer_binary_path,
|
| 452 |
+
hmmalign_binary_path=data_pipeline_config.hmmalign_binary_path,
|
| 453 |
+
hmmbuild_binary_path=data_pipeline_config.hmmbuild_binary_path,
|
| 454 |
+
database_config=msa_config.DatabaseConfig(
|
| 455 |
+
name='nt_rna',
|
| 456 |
+
path=data_pipeline_config.ntrna_database_path,
|
| 457 |
+
),
|
| 458 |
+
n_cpu=data_pipeline_config.nhmmer_n_cpu,
|
| 459 |
+
e_value=1e-3,
|
| 460 |
+
alphabet='rna',
|
| 461 |
+
z_value=data_pipeline_config.ntrna_z_value,
|
| 462 |
+
max_sequences=10_000,
|
| 463 |
+
max_parallel_shards=data_pipeline_config.nhmmer_max_parallel_shards,
|
| 464 |
+
max_threads=data_pipeline_config.nhmmer_max_threads,
|
| 465 |
+
),
|
| 466 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 467 |
+
crop_size=None,
|
| 468 |
+
)
|
| 469 |
+
self._rfam_msa_config = msa_config.RunConfig(
|
| 470 |
+
config=msa_config.NhmmerConfig(
|
| 471 |
+
binary_path=data_pipeline_config.nhmmer_binary_path,
|
| 472 |
+
hmmalign_binary_path=data_pipeline_config.hmmalign_binary_path,
|
| 473 |
+
hmmbuild_binary_path=data_pipeline_config.hmmbuild_binary_path,
|
| 474 |
+
database_config=msa_config.DatabaseConfig(
|
| 475 |
+
name='rfam_rna',
|
| 476 |
+
path=data_pipeline_config.rfam_database_path,
|
| 477 |
+
),
|
| 478 |
+
n_cpu=data_pipeline_config.nhmmer_n_cpu,
|
| 479 |
+
e_value=1e-3,
|
| 480 |
+
alphabet='rna',
|
| 481 |
+
z_value=data_pipeline_config.rfam_z_value,
|
| 482 |
+
max_sequences=10_000,
|
| 483 |
+
max_parallel_shards=data_pipeline_config.nhmmer_max_parallel_shards,
|
| 484 |
+
max_threads=data_pipeline_config.nhmmer_max_threads,
|
| 485 |
+
),
|
| 486 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 487 |
+
crop_size=None,
|
| 488 |
+
)
|
| 489 |
+
self._rnacentral_msa_config = msa_config.RunConfig(
|
| 490 |
+
config=msa_config.NhmmerConfig(
|
| 491 |
+
binary_path=data_pipeline_config.nhmmer_binary_path,
|
| 492 |
+
hmmalign_binary_path=data_pipeline_config.hmmalign_binary_path,
|
| 493 |
+
hmmbuild_binary_path=data_pipeline_config.hmmbuild_binary_path,
|
| 494 |
+
database_config=msa_config.DatabaseConfig(
|
| 495 |
+
name='rna_central_rna',
|
| 496 |
+
path=data_pipeline_config.rna_central_database_path,
|
| 497 |
+
),
|
| 498 |
+
n_cpu=data_pipeline_config.nhmmer_n_cpu,
|
| 499 |
+
e_value=1e-3,
|
| 500 |
+
alphabet='rna',
|
| 501 |
+
z_value=data_pipeline_config.rna_central_z_value,
|
| 502 |
+
max_sequences=10_000,
|
| 503 |
+
max_parallel_shards=data_pipeline_config.nhmmer_max_parallel_shards,
|
| 504 |
+
max_threads=data_pipeline_config.nhmmer_max_threads,
|
| 505 |
+
),
|
| 506 |
+
chain_poly_type=mmcif_names.RNA_CHAIN,
|
| 507 |
+
crop_size=None,
|
| 508 |
+
)
|
| 509 |
+
|
| 510 |
+
self._templates_config = msa_config.TemplatesConfig(
|
| 511 |
+
template_tool_config=msa_config.TemplateToolConfig(
|
| 512 |
+
database_path=data_pipeline_config.seqres_database_path,
|
| 513 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 514 |
+
hmmsearch_config=msa_config.HmmsearchConfig(
|
| 515 |
+
hmmsearch_binary_path=data_pipeline_config.hmmsearch_binary_path,
|
| 516 |
+
hmmbuild_binary_path=data_pipeline_config.hmmbuild_binary_path,
|
| 517 |
+
filter_f1=0.1,
|
| 518 |
+
filter_f2=0.1,
|
| 519 |
+
filter_f3=0.1,
|
| 520 |
+
e_value=100,
|
| 521 |
+
inc_e=100,
|
| 522 |
+
dom_e=100,
|
| 523 |
+
incdom_e=100,
|
| 524 |
+
alphabet='amino',
|
| 525 |
+
),
|
| 526 |
+
),
|
| 527 |
+
filter_config=msa_config.TemplateFilterConfig(
|
| 528 |
+
max_subsequence_ratio=0.95,
|
| 529 |
+
min_align_ratio=0.1,
|
| 530 |
+
min_hit_length=10,
|
| 531 |
+
deduplicate_sequences=True,
|
| 532 |
+
max_hits=4,
|
| 533 |
+
max_template_date=data_pipeline_config.max_template_date,
|
| 534 |
+
),
|
| 535 |
+
)
|
| 536 |
+
self._pdb_database_path = data_pipeline_config.pdb_database_path
|
| 537 |
+
self._model_loader_callback = model_loader_callback
|
| 538 |
+
|
| 539 |
+
def process_protein_chain(
|
| 540 |
+
self, chain: folding_input.ProteinChain
|
| 541 |
+
) -> folding_input.ProteinChain:
|
| 542 |
+
"""Processes a single protein chain."""
|
| 543 |
+
has_unpaired_msa = chain.unpaired_msa is not None
|
| 544 |
+
has_paired_msa = chain.paired_msa is not None
|
| 545 |
+
has_templates = chain.templates is not None
|
| 546 |
+
|
| 547 |
+
if not has_unpaired_msa and not has_paired_msa and not chain.templates:
|
| 548 |
+
# MSA None - search. Templates either [] - don't search, or None - search.
|
| 549 |
+
unpaired_msa, paired_msa, template_hits = _get_protein_msa_and_templates(
|
| 550 |
+
sequence=chain.sequence,
|
| 551 |
+
run_template_search=not has_templates, # Skip template search if [].
|
| 552 |
+
uniref90_msa_config=self._uniref90_msa_config,
|
| 553 |
+
mgnify_msa_config=self._mgnify_msa_config,
|
| 554 |
+
small_bfd_msa_config=self._small_bfd_msa_config,
|
| 555 |
+
uniprot_msa_config=self._uniprot_msa_config,
|
| 556 |
+
templates_config=self._templates_config,
|
| 557 |
+
pdb_database_path=self._pdb_database_path,
|
| 558 |
+
model_loader_callback=self._model_loader_callback,
|
| 559 |
+
)
|
| 560 |
+
unpaired_msa = unpaired_msa.to_a3m()
|
| 561 |
+
paired_msa = paired_msa.to_a3m()
|
| 562 |
+
templates = [
|
| 563 |
+
folding_input.Template(
|
| 564 |
+
mmcif=struc.to_mmcif(),
|
| 565 |
+
query_to_template_map=hit.query_to_hit_mapping,
|
| 566 |
+
)
|
| 567 |
+
for hit, struc in template_hits.get_hits_with_structures()
|
| 568 |
+
]
|
| 569 |
+
elif has_unpaired_msa and has_paired_msa and not has_templates:
|
| 570 |
+
# Has MSA, but doesn't have templates. Search for templates only.
|
| 571 |
+
empty_msa = msa.Msa.from_empty(
|
| 572 |
+
query_sequence=chain.sequence,
|
| 573 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 574 |
+
).to_a3m()
|
| 575 |
+
unpaired_msa = chain.unpaired_msa or empty_msa
|
| 576 |
+
paired_msa = chain.paired_msa or empty_msa
|
| 577 |
+
template_hits = _get_protein_templates(
|
| 578 |
+
sequence=chain.sequence,
|
| 579 |
+
input_msa_a3m=unpaired_msa,
|
| 580 |
+
run_template_search=True,
|
| 581 |
+
templates_config=self._templates_config,
|
| 582 |
+
pdb_database_path=self._pdb_database_path,
|
| 583 |
+
)
|
| 584 |
+
templates = [
|
| 585 |
+
folding_input.Template(
|
| 586 |
+
mmcif=struc.to_mmcif(),
|
| 587 |
+
query_to_template_map=hit.query_to_hit_mapping,
|
| 588 |
+
)
|
| 589 |
+
for hit, struc in template_hits.get_hits_with_structures()
|
| 590 |
+
]
|
| 591 |
+
else:
|
| 592 |
+
# Has MSA and templates, don't search for anything.
|
| 593 |
+
if not has_unpaired_msa or not has_paired_msa or not has_templates:
|
| 594 |
+
raise ValueError(
|
| 595 |
+
f'Protein chain {chain.id} has unpaired MSA, paired MSA, or'
|
| 596 |
+
' templates set only partially. If you want to run the pipeline'
|
| 597 |
+
' with custom MSA/templates, you need to set all of them. You can'
|
| 598 |
+
' set MSA to empty string and templates to empty list to signify'
|
| 599 |
+
' that they should not be used and searched for.'
|
| 600 |
+
)
|
| 601 |
+
logging.info(
|
| 602 |
+
'Skipping MSA and template search for protein chain %s because it '
|
| 603 |
+
'already has MSAs and templates.',
|
| 604 |
+
chain.id,
|
| 605 |
+
)
|
| 606 |
+
if not chain.unpaired_msa:
|
| 607 |
+
logging.info('Using empty unpaired MSA for protein chain %s', chain.id)
|
| 608 |
+
if not chain.paired_msa:
|
| 609 |
+
logging.info('Using empty paired MSA for protein chain %s', chain.id)
|
| 610 |
+
if not chain.templates:
|
| 611 |
+
logging.info('Using no templates for protein chain %s', chain.id)
|
| 612 |
+
empty_msa = msa.Msa.from_empty(
|
| 613 |
+
query_sequence=chain.sequence,
|
| 614 |
+
chain_poly_type=mmcif_names.PROTEIN_CHAIN,
|
| 615 |
+
).to_a3m()
|
| 616 |
+
unpaired_msa = chain.unpaired_msa or empty_msa
|
| 617 |
+
paired_msa = chain.paired_msa or empty_msa
|
| 618 |
+
templates = chain.templates
|
| 619 |
+
|
| 620 |
+
return folding_input.ProteinChain(
|
| 621 |
+
id=chain.id,
|
| 622 |
+
sequence=chain.sequence,
|
| 623 |
+
ptms=chain.ptms,
|
| 624 |
+
unpaired_msa=unpaired_msa,
|
| 625 |
+
paired_msa=paired_msa,
|
| 626 |
+
templates=templates,
|
| 627 |
+
)
|
| 628 |
+
|
| 629 |
+
def process_rna_chain(
|
| 630 |
+
self, chain: folding_input.RnaChain
|
| 631 |
+
) -> folding_input.RnaChain:
|
| 632 |
+
"""Processes a single RNA chain."""
|
| 633 |
+
if chain.unpaired_msa is not None:
|
| 634 |
+
# Don't run MSA tools if the chain already has an MSA.
|
| 635 |
+
logging.info(
|
| 636 |
+
'Skipping MSA search for RNA chain %s because it already has MSA.',
|
| 637 |
+
chain.id,
|
| 638 |
+
)
|
| 639 |
+
if not chain.unpaired_msa:
|
| 640 |
+
logging.info('Using empty unpaired MSA for RNA chain %s', chain.id)
|
| 641 |
+
empty_msa = msa.Msa.from_empty(
|
| 642 |
+
query_sequence=chain.sequence, chain_poly_type=mmcif_names.RNA_CHAIN
|
| 643 |
+
).to_a3m()
|
| 644 |
+
unpaired_msa = chain.unpaired_msa or empty_msa
|
| 645 |
+
else:
|
| 646 |
+
unpaired_msa = _get_rna_msa(
|
| 647 |
+
sequence=chain.sequence,
|
| 648 |
+
nt_rna_msa_config=self._nt_rna_msa_config,
|
| 649 |
+
rfam_msa_config=self._rfam_msa_config,
|
| 650 |
+
rnacentral_msa_config=self._rnacentral_msa_config,
|
| 651 |
+
).to_a3m()
|
| 652 |
+
return folding_input.RnaChain(
|
| 653 |
+
id=chain.id,
|
| 654 |
+
sequence=chain.sequence,
|
| 655 |
+
modifications=chain.modifications,
|
| 656 |
+
unpaired_msa=unpaired_msa,
|
| 657 |
+
)
|
| 658 |
+
|
| 659 |
+
def process(self, fold_input: folding_input.Input) -> folding_input.Input:
|
| 660 |
+
"""Runs MSA and template tools and returns a new Input with the results."""
|
| 661 |
+
processed_chains = []
|
| 662 |
+
for chain in fold_input.chains:
|
| 663 |
+
print(f'Running data pipeline for chain {chain.id}...')
|
| 664 |
+
process_chain_start_time = time.time()
|
| 665 |
+
match chain:
|
| 666 |
+
case folding_input.ProteinChain():
|
| 667 |
+
processed_chains.append(self.process_protein_chain(chain))
|
| 668 |
+
case folding_input.RnaChain():
|
| 669 |
+
processed_chains.append(self.process_rna_chain(chain))
|
| 670 |
+
case _:
|
| 671 |
+
processed_chains.append(chain)
|
| 672 |
+
print(
|
| 673 |
+
f'Running data pipeline for chain {chain.id} took'
|
| 674 |
+
f' {time.time() - process_chain_start_time:.2f} seconds',
|
| 675 |
+
)
|
| 676 |
+
|
| 677 |
+
return dataclasses.replace(fold_input, chains=processed_chains)
|
flax_model/alphafold3/data/structure_stores.py
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Library for loading structure data from various sources."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Mapping, Sequence
|
| 6 |
+
import functools
|
| 7 |
+
import os
|
| 8 |
+
import pathlib
|
| 9 |
+
import tarfile
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
class NotFoundError(KeyError):
|
| 13 |
+
"""Raised when the structure store doesn't contain the requested target."""
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
class StructureStore:
|
| 17 |
+
"""Handles the retrieval of mmCIF files from a filesystem."""
|
| 18 |
+
|
| 19 |
+
def __init__(
|
| 20 |
+
self,
|
| 21 |
+
structures: str | os.PathLike[str] | Mapping[str, str],
|
| 22 |
+
):
|
| 23 |
+
"""Initialises the instance.
|
| 24 |
+
|
| 25 |
+
Args:
|
| 26 |
+
structures: Path of the directory where the mmCIF files are or a Mapping
|
| 27 |
+
from target name to mmCIF string.
|
| 28 |
+
"""
|
| 29 |
+
if isinstance(structures, Mapping):
|
| 30 |
+
self._structure_mapping = structures
|
| 31 |
+
self._structure_path = None
|
| 32 |
+
self._structure_tar = None
|
| 33 |
+
else:
|
| 34 |
+
self._structure_mapping = None
|
| 35 |
+
path_str = os.fspath(structures)
|
| 36 |
+
if path_str.endswith('.tar'):
|
| 37 |
+
self._structure_tar = tarfile.open(path_str, 'r')
|
| 38 |
+
self._structure_path = None
|
| 39 |
+
else:
|
| 40 |
+
self._structure_path = pathlib.Path(structures)
|
| 41 |
+
self._structure_tar = None
|
| 42 |
+
|
| 43 |
+
@functools.cached_property
|
| 44 |
+
def _tar_members(self) -> Mapping[str, tarfile.TarInfo]:
|
| 45 |
+
assert self._structure_tar is not None
|
| 46 |
+
return {
|
| 47 |
+
path.stem: tarinfo
|
| 48 |
+
for tarinfo in self._structure_tar.getmembers()
|
| 49 |
+
if tarinfo.isfile()
|
| 50 |
+
and (path := pathlib.Path(tarinfo.path.lower())).suffix == '.cif'
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
def get_mmcif_str(self, target_name: str) -> str:
|
| 54 |
+
"""Returns an mmCIF for a given `target_name`.
|
| 55 |
+
|
| 56 |
+
Args:
|
| 57 |
+
target_name: Name specifying the target mmCIF.
|
| 58 |
+
|
| 59 |
+
Raises:
|
| 60 |
+
NotFoundError: If the target is not found.
|
| 61 |
+
"""
|
| 62 |
+
if self._structure_mapping is not None:
|
| 63 |
+
try:
|
| 64 |
+
return self._structure_mapping[target_name]
|
| 65 |
+
except KeyError as e:
|
| 66 |
+
raise NotFoundError(f'{target_name=} not found') from e
|
| 67 |
+
|
| 68 |
+
if self._structure_tar is not None:
|
| 69 |
+
try:
|
| 70 |
+
member = self._tar_members[target_name]
|
| 71 |
+
if struct_file := self._structure_tar.extractfile(member):
|
| 72 |
+
return struct_file.read().decode()
|
| 73 |
+
else:
|
| 74 |
+
raise NotFoundError(f'{target_name=} not found')
|
| 75 |
+
except KeyError:
|
| 76 |
+
raise NotFoundError(f'{target_name=} not found') from None
|
| 77 |
+
|
| 78 |
+
filepath = self._structure_path / f'{target_name}.cif'
|
| 79 |
+
try:
|
| 80 |
+
return filepath.read_text()
|
| 81 |
+
except FileNotFoundError as e:
|
| 82 |
+
raise NotFoundError(f'{target_name=} not found at {filepath=}') from e
|
| 83 |
+
|
| 84 |
+
def target_names(self) -> Sequence[str]:
|
| 85 |
+
"""Returns all targets in the store."""
|
| 86 |
+
if self._structure_mapping is not None:
|
| 87 |
+
return [*self._structure_mapping.keys()]
|
| 88 |
+
elif self._structure_tar is not None:
|
| 89 |
+
return sorted(self._tar_members.keys())
|
| 90 |
+
elif self._structure_path is not None:
|
| 91 |
+
return sorted([path.stem for path in self._structure_path.glob('*.cif')])
|
| 92 |
+
return ()
|
flax_model/alphafold3/data/template_store.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Interface and implementations for fetching templates data."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Mapping
|
| 6 |
+
import datetime
|
| 7 |
+
from typing import Any, Protocol, TypeAlias
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
TemplateFeatures: TypeAlias = Mapping[str, Any]
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
class TemplateFeatureProvider(Protocol):
|
| 14 |
+
"""Interface for providing Template Features."""
|
| 15 |
+
|
| 16 |
+
def __call__(
|
| 17 |
+
self,
|
| 18 |
+
sequence: str,
|
| 19 |
+
release_date: datetime.date | None,
|
| 20 |
+
include_ligand_features: bool = True,
|
| 21 |
+
) -> TemplateFeatures:
|
| 22 |
+
"""Retrieve template features for the given sequence and release_date.
|
| 23 |
+
|
| 24 |
+
Args:
|
| 25 |
+
sequence: The residue sequence of the query.
|
| 26 |
+
release_date: The release_date of the template query, this is used to
|
| 27 |
+
filter templates for training, ensuring that they do not leak structure
|
| 28 |
+
information from the future.
|
| 29 |
+
include_ligand_features: Whether to include ligand features.
|
| 30 |
+
|
| 31 |
+
Returns:
|
| 32 |
+
Template features: A mapping of template feature labels to features, which
|
| 33 |
+
may be numpy arrays, bytes objects, or for the special case of label
|
| 34 |
+
`ligand_features`, a nested feature map of labels to numpy arrays.
|
| 35 |
+
|
| 36 |
+
Raises:
|
| 37 |
+
TemplateRetrievalError if the template features were not found.
|
| 38 |
+
"""
|
flax_model/alphafold3/data/tools/msa_tool.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Defines protocol for MSA tools."""
|
| 4 |
+
|
| 5 |
+
import dataclasses
|
| 6 |
+
from typing import Protocol
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
@dataclasses.dataclass(frozen=True, slots=True, kw_only=True)
|
| 10 |
+
class MsaToolResult:
|
| 11 |
+
"""The result of a MSA tool query.
|
| 12 |
+
|
| 13 |
+
Attributes:
|
| 14 |
+
target_sequence: The sequence that was used to query the MSA tool.
|
| 15 |
+
e_value: The e-value that was used to filter the MSA tool results.
|
| 16 |
+
a3m: The MSA output of the tool in the A3M format.
|
| 17 |
+
tblout: The optional tblout output of the MSA tool (needed for merging
|
| 18 |
+
results of queries against a sharded database).
|
| 19 |
+
"""
|
| 20 |
+
|
| 21 |
+
target_sequence: str
|
| 22 |
+
e_value: float
|
| 23 |
+
a3m: str
|
| 24 |
+
tblout: str | None = None
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
class MsaTool(Protocol):
|
| 28 |
+
"""Interface for MSA tools."""
|
| 29 |
+
|
| 30 |
+
def query(self, target_sequence: str) -> MsaToolResult:
|
| 31 |
+
"""Runs the MSA tool on the target sequence."""
|
flax_model/alphafold3/data/tools/nhmmer.py
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Library to run Nhmmer from Python."""
|
| 4 |
+
|
| 5 |
+
from collections.abc import Iterable, Sequence
|
| 6 |
+
from concurrent import futures
|
| 7 |
+
import heapq
|
| 8 |
+
import os
|
| 9 |
+
import pathlib
|
| 10 |
+
import shutil
|
| 11 |
+
import tempfile
|
| 12 |
+
import time
|
| 13 |
+
from typing import Final
|
| 14 |
+
|
| 15 |
+
from absl import logging
|
| 16 |
+
from flax_model.alphafold3.data import parsers
|
| 17 |
+
from flax_model.alphafold3.data.tools import hmmalign
|
| 18 |
+
from flax_model.alphafold3.data.tools import hmmbuild
|
| 19 |
+
from flax_model.alphafold3.data.tools import msa_tool
|
| 20 |
+
from flax_model.alphafold3.data.tools import shards
|
| 21 |
+
from flax_model.alphafold3.data.tools import subprocess_utils
|
| 22 |
+
|
| 23 |
+
_SHORT_SEQUENCE_CUTOFF: Final[int] = 50
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
class Nhmmer(msa_tool.MsaTool):
|
| 27 |
+
"""Python wrapper of the Nhmmer binary."""
|
| 28 |
+
|
| 29 |
+
def __init__(
|
| 30 |
+
self,
|
| 31 |
+
binary_path: str,
|
| 32 |
+
hmmalign_binary_path: str,
|
| 33 |
+
hmmbuild_binary_path: str,
|
| 34 |
+
database_path: str,
|
| 35 |
+
n_cpu: int = 8,
|
| 36 |
+
e_value: float = 1e-3,
|
| 37 |
+
z_value: float | int | None = None,
|
| 38 |
+
max_sequences: int = 5000,
|
| 39 |
+
filter_f3: float = 1e-5,
|
| 40 |
+
alphabet: str | None = None,
|
| 41 |
+
strand: str | None = None,
|
| 42 |
+
max_threads: int | None = None,
|
| 43 |
+
):
|
| 44 |
+
"""Initializes the Python Nhmmer wrapper.
|
| 45 |
+
|
| 46 |
+
NOTE: The MSA obtained by running against sharded dbs won't be always
|
| 47 |
+
exactly the same as the MSA obtained by running against an unsharded db.
|
| 48 |
+
This is because of Jackhmmer deduplication logic, which won't spot duplicate
|
| 49 |
+
hits across multiple shards. Usually this means that the sharded search
|
| 50 |
+
finds more hits (likely bounded by the number of shards), but this should
|
| 51 |
+
not pose an issue given how the results are used downstream. The problem is
|
| 52 |
+
more pronounced with deep MSAs and lower in the hit list (higher e-values).
|
| 53 |
+
|
| 54 |
+
Make sure to set the Z value when searching against a sharded database,
|
| 55 |
+
otherwise the results won't match the normal unsharded search.
|
| 56 |
+
|
| 57 |
+
Args:
|
| 58 |
+
binary_path: Path to the Nhmmer binary.
|
| 59 |
+
hmmalign_binary_path: Path to the Hmmalign binary.
|
| 60 |
+
hmmbuild_binary_path: Path to the Hmmbuild binary.
|
| 61 |
+
database_path: MSA database path to search against. This can be either a
|
| 62 |
+
FASTA (slow) or HMMERDB produced from the FASTA using the makehmmerdb
|
| 63 |
+
binary. The HMMERDB is ~10x faster but experimental. Sharded file
|
| 64 |
+
specs, e.g. <db_path>@<num_shards>, are supported.
|
| 65 |
+
n_cpu: The number of CPUs to give Nhmmer.
|
| 66 |
+
e_value: The E-value, see Nhmmer docs for more details. Will be
|
| 67 |
+
overwritten if bit_score is set.
|
| 68 |
+
z_value: The Z-value representing the number of comparisons done (i.e
|
| 69 |
+
correct database size) for E-value calculation. Make sure to set this
|
| 70 |
+
when searching against a sharded database, otherwise the e-values will
|
| 71 |
+
be incorrectly scaled.
|
| 72 |
+
max_sequences: Maximum number of sequences to return in the MSA.
|
| 73 |
+
filter_f3: Forward pre-filter, set to >1.0 to turn off.
|
| 74 |
+
alphabet: The alphabet to assert when building a profile with hmmbuild.
|
| 75 |
+
This must be 'rna', 'dna', or None.
|
| 76 |
+
strand: "watson" searches query sequence, "crick" searches
|
| 77 |
+
reverse-compliment and default is None which means searching for both.
|
| 78 |
+
max_threads: If given, the maximum number of threads used when running
|
| 79 |
+
sharded databases.
|
| 80 |
+
|
| 81 |
+
Raises:
|
| 82 |
+
RuntimeError: If Nhmmer binary not found within the path.
|
| 83 |
+
ValueError: If an invalid configuration is provided in the args.
|
| 84 |
+
"""
|
| 85 |
+
self._database_path = database_path
|
| 86 |
+
|
| 87 |
+
if shard_paths := shards.get_sharded_paths(self._database_path):
|
| 88 |
+
if z_value is None:
|
| 89 |
+
raise ValueError(
|
| 90 |
+
'The Z-value must be set when searching against a sharded database '
|
| 91 |
+
'to correctly scale e-values.'
|
| 92 |
+
)
|
| 93 |
+
if 'hmmerdb' in self._database_path:
|
| 94 |
+
raise ValueError('HMMERDB is not supported in sharded mode.')
|
| 95 |
+
|
| 96 |
+
if max_sequences <= 1:
|
| 97 |
+
raise ValueError(
|
| 98 |
+
'max_sequences must be greater than 1 when running in sharded '
|
| 99 |
+
'mode, because each shard would return only the query sequence.'
|
| 100 |
+
)
|
| 101 |
+
|
| 102 |
+
self._shard_paths = shard_paths
|
| 103 |
+
self._max_threads = len(self._shard_paths)
|
| 104 |
+
if max_threads is not None:
|
| 105 |
+
self._max_threads = min(max_threads, self._max_threads)
|
| 106 |
+
logging.info('Nhmmer running with max_threads = %d', self._max_threads)
|
| 107 |
+
else:
|
| 108 |
+
self._shard_paths = None
|
| 109 |
+
self._max_threads = None
|
| 110 |
+
|
| 111 |
+
self._binary_path = binary_path
|
| 112 |
+
self._hmmalign_binary_path = hmmalign_binary_path
|
| 113 |
+
self._hmmbuild_binary_path = hmmbuild_binary_path
|
| 114 |
+
subprocess_utils.check_binary_exists(path=self._binary_path, name='Nhmmer')
|
| 115 |
+
|
| 116 |
+
if strand and strand not in {'watson', 'crick'}:
|
| 117 |
+
raise ValueError(f'Invalid {strand=}. only "watson" or "crick" supported')
|
| 118 |
+
|
| 119 |
+
if alphabet and alphabet not in {'rna', 'dna'}:
|
| 120 |
+
raise ValueError(f'Invalid {alphabet=}, only "rna" or "dna" supported')
|
| 121 |
+
|
| 122 |
+
self._e_value = e_value
|
| 123 |
+
self._n_cpu = n_cpu
|
| 124 |
+
self._z_value = z_value
|
| 125 |
+
self._max_sequences = max_sequences
|
| 126 |
+
self._filter_f3 = filter_f3
|
| 127 |
+
self._alphabet = alphabet
|
| 128 |
+
self._strand = strand
|
| 129 |
+
|
| 130 |
+
def query(self, target_sequence: str) -> msa_tool.MsaToolResult:
|
| 131 |
+
"""Query the database (sharded or unsharded) using Nhmmer."""
|
| 132 |
+
if self._shard_paths:
|
| 133 |
+
# Sharded case, run the query against each database shard in parallel.
|
| 134 |
+
logging.info(
|
| 135 |
+
'Query sequence (sharded db): %s',
|
| 136 |
+
target_sequence
|
| 137 |
+
if len(target_sequence) <= 16
|
| 138 |
+
else f'{target_sequence[:16]}... (len {len(target_sequence)})',
|
| 139 |
+
)
|
| 140 |
+
|
| 141 |
+
global_temp_dir = tempfile.mkdtemp()
|
| 142 |
+
|
| 143 |
+
def _query_shard_fn(
|
| 144 |
+
shard_path: str,
|
| 145 |
+
) -> tuple[msa_tool.MsaToolResult, float]:
|
| 146 |
+
t_start = time.time()
|
| 147 |
+
# Get tblout as it contains e-values we need for merging sequences.
|
| 148 |
+
result = self._query_db_shard(
|
| 149 |
+
target_sequence=target_sequence,
|
| 150 |
+
db_shard_path=shard_path,
|
| 151 |
+
get_tblout=True, # Tblout contains e-values needed for merging.
|
| 152 |
+
global_temp_dir=global_temp_dir,
|
| 153 |
+
)
|
| 154 |
+
return result, time.time() - t_start
|
| 155 |
+
|
| 156 |
+
with futures.ThreadPoolExecutor(max_workers=self._max_threads) as ex:
|
| 157 |
+
tool_outputs, timings = zip(*ex.map(_query_shard_fn, self._shard_paths))
|
| 158 |
+
|
| 159 |
+
logging.info(
|
| 160 |
+
'Finished query for %d shards, shard timings (seconds): %s',
|
| 161 |
+
len(tool_outputs),
|
| 162 |
+
', '.join(f'{t:.1f}' for t in timings),
|
| 163 |
+
)
|
| 164 |
+
|
| 165 |
+
shutil.rmtree(global_temp_dir, ignore_errors=True)
|
| 166 |
+
return _merge_nhmmer_results(tool_outputs, self._max_sequences)
|
| 167 |
+
|
| 168 |
+
else:
|
| 169 |
+
# Non-sharded case, run the query against the whole database.
|
| 170 |
+
logging.info(
|
| 171 |
+
'Query sequence (non-sharded db): %s',
|
| 172 |
+
target_sequence
|
| 173 |
+
if len(target_sequence) <= 16
|
| 174 |
+
else f'{target_sequence[:16]}... (len {len(target_sequence)})',
|
| 175 |
+
)
|
| 176 |
+
return self._query_db_shard(
|
| 177 |
+
target_sequence=target_sequence,
|
| 178 |
+
db_shard_path=self._database_path,
|
| 179 |
+
get_tblout=False,
|
| 180 |
+
)
|
| 181 |
+
|
| 182 |
+
def _query_db_shard(
|
| 183 |
+
self,
|
| 184 |
+
*,
|
| 185 |
+
target_sequence: str,
|
| 186 |
+
db_shard_path: str,
|
| 187 |
+
get_tblout: bool,
|
| 188 |
+
global_temp_dir: str | None = None,
|
| 189 |
+
) -> msa_tool.MsaToolResult:
|
| 190 |
+
"""Query the database shard using Nhmmer."""
|
| 191 |
+
|
| 192 |
+
with tempfile.TemporaryDirectory(dir=global_temp_dir) as query_tmp_dir:
|
| 193 |
+
input_a3m_path = os.path.join(query_tmp_dir, 'query.a3m')
|
| 194 |
+
output_sto_path = os.path.join(query_tmp_dir, 'output.sto')
|
| 195 |
+
pathlib.Path(output_sto_path).touch()
|
| 196 |
+
subprocess_utils.create_query_fasta_file(
|
| 197 |
+
sequence=target_sequence, path=input_a3m_path
|
| 198 |
+
)
|
| 199 |
+
|
| 200 |
+
cmd_flags = [
|
| 201 |
+
*('-o', '/dev/null'), # Don't pollute stdout with nhmmer output.
|
| 202 |
+
'--noali', # Don't include the alignment in stdout.
|
| 203 |
+
*('--cpu', str(self._n_cpu)),
|
| 204 |
+
]
|
| 205 |
+
|
| 206 |
+
if get_tblout:
|
| 207 |
+
output_tblout_path = pathlib.Path(query_tmp_dir, 'tblout.txt')
|
| 208 |
+
output_tblout_path.touch()
|
| 209 |
+
cmd_flags.extend(['--tblout', str(output_tblout_path)])
|
| 210 |
+
else:
|
| 211 |
+
output_tblout_path = None
|
| 212 |
+
|
| 213 |
+
cmd_flags.extend(['-E', str(self._e_value)])
|
| 214 |
+
|
| 215 |
+
if self._z_value is not None:
|
| 216 |
+
cmd_flags.extend(['-Z', str(self._z_value)])
|
| 217 |
+
|
| 218 |
+
if self._alphabet:
|
| 219 |
+
cmd_flags.extend([f'--{self._alphabet}'])
|
| 220 |
+
|
| 221 |
+
if self._strand is not None:
|
| 222 |
+
cmd_flags.extend([f'--{self._strand}'])
|
| 223 |
+
|
| 224 |
+
cmd_flags.extend(['-A', output_sto_path])
|
| 225 |
+
# As recommend by RNAcentral for short sequences.
|
| 226 |
+
if (
|
| 227 |
+
self._alphabet == 'rna'
|
| 228 |
+
and len(target_sequence) < _SHORT_SEQUENCE_CUTOFF
|
| 229 |
+
):
|
| 230 |
+
cmd_flags.extend(['--F3', str(0.02)])
|
| 231 |
+
else:
|
| 232 |
+
cmd_flags.extend(['--F3', str(self._filter_f3)])
|
| 233 |
+
|
| 234 |
+
# The input A3M and the db are the last two arguments.
|
| 235 |
+
cmd_flags.extend((input_a3m_path, db_shard_path))
|
| 236 |
+
|
| 237 |
+
cmd = [self._binary_path, *cmd_flags]
|
| 238 |
+
subprocess_utils.run(
|
| 239 |
+
cmd=cmd,
|
| 240 |
+
cmd_name=f'Nhmmer ({os.path.basename(db_shard_path)})',
|
| 241 |
+
log_stdout=False,
|
| 242 |
+
log_stderr=True,
|
| 243 |
+
log_on_process_error=True,
|
| 244 |
+
)
|
| 245 |
+
|
| 246 |
+
if os.path.getsize(output_sto_path) > 0:
|
| 247 |
+
with open(output_sto_path) as f:
|
| 248 |
+
a3m_out = parsers.convert_stockholm_to_a3m(
|
| 249 |
+
f, max_sequences=self._max_sequences - 1 # Query not included.
|
| 250 |
+
)
|
| 251 |
+
# Nhmmer hits are generally shorter than the query sequence. To get MSA
|
| 252 |
+
# of width equal to the query sequence, align hits to the query profile.
|
| 253 |
+
logging.info('Aligning output a3m of size %d bytes', len(a3m_out))
|
| 254 |
+
|
| 255 |
+
aligner = hmmalign.Hmmalign(self._hmmalign_binary_path)
|
| 256 |
+
target_sequence_fasta = f'>query\n{target_sequence}\n'
|
| 257 |
+
profile_builder = hmmbuild.Hmmbuild(
|
| 258 |
+
binary_path=self._hmmbuild_binary_path, alphabet=self._alphabet
|
| 259 |
+
)
|
| 260 |
+
profile = profile_builder.build_profile_from_a3m(target_sequence_fasta)
|
| 261 |
+
a3m_out = aligner.align_sequences_to_profile(
|
| 262 |
+
profile=profile, sequences_a3m=a3m_out
|
| 263 |
+
)
|
| 264 |
+
a3m_out = ''.join([target_sequence_fasta, a3m_out])
|
| 265 |
+
|
| 266 |
+
# Parse the output a3m to remove line breaks.
|
| 267 |
+
a3m = '\n'.join(
|
| 268 |
+
[f'>{n}\n{s}' for s, n in parsers.lazy_parse_fasta_string(a3m_out)]
|
| 269 |
+
)
|
| 270 |
+
else:
|
| 271 |
+
# Nhmmer returns an empty file if there are no hits.
|
| 272 |
+
# In this case return only the query sequence.
|
| 273 |
+
a3m = f'>query\n{target_sequence}'
|
| 274 |
+
|
| 275 |
+
# Get the tabular output which has e.g. e-value for each target.
|
| 276 |
+
tbl = '' if output_tblout_path is None else output_tblout_path.read_text()
|
| 277 |
+
|
| 278 |
+
return msa_tool.MsaToolResult(
|
| 279 |
+
target_sequence=target_sequence,
|
| 280 |
+
e_value=self._e_value,
|
| 281 |
+
a3m=a3m,
|
| 282 |
+
tblout=tbl,
|
| 283 |
+
)
|
| 284 |
+
|
| 285 |
+
|
| 286 |
+
def _merge_nhmmer_results(
|
| 287 |
+
nhmmer_results: Sequence[msa_tool.MsaToolResult],
|
| 288 |
+
max_sequences: int,
|
| 289 |
+
) -> msa_tool.MsaToolResult:
|
| 290 |
+
"""Merges nhmmer result protos into a single one."""
|
| 291 |
+
assert len(set(nh_res.target_sequence for nh_res in nhmmer_results)) == 1
|
| 292 |
+
assert len(set(nh_res.e_value for nh_res in nhmmer_results)) == 1
|
| 293 |
+
|
| 294 |
+
# Parse the TBL output, create a mapping from unique hit ID to TBL line.
|
| 295 |
+
parsed_tbl = {}
|
| 296 |
+
for nhmmer_result in nhmmer_results:
|
| 297 |
+
assert nhmmer_result.tblout is not None
|
| 298 |
+
for line in nhmmer_result.tblout.splitlines():
|
| 299 |
+
if not line.startswith('#'):
|
| 300 |
+
line_fields = line.split(maxsplit=15)
|
| 301 |
+
accession = line_fields[0]
|
| 302 |
+
alignment_from = line_fields[6]
|
| 303 |
+
alignment_to = line_fields[7]
|
| 304 |
+
# This is the unique ID that is used in the output A3M.
|
| 305 |
+
unique_id = f'{accession}/{alignment_from}-{alignment_to}'
|
| 306 |
+
parsed_tbl[unique_id] = line
|
| 307 |
+
|
| 308 |
+
# Create an iterator and merge a3m info with tbl info.
|
| 309 |
+
def _merged_a3m_tbl_iter(a3m: str) -> Iterable[tuple[str, str, str, str]]:
|
| 310 |
+
# Don't parse the entire a3m, lazily parse only as many sequences as needed.
|
| 311 |
+
iterator = iter(parsers.lazy_parse_fasta_string(a3m))
|
| 312 |
+
next(iterator) # Skip the query which isn't present in tblout.
|
| 313 |
+
for sequence, description in iterator:
|
| 314 |
+
name = description.partition(' ')[0]
|
| 315 |
+
if tbl_info := parsed_tbl.get(name):
|
| 316 |
+
# Skip sequences for which we don't have tbl information.
|
| 317 |
+
yield sequence, description, tbl_info, name
|
| 318 |
+
|
| 319 |
+
def sort_key(seq_data: tuple[str, str, str, str]) -> tuple[float, str]:
|
| 320 |
+
unused_seq, unused_description, tbl_info, name = seq_data
|
| 321 |
+
# Nucleic tblout has 16 space delimited columns. "-" used if no value
|
| 322 |
+
# present. We want e-value in column 12, so do only 13 splits. Use the name
|
| 323 |
+
# in case of an e-value tie.
|
| 324 |
+
return float(tbl_info.split(maxsplit=13)[12]), name
|
| 325 |
+
|
| 326 |
+
# A3M/TBL is sorted by e-value and name, hence we can merge them efficiently.
|
| 327 |
+
merged_a3m_and_tblout = heapq.merge(
|
| 328 |
+
*[_merged_a3m_tbl_iter(res.a3m) for res in nhmmer_results],
|
| 329 |
+
key=sort_key,
|
| 330 |
+
)
|
| 331 |
+
|
| 332 |
+
# Truncate the a3m to max_sequences. Do not truncate the tblout.
|
| 333 |
+
merged_tblout = []
|
| 334 |
+
merged_a3m = [f'>query\n{nhmmer_results[0].target_sequence}']
|
| 335 |
+
for seq, description, tbl_info, _ in merged_a3m_and_tblout:
|
| 336 |
+
merged_tblout.append(tbl_info)
|
| 337 |
+
if len(merged_a3m) < max_sequences:
|
| 338 |
+
merged_a3m.append(f'>{description}\n{seq}')
|
| 339 |
+
|
| 340 |
+
logging.info(
|
| 341 |
+
'Limiting merged MSA depth from %d to %d',
|
| 342 |
+
len(merged_tblout),
|
| 343 |
+
max_sequences,
|
| 344 |
+
)
|
| 345 |
+
|
| 346 |
+
return msa_tool.MsaToolResult(
|
| 347 |
+
target_sequence=nhmmer_results[0].target_sequence,
|
| 348 |
+
a3m='\n'.join(merged_a3m),
|
| 349 |
+
e_value=nhmmer_results[0].e_value,
|
| 350 |
+
tblout=None, # We no longer need the tblout.
|
| 351 |
+
)
|
flax_model/alphafold3/jax/attention/attention_call_arg_specs.py
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Attention call argument specifications.
|
| 4 |
+
|
| 5 |
+
Attention argument specifications used by users of the library.
|
| 6 |
+
They are the most important test cases, and also cases for optimize
|
| 7 |
+
performance of via autotuning.
|
| 8 |
+
"""
|
| 9 |
+
|
| 10 |
+
from typing import Any
|
| 11 |
+
|
| 12 |
+
import jax
|
| 13 |
+
|
| 14 |
+
ShapedArray = jax.ShapeDtypeStruct
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def _make_argspec(
|
| 18 |
+
*,
|
| 19 |
+
q_shape,
|
| 20 |
+
dtype,
|
| 21 |
+
k_shape=None,
|
| 22 |
+
v_shape=None,
|
| 23 |
+
bias_shape=None,
|
| 24 |
+
mask_shape=None,
|
| 25 |
+
**kwargs,
|
| 26 |
+
) -> dict[str, Any]:
|
| 27 |
+
"""Make argspec from shapes and kwargs."""
|
| 28 |
+
if k_shape is None:
|
| 29 |
+
k_shape = q_shape
|
| 30 |
+
if v_shape is None:
|
| 31 |
+
v_shape = k_shape
|
| 32 |
+
|
| 33 |
+
return dict(
|
| 34 |
+
query=ShapedArray(q_shape, dtype),
|
| 35 |
+
key=ShapedArray(k_shape, dtype),
|
| 36 |
+
value=ShapedArray(v_shape, dtype),
|
| 37 |
+
bias=ShapedArray(bias_shape, dtype) if bias_shape is not None else None,
|
| 38 |
+
mask=ShapedArray(mask_shape, 'bool_') if mask_shape is not None else None,
|
| 39 |
+
**kwargs,
|
| 40 |
+
)
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
# A subset of the full set of argument specifications. Useful for tap-tests and
|
| 44 |
+
# microbenchmarks.
|
| 45 |
+
CALL_ARG_SPECS = dict(
|
| 46 |
+
vanilla_f32=_make_argspec(q_shape=(8, 1024, 4, 128), dtype='float32'),
|
| 47 |
+
vanilla_bf16=_make_argspec(q_shape=(8, 1024, 4, 128), dtype='bfloat16'),
|
| 48 |
+
alphafold=_make_argspec(
|
| 49 |
+
q_shape=(384, 384, 4, 32),
|
| 50 |
+
bias_shape=(1, 4, 384, 384),
|
| 51 |
+
mask_shape=(384, 1, 1, 384),
|
| 52 |
+
dtype='bfloat16',
|
| 53 |
+
),
|
| 54 |
+
)
|
flax_model/alphafold3/model/components/__init__.py
ADDED
|
File without changes
|
flax_model/alphafold3/model/merging_features.py
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
"""Methods for merging existing features to create a new example.
|
| 4 |
+
|
| 5 |
+
Covers:
|
| 6 |
+
- Merging features across chains.
|
| 7 |
+
- Merging the paired and unpaired parts of the MSA.
|
| 8 |
+
"""
|
| 9 |
+
|
| 10 |
+
from typing import TypeAlias
|
| 11 |
+
|
| 12 |
+
from flax_model.alphafold3.model import data_constants
|
| 13 |
+
import jax.numpy as jnp
|
| 14 |
+
import numpy as np
|
| 15 |
+
|
| 16 |
+
NUM_SEQ_NUM_RES_MSA_FEATURES = data_constants.NUM_SEQ_NUM_RES_MSA_FEATURES
|
| 17 |
+
NUM_SEQ_MSA_FEATURES = data_constants.NUM_SEQ_MSA_FEATURES
|
| 18 |
+
MSA_PAD_VALUES = data_constants.MSA_PAD_VALUES
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
xnp_ndarray: TypeAlias = np.ndarray | jnp.ndarray # pylint: disable=invalid-name
|
| 22 |
+
BatchDict: TypeAlias = dict[str, xnp_ndarray]
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def _pad_features_to_max(feat_name: str, chains: list[BatchDict], axis: int):
|
| 26 |
+
"""Pad a set of features to the maximum size amongst all chains.
|
| 27 |
+
|
| 28 |
+
Args:
|
| 29 |
+
feat_name: The feature name to pad.
|
| 30 |
+
chains: A list of chains with associated features.
|
| 31 |
+
axis: Which axis to pad to the max.
|
| 32 |
+
|
| 33 |
+
Returns:
|
| 34 |
+
A list of features, all with the same size on the given axis.
|
| 35 |
+
"""
|
| 36 |
+
max_num_seq = np.max([chain[feat_name].shape[axis] for chain in chains])
|
| 37 |
+
|
| 38 |
+
padded_feats = []
|
| 39 |
+
for chain in chains:
|
| 40 |
+
feat = chain[feat_name]
|
| 41 |
+
|
| 42 |
+
padding = np.zeros_like(feat.shape) # pytype: disable=attribute-error
|
| 43 |
+
padding[axis] = max_num_seq - feat.shape[axis] # pytype: disable=attribute-error
|
| 44 |
+
padding = [(0, p) for p in padding]
|
| 45 |
+
padded_feats.append(
|
| 46 |
+
np.pad(
|
| 47 |
+
feat,
|
| 48 |
+
padding,
|
| 49 |
+
mode='constant',
|
| 50 |
+
constant_values=MSA_PAD_VALUES[feat_name],
|
| 51 |
+
)
|
| 52 |
+
)
|
| 53 |
+
return padded_feats
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def merge_msa_features(feat_name: str, chains: list[BatchDict]) -> np.ndarray:
|
| 57 |
+
"""Merges MSA features with shape (NUM_SEQ, NUM_RES) across chains."""
|
| 58 |
+
expected_dtype = chains[0][feat_name].dtype
|
| 59 |
+
if '_all_seq' in feat_name:
|
| 60 |
+
return np.concatenate(
|
| 61 |
+
[c.get(feat_name, np.array([], expected_dtype)) for c in chains], axis=1
|
| 62 |
+
)
|
| 63 |
+
else:
|
| 64 |
+
# Since each MSA can be of different lengths, we first need to pad them
|
| 65 |
+
# all to the size of the largest MSA before concatenating.
|
| 66 |
+
padded_feats = _pad_features_to_max(feat_name, chains, axis=0)
|
| 67 |
+
return np.concatenate(padded_feats, axis=1)
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def merge_paired_and_unpaired_msa(example: BatchDict) -> BatchDict:
|
| 71 |
+
"""Concatenates the paired (all_seq) MSA features with the unpaired ones."""
|
| 72 |
+
new_example = dict(example)
|
| 73 |
+
|
| 74 |
+
for feature_name in NUM_SEQ_NUM_RES_MSA_FEATURES + NUM_SEQ_MSA_FEATURES:
|
| 75 |
+
if feature_name in example and feature_name + '_all_seq' in example:
|
| 76 |
+
feat = example[feature_name]
|
| 77 |
+
feat_all_seq = example[feature_name + '_all_seq']
|
| 78 |
+
merged_feat = np.concatenate([feat_all_seq, feat], axis=0)
|
| 79 |
+
new_example[feature_name] = merged_feat
|
| 80 |
+
|
| 81 |
+
new_example['num_alignments'] = np.array(
|
| 82 |
+
new_example['msa'].shape[0], dtype=np.int32
|
| 83 |
+
)
|
| 84 |
+
return new_example
|