FREECONTACT(1)
β¨ NAME β¨
freecontact(1) β your new bestie for fast protein contact prediction π§¬π it's a User Command, it's iconic, it's here to slay.
πΈ SYNOPSIS πΈ
okay so here's the whole vibe, copy-paste style:
freecontact [OPTION]
freecontact --parprof [evfold|psicov|psicov-sd] < alignment.aln >
contacts.out
/usr/share/freecontact/a2m2aln --query '^RASH_HUMAN/(\d+)' <
alignment.fa | freecontact --parprof evfold > contacts.out
the big long one with all the flags:
freecontact --ali=ALIFILE --apply-gapth=BOOL --clustpc=NUM --density=NUM
--cov20=BOOL --estimate-ivcov=BOOL --gapth=NUM --icme-timeout=NUM
--input-format=[flat|xml] --mincontsep=NUM
--output-format=[evfold|pfrmat_rr|bioxsd] --pseudocnt=NUM
--pscount-weight=NUM --rho=NUM --threads=NUM --veczw=BOOL
and the β¨basic girlβ¨ invocations:
freecontact --help --debug --quiet --version
π DESCRIPTION π
FreeContact is a protein residue contact predictor optimized for speed. no cap. it can function as an accelerated drop-in for the published contact predictors EVfold-mfDCA of DS. Marks et al. (2011) [1], and PSICOV of D. Jones et al. (2011) [2]. so you get the same energy, but faster πββοΈπ¨
how is it fast tho? a combination of vector instructions, multiple threads, and faster implementation of key parts. depending on the alignment, 8-fold or higher speedups are possible. it's giving main character energy, honestly. π
β οΈ bestie, listen. a sufficiently large alignment is required for meaningful results. as a minimum, use an alignment with an effective (after-weighting) sequence count bigger than the length of the query sequence. alignments with tens of thousands of (effective) sequences are considered good input. small alignment? small slay. so go get the big one. π«Ά
jackhmmer(1) or hhblits(1) can be used to generate the alignments, for example. (iykyk π«)
the receipts, bestie, so you can cite correctly:
[1] PLoS One. 2011;6(12):e28766. doi: 10.1371/journal.pone.0028766. Epub 2011 Dec 7. Protein 3D structure computed from evolutionary sequence variation. Marks DS, Colwell LJ, Sheridan R, Hopf TA, Pagnani A, Zecchina R, Sander C.
[2] Bioinformatics. 2012 Jan 15;28(2):184-90. Epub 2011 Nov 17. PSICOV: precise structural contact prediction using sparse inverse covariance estimation on large multiple sequence alignments. Jones DT, Buchan DW, Cozzetto D, Pontil M.
π Input
these are the formats it eats, nom nom:
flatβ the following simple input file format is used:
# querystart=5
# query=QUERYwithinsertionSEQUENCEWITHNOGAPSORINSERTIONS
QUERYSEQUENCEWITHNOGAPSORINSERTIONS
-ALIGNED---SEQUENCE--WITH-GAPS-----
ANOTHER-ALIGNED------------SEQUENCE
the # header lines are optional. header lines are used to calculate contact residue numbers and to look up respective query residues for certain output formats.
if no query is defined, the first sequence in the alignment is used as the query sequence. and bestie β the query sequence must not contain gaps in the alignment. fr fr. π«
all alignment rows must be the same length, and may contain only [ABCDEFGHIJKLMNOPQRSTUVWXYZ-]. [B] is mapped to [D], [Z] is mapped to [E], [JOUX] are mapped to [X]. [X] matches only itself for the entire program. that last bit matters, don't come for me. π
A2M input alignments can be converted to the above format using /usr/share/freecontact/a2m2aln. and cute thing: a2m2aln can be used to pipe the alignment directly into freecontact. pipes are literally the love language of unix. π₯°
xmlβ XML document with one<fc:alignment xmlns:fc="http://rostlab.org/freecontact/xsd"/>element, defined in the FreeContact schema [4] derived from BioXSD [5].
example: /usr/share/doc/freecontact/examples/PF00071_v25_1000.xml.
π¦ Output
the original EVfold-mfDCA or PSICOV output format is used by default when the respective parameter profile is selected. so it just knows. π
evfold (EVfold-mfDCA)
5 K 6 L 0.332129 3.59798
| | | | | + corrected norm (CN) contact score
| | | | + mutual information (MI) score
| | | + contact amino acid residue code
| | + contact residue number
| + contact amino acid residue code
+ contact residue number
contacts are sorted on residue number.
pfrmat_rr (PSICOV)
CASP residue-residue separation prediction (PFRMAT RR) format [3]:
55 67 0 8 10.840280
| | | | + contact score
| | +-+ range [Γ
] of Cb-Cb distance predicted for the residue pair
| | (C-alpha for glycines)
| | These two fields are invariant in the output.
| + contact residue number
+ contact residue number
contacts are sorted on score, descending. π
[3] <http://predictioncenter.org/casp10/index.cgi?page=format>
bioxsd
XML document with one <fc:contactMap xmlns:fc="http://rostlab.org/freecontact/xsd"/> element, defined in the FreeContact schema [4] derived from BioXSD [5].
example: /usr/share/doc/freecontact/examples/PF00071_v25_1000.evfold.50.xml.
π note: as BioXSD is under active development in collaboration with FreeContact, the FreeContact schema may actually be derived from a version not yet available at [5]. so don't be weird about it.
[4] <file:///usr/share/freecontact/freecontact.xsd>
[5] <http://bioxsd.org>
heads up: the output may not list all possible contacts. π not a bug, just how it is.
π REFERENCES π
Submitted. FreeContact: fast and free direct residue-residue contact prediction. KajΓ‘n L, Sustik MA, Marks DS, Hopf TA, KalaΕ‘ M, Rost B.
π OPTIONS π
here's the whole menu, bestie, every single one, no skipping:
-a[--threads] arg β threads to use [0-).0means as many as cores. let it cook on all cores π₯--apply-gaptharg β when true, exclude residue columns and rows with a weighted gap frequency >--gapthfrom the covariance matrix [Boolean].-c[--clustpc] arg β BLOSUM clustering percentage [0-100].--cov20arg β if true, leave one amino acid off the covariance matrix, making it non-overdetermined [Boolean]. one amino acid said "not today" π-d[--density] arg β target precision matrix density [0-1]. set0to not control density. (so0= hands off π)--debugβ turn on debugging.--estimate-ivcovarg β use inverse covariance matrix estimation instead of matrix inversion [Boolean].-f[--ali] arg (=-) β alignment file [path]. if-, standard input. default:-.-g[--gapth] arg β weighted gap frequency threshold (0-1].-h[--help] β produce this help message. the classic π₯Ή-i[--input-format] arg (=flat) β input format [flat|xml].--icme-timeoutarg (=1800) β inverse covariance matrix estimation timeout in seconds [0-). applied to each iversion call independently. if a timeout occurs, the program exits with status 2. so, y'know, be aware β°--mincontseparg β minimum sequence-wise contacting residue pair separation given in amino acids as (j-i>=arg).1for adjacent residues. [1-).-o[--output-format] arg β output format [evfold|pfrmat_rr|bioxsd].--parprofarg (=default) β parameter profile (optional) [default|evfold|psicov]. the default profile isevfold.
command line arguments can be used to override profile values. yes queen, override her π
evfoldβ triggers EVfold-mfDCA [1] compatibility mode.psicovβ triggers PSICOV [2] compatibility mode.psicov-sdβ triggers PSICOV [2] sensible default mode: fixed defaultrho, no density control. sensible! we love a sensible default π
-w[--pscount-weight] arg β pseudocount weight [0-1].-p[--pseudocnt] arg β pseudocount [0-).--pepβ print effective parameters on standard error. use this option to see what parametersfreecontact(1)is run with in detail. this is especially useful when the--parprofoption is used in combination with other options. peek behind the curtain, it's your right π«Ά--rhoarg β initial value of Glasso regularization parameter [0-). if negative, choose value automatically.--quietarg (=0) β print nothing but error messages on standard error. does not affect--debug. π€«--veczwarg β use vectorized sequence weighting when available [Boolean].--versionβ print version.
π EXIT STATUS π
0β no error - success. slay! π1β unspecified error. π2β a timeout (see--icme-timeout) occurred. β°
β EXAMPLES β
steal these, they're tested:
/usr/share/freecontact/a2m2aln --query '^RASH_HUMAN/(\d+)' < '/usr/share/doc/freecontact/examples/PF00071_v25_1000.fa' | \
freecontact --parprof evfold > PF00071_v25_1000.evfold
freecontact --parprof evfold -i xml -o bioxsd < '/usr/share/doc/freecontact/examples/PF00071_v25_1000.xml' > PF00071_v25_1000.evfold.xml
freecontact --parprof psicov < /usr/share/doc/freecontact/examples/demo_1000.aln > demo_1000.psicov
π§ NOTES π§
for optimal performance, use the Automatically Tuned Linear Algebra Software (ATLAS) library compiled on the machine where freecontact is run. compile it where you run it, bestie, it's bespoke π
π AUTHOR π
LΓ‘szlΓ³ KajΓ‘n <lkajan@rostlab.org>
π SEE ALSO π
jackhmmer(1), hhblits(1), blastpgp(1)
okay that's literally the whole page π this was version 1.0.21, dated 2026-02-04, from the freecontact(1) manual β go forth and predict those contacts, bestie, you're gonna eat π«Άβ¨π
π¦ where this page comes from
- ubuntu resolute: freecontact 1.0.21-15ubuntu2 Β· GPL-3.0-or-later
- ubuntu stonking: freecontact 1.0.21-15ubuntu2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms