> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Malinois Activity

> Score regulatory DNA activity using Malinois with max/min cell-type objectives.

<div class="page-hero">
  <img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/constraint/malinois-activity/hero.png" alt="Malinois Activity" />
</div>

<Note>
  **License:** Malinois is open source and free for academic and commercial use under an MIT license and may require explicit attribution when utilized. Please refer to [the license](https://github.com/sjgosai/boda2/blob/main/LICENSE.mit) for full terms.
</Note>

<p class="entity-disclaimer">This constraint is open source. Any third-party models, product names, or trademarks referenced are the property of their respective owners, and Proto is not affiliated with them.</p>

<hr class="entity-rule" />

<input type="radio" name="tab-constraint-malinois-activity" id="none-constraint-malinois-activity" class="tab-radio-input" />

<input type="radio" name="tab-constraint-malinois-activity" id="tools-constraint-malinois-activity" class="tab-radio-input" defaultChecked />

<input type="radio" name="tab-constraint-malinois-activity" id="source-constraint-malinois-activity" class="tab-radio-input" />

<input type="radio" name="tab-constraint-malinois-activity" id="cite-constraint-malinois-activity" class="tab-radio-input" />

<div class="tool-tab-bar"><span class="tool-tab-wrap"><label for="tools-constraint-malinois-activity" class="tool-tab tab-open badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label><label for="none-constraint-malinois-activity" class="tool-tab tab-close badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label></span> <span class="tool-tab-wrap"><label for="source-constraint-malinois-activity" class="tool-tab tab-open badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label><label for="none-constraint-malinois-activity" class="tool-tab tab-close badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label></span> <span class="tool-tab-wrap"><label for="cite-constraint-malinois-activity" class="tool-tab tab-open badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label><label for="none-constraint-malinois-activity" class="tool-tab tab-close badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label></span></div>

<a href="/docs/tools/sequence-scoring/malinois" class="tab-panel tools-panel tools-panel-single" data-tab="tools-constraint-malinois-activity">
  <div class="tools-single-card">
    <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/malinois/social.png" alt="" loading="lazy" />
  </div>

  <span class="panel-goto-btn tools-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg> Go to Tool Page</span></span>
</a>

<a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/constraint/sequence_annotation/malinois_activity_constraint.py#L139" target="_blank" class="tab-panel source-panel" data-tab="source-constraint-malinois-activity">
  <div class="source-info">
    <img noZoom src="https://github.com/evo-design.png?size=40" class="source-avatar" width="36" height="36" />

    <span class="source-path">evo-design/proto-language<span class="source-subpath">/proto\_language/constraint/sequence\_annotation/malinois\_activity\_constraint.py</span></span>
  </div>

  <span class="panel-goto-btn source-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View source</span></span>
</a>

<div class="tab-panel cite-panel" data-tab="cite-constraint-malinois-activity">
  <div class="cite-code-wrap">
    ```bibtex theme={null}
    @article{gosai2024machine,
      title={Machine-guided design of cell-type-targeting cis-regulatory elements},
      author={Gosai, Sager J. and Castro, Rodrigo I. and Fuentes, Natalia and Butts, John C. and Mouri, Kousuke and Alasoadura, Michael and Kales, Susan and Nguyen, Thanh Thanh L. and Noche, Ramil R. and Rao, Arya S. and Joy, Mary T. and Sabeti, Pardis C. and Reilly, Steven K. and Tewhey, Ryan},
      journal={Nature},
      volume={634},
      pages={1211--1220},
      year={2024},
      doi={10.1038/s41586-024-08070-z},
      url={https://doi.org/10.1038/s41586-024-08070-z}
    }

    @misc{gosai2024machine_zenodo,
      title={Machine-guided design of cell-type-targeting cis-regulatory elements},
      author={Gosai, Sager and Castro, Rodrigo and Fuentes, Natalia and Butts, John and Mouri, Kousuke and Alasoadura, Michael and Kales, Susan and Nguyen, Thanh Thanh and Noche, Ramil and Rao, Arya and Joy, Mary Teena and Sabeti, Pardis and Reilly, Steven and Tewhey, Ryan},
      year={2024},
      publisher={Zenodo},
      version={1.0},
      doi={10.5281/zenodo.10698014},
      url={https://doi.org/10.5281/zenodo.10698014},
      note={Supplemental data and resources for the Nature article, including the Malinois model artifact}
    }
    ```
  </div>

  <span class="panel-goto-btn cite-copy-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Copy citation</span></span>
</div>

<div class="entity-contributors"><span class="entity-contributors-label">Constraint contributors</span><span class="entity-contributors-people"><a class="entity-contributor" href="https://github.com/dguo8412" target="_blank" rel="noopener" title="dguo8412: 2 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/46211285?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">dguo8412</span></a></span></div>
Score DNA sequences with Malinois as a bounded lower-is-better objective.

## API Reference

<div class="api-model-section api-model-static api-config-section">
  <div class="api-model-header"><span class="api-model-badge api-config-badge">Config</span><span class="api-model-name">MalinoisActivityConfig</span><a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/constraint/sequence_annotation/malinois_activity_constraint.py#L24" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a></div>

  Configuration for Malinois regulatory DNA activity scoring.

  Malinois predicts MPRA activity for 200 bp DNA inserts in K562, HepG2, and
  SK-N-SH contexts. This constraint maps the requested raw cell-type score to
  a bounded lower-is-better objective:

  For `direction="max"`:

  `score = 1 - sigmoid((raw_score - sigmoid_center) / sigmoid_scale)`

  For `direction="min"`:

  `score = sigmoid((raw_score - sigmoid_center) / sigmoid_scale)`

  With the default center of 4.0, raw scores above 4.0 receive penalties below
  0.5 in maximization mode and above 0.5 in minimization mode.

  <ParamField path="cell_type" type="enum" default="K562">
    Malinois cell-type output to optimize.

    Options: `K562`, `HepG2`, `SKNSH`
  </ParamField>

  <ParamField path="direction" type="enum" default="max">
    Use 'max' to encourage activity or 'min' to suppress activity in the selected cell type.

    Options: `max`, `min`
  </ParamField>

  <ParamField path="sigmoid_center" type="number" default="4.0">
    Raw Malinois score where the transformed constraint score is 0.5.
  </ParamField>

  <ParamField path="sigmoid_scale" type="number" default="1.0">
    Positive scale for the raw-score sigmoid transform.
  </ParamField>

  <ParamField path="seq_length" type="integer" default="200">
    Expected DNA insert length before Malinois MPRA flank padding.
  </ParamField>

  <ParamField path="artifact_path" type="string" default="">
    Optional local artifact tarball path; empty uses the managed cache download.
  </ParamField>

  <ParamField path="artifact_url" type="string" default="https://zenodo.org/records/10698014/files/MODELS-malinois_artifacts__20211113_021200__287348.tar.gz?download=1">
    HTTPS URL used to provision the Malinois artifact.
  </ParamField>

  <ParamField path="artifact_md5" type="string" default="375142a714e7df73c463b46113a65210">
    Expected MD5 checksum for the downloaded Malinois artifact.
  </ParamField>

  <ParamField path="malinois_dir" type="string" default="">
    Optional local Malinois metadata directory; empty uses the managed cache extraction.
  </ParamField>

  <ParamField path="batch_size" type="integer" default="1">
    Number of sequences to score simultaneously on GPU.
  </ParamField>

  <ParamField path="device" type="string" default="cuda">
    Device for Malinois inference.
  </ParamField>
</div>

## Usage

```python python icon="python" theme={null}
from proto_language.core import Constraint
from proto_language.constraint import malinois_activity_constraint, MalinoisActivityConfig

constraint = Constraint(
    inputs=[segment],
    function=malinois_activity_constraint,
    function_config=MalinoisActivityConfig(
        # Configure parameters here
    ),
)

scores = constraint.evaluate()
```

## Metadata

| Property        | Value                          |
| --------------- | ------------------------------ |
| Key             | `malinois-activity`            |
| Function        | `malinois_activity_constraint` |
| Category        | `sequence_annotation`          |
| Mode            | `discrete`                     |
| Uses GPU        | `True`                         |
| Supported Types | `dna`                          |
