Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mdm-lab/wiki
  • hvaysset/wiki
  • jsousa/wiki
  • tclabby/wiki
4 results
Show changes
Commits on Source (12)
......@@ -26,6 +26,7 @@ cache:
stages:
- delete-release
- build-df-cli
- lint
- get-data
- deploy-meilisearch
- update-meilisearch-indexes
......@@ -61,10 +62,8 @@ build:df-wiki-cli:
- echo "Build done ..."
- poetry publish --repository gitlab --skip-existing
- echo "Publishing done!"
rules:
- changes:
- packages/df-wiki-cli/**/*.{py, toml} # ... or whatever your file extension is
allow_failure: false
when: manual
allow_failure: true
################ DEPLOY MEILISEARCH #################
.deploy:meilisearch:
......@@ -163,6 +162,20 @@ delete-meili-helm-release:prod:
- helm delete -n ${NAMESPACE} ${CI_PROJECT_NAME}-${CI_ENVIRONMENT_NAME}-meilisearch
# lint
lint:
image: python:3.11-bullseye
stage: lint
before_script:
- pip install df-wiki-cli --index-url https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.pasteur.fr/api/v4/projects/5222/packages/pypi/simple
- cd content/3.defense-systems
script:
- find . -name '*.md' -print0 | xargs -0 -I {} df-wiki-cli content lint --file {}
when: manual
rules:
- if: $CI_COMMIT_BRANCH != "main"
# Update Meili search indexes
.update-meilisearch-index:
......
......@@ -3,16 +3,31 @@ title: AbiL
layout: article
tableColumns:
article:
doi: 10.1016/j.mib.2005.06.006
doi: 10.1111/j.1574-6968.1997.tb10185.x
abstract: |
Abortive infection (Abi) systems, also called phage exclusion, block phage multiplication and cause premature bacterial cell death upon phage infection. This decreases the number of progeny particles and limits their spread to other cells allowing the bacterial population to survive. Twenty Abi systems have been isolated in Lactococcus lactis, a bacterium used in cheese-making fermentation processes, where phage attacks are of economical importance. Recent insights in their expression and mode of action indicate that, behind diverse phenotypic and molecular effects, lactococcal Abis share common traits with the well-studied Escherichia coli systems Lit and Prr. Abis are widespread in bacteria, and recent analysis indicates that Abis might have additional roles other than conferring phage resistance.
A 16-kb plasmid (pND859) was identified from Lactococcus lactis biovar. diacetylactis UK12922 which encodes phage resistance to the small isometric phage 712 when tested in L. lactis LM0230. The gene encoding phage abortive infection, designated abi-859, was localized on a 1.2-kb region which consists of an open reading frame (ORF) of 846 bp preceded by a potential ribosome-binding site and a putative promoter region. A helix-turn-helix region typical of DNA-binding motifs was identified near the N-terminal of the abi-859 product, suggesting a possible interaction with the phage DNA.
Sensor: Unknown
Activator: Unknown
Effector: Unknown
PFAM: PF13175, PF13304, PF13707
contributors:
- Ernest Mordret
relevantAbstracts:
- doi: 10.1111/j.1574-6968.1997.tb10185.x
- doi: 10.1016/j.mib.2005.06.006
---
# AbiL
## Description
AbiL was discovered in Lactococcus lactis. A plasmid containing the defense system was found to prevent infection by phage 712 through an abortive infection system
## Molecular mechanism
Abortive infection. the PF13707 domain includes the RloB protein that is found within a bacterial restriction modification operon. This family includes the AbiLii protein that is found as part of a plasmid encoded phage abortive infection mechanism. Deletion within abiLii abolished the phage resistance. The family includes some proteins annotated as CRISPR Csm2 proteins.
## Example of genomic structure
The AbiL system is composed of 2 proteins: AbiLii2 and, AbiLi2.
......@@ -76,14 +91,6 @@ end
style Title3 fill:none,stroke:none,stroke-width:none
style Title4 fill:none,stroke:none,stroke-width:none
</mermaid>
## Relevant abstracts
::relevant-abstracts
---
items:
- doi: 10.1023/A:1002027321171
- doi: 10.1016/j.mib.2005.06.006
---
::
......@@ -7,12 +7,28 @@ tableColumns:
abstract: |
Toxin-antitoxin (TA) systems are broadly distributed, yet poorly conserved, genetic elements whose biological functions are unclear and controversial. Some TA systems may provide bacteria with immunity to infection by their ubiquitous viral predators, bacteriophages. To identify such TA systems, we searched bioinformatically for those frequently encoded near known phage defence genes in bacterial genomes. This search identified homologues of DarTG, a recently discovered family of TA systems whose biological functions and natural activating conditions were unclear. Representatives from two different subfamilies, DarTG1 and DarTG2, strongly protected E. coli MG1655 against different phages. We demonstrate that for each system, infection with either RB69 or T5 phage, respectively, triggers release of the DarT toxin, a DNA ADP-ribosyltransferase, that then modifies viral DNA and prevents replication, thereby blocking the production of mature virions. Further, we isolated phages that have evolved to overcome DarTG defence either through mutations to their DNA polymerase or to an anti-DarT factor, gp61.2, encoded by many T-even phages. Collectively, our results indicate that phage defence may be a common function for TA systems and reveal the mechanism by which DarTG systems inhibit phage infection.
Sensor: Unknown
Activator: Unknown
Activator: Direct binding to ssDNA
Effector: Nucleic acid degrading (ADP-ribosylation)
PFAM: PF01661, PF14487
contributors:
- Ernest Mordret
relevantAbstracts:
- doi: 10.1038/s41564-022-01153-5
- doi: 10.1016/j.molcel.2016.11.014
- doi: 10.1016/j.celrep.2020.01.014
- doi: 10.1038/s41586-021-03825-4
---
# DarTG
## Description
The DarTG defense system is a toxin-antitoxin (TA) system that provides defense against bacteriophages by ADP-ribosylating viral DNA, thereby preventing replication and the production of mature virions. This system consists of two subfamilies, DarTG1 and DarTG2, which protect against different phages. When infected by specific phages, the DarT toxin, a DNA ADP-ribosyltransferase, is released, modifying viral DNA and inhibiting replication.
## Molecular mechanism
DarT uses NAD+ to ADP-ribosylates tymidines on ssDNA, while DarG catalyses the reverse reaction. ADP-ribosylation of ssDNA prevents DNA replication and triggers the cell's SOS response. While initially proposed to work on bacterial ssDNA as a TA system :ref{doi=10.1016/j.molcel.2016.11.014}, Leroux et al. :ref{doi=10.1038/s41564-022-01153-5} show that it mostly modifies viral DNA and therefore block viral replication and perturb the transcription of phage genes. They conclude that "DarTG does not ultimately kill the host cell as in a conventional Abi mechanism, but instead acts to thwart phage replication directly."
## Example of genomic structure
The DarTG system is composed of 2 proteins: DarT and, DarG.
......@@ -77,13 +93,5 @@ end
style Title3 fill:none,stroke:none,stroke-width:none
style Title4 fill:none,stroke:none,stroke-width:none
</mermaid>
## Relevant abstracts
::relevant-abstracts
---
items:
- doi: 10.1038/s41564-022-01153-5
---
::
......@@ -9,9 +9,28 @@ tableColumns:
Sensor: Unknown
Activator: Unknown
Effector: Unknown
PFAM: PF01602, PF18742
contributors:
- Helena Shomar
- Marie Guillaume
relevantAbstracts:
- doi: 10.1016/j.chom.2022.09.017
---
# Olokun
## Description
The system Olokun is composed of 2 genes OloA (Adaptin_N domain) and OloB (nuclease domain) of unknown function.
This system was experimentally validated in _Escherichia coli_ and protects against LambdaVir and SECphi27 infection.
The system is named after a revered deity of the Yoruba religion, associated with the deep sea and depicted as an enormously powerful figure. They are believed to posses immense wealth, are associated with health, fertility and prosperity, and revered for their ability for inducing profound transformation and renewal. They are frequently depicted as a mermaid or merman, with both masculine and feminine aspects, reflecting the diversity and depth of the ocean.
## Molecular mechanisms
To our knowledde, the molecular mechanism is unknown. Please update.
## Example of genomic structure
The Olokun system is composed of 2 proteins: OloA and, OloB.
......@@ -75,12 +94,3 @@ end
style Title3 fill:none,stroke:none,stroke-width:none
style Title4 fill:none,stroke:none,stroke-width:none
</mermaid>
## Relevant abstracts
::relevant-abstracts
---
items:
- doi: 10.1016/j.chom.2022.09.017
---
::
......@@ -9,9 +9,22 @@ tableColumns:
Sensor: Unknown
Activator: Unknown
Effector: Unknown
contributors:
- Ernest Mordret
relevant abstracts:
- doi: 10.1038/s41564-022-01219-4
---
# PD-T4-3
## Description
PD-T4-3 is a single gene system isolated during an experimental screen of fosmids derived from 71 strains of diverse E.coli, and cloned back in a derivative of K12. Fragments containing the PD-T4-3 gene were shown to provide resistance to phage T4. The protein is characterized by a GIY-YIG nuclease domain, and mutations inactivating this domain abolished the resistance phenotype. It was originally found on a µ-like prophage
## Molecular mechanism
the molecular mechanism of this system is unknown
## Example of genomic structure
The PD-T4-3 system is composed of one protein: PD-T4-3.
......@@ -69,12 +82,5 @@ end
style Title3 fill:none,stroke:none,stroke-width:none
style Title4 fill:none,stroke:none,stroke-width:none
</mermaid>
## Relevant abstracts
::relevant-abstracts
---
items:
- doi: 10.1038/s41564-022-01219-4
---
::
......@@ -10,9 +10,24 @@ tableColumns:
Activator: Unknown
Effector: Unknown
PFAM: PF10053, PF13538
contributors:
- Ernest Mordret
relevantAbstracts:
- doi: 10.1016/j.chom.2022.02.018
---
# Rst_HelicaseDUF2290
## Description
The Rst_HelicaseDUF2290 system was discovered during a screen for defense systems targeted at hotspots of antiphage activity in phages and phage-satellites. It is composed of 2 proteins, an helicase and a protein with the domain DUF2290.
## Molecular mechanism
The molecular mechanism of the Rst_HelicaseDUF2290 is unkown.
## Example of genomic structure
The Rst_HelicaseDUF2290 system is composed of 2 proteins: Helicase and, DUF2290.
......@@ -75,13 +90,4 @@ end
style Title3 fill:none,stroke:none,stroke-width:none
style Title4 fill:none,stroke:none,stroke-width:none
</mermaid>
## Relevant abstracts
::relevant-abstracts
---
items:
- doi: 10.1016/j.chom.2022.02.018
---
::
import typer
from typing_extensions import Annotated
from typing import Optional, List
from pathlib import Path
from pydantic import BaseModel, ValidationError
from pydantic_yaml import parse_yaml_raw_as, to_yaml_str
import frontmatter
from enum import Enum
from rich.console import Console
from rich import print as rprint
from rich.layout import Layout
from rich.panel import Panel
console = Console()
app = typer.Typer()
class LayoutEnum(str, Enum):
article = "article"
db = "db"
class TableArticle(BaseModel):
doi: str
class TableColumns(BaseModel):
article: TableArticle
Sensor: str
Activator: str
Effector: str
PFAM: str
class RelevantAbstract(BaseModel):
doi: str
class FrontMatter(BaseModel):
title: str
layout: LayoutEnum
tableColumns: TableColumns
relevantAbstracts: List[RelevantAbstract]
contributors: List[str]
@app.command()
def lint(
file: Annotated[
Path,
typer.Option(
exists=False,
file_okay=True,
writable=True,
),
],
):
console.rule(f"[bold blue]{file.name}", style="blue")
with open(file) as f:
metadata, _ = frontmatter.parse(f.read())
# print(metadata)
try:
FrontMatter.model_validate(metadata)
except ValidationError as exc:
# print(repr(exc.errors()[0]["type"]))
# print(repr(exc))
# print(exc.errors())
# pprint(exc.errors(), expand_all=True)
for err in exc.errors():
console.print(
f"[red]{err['msg']} : {err['type']} {' -> '.join(err['loc'])}"
)
else:
console.print("[green] Everything is alright")
......@@ -3,11 +3,13 @@ from pathlib import Path
from typing_extensions import Annotated
from df_wiki_cli.articles import fetch_articles
from df_wiki_cli.pfam import fetch_pfam
from df_wiki_cli.meilisearch import main
from df_wiki_cli.meilisearch import main as ms_main
from df_wiki_cli.content import main as content_main
# from df_wiki_cli.ms import main as ms_main
app = typer.Typer()
app.add_typer(main.app, name="meilisearch")
app.add_typer(ms_main.app, name="meilisearch")
app.add_typer(content_main.app, name="content")
@app.callback()
......
This diff is collapsed.
[tool.poetry]
name = "df-wiki-cli"
version = "0.1.0"
version = "0.1.1"
description = ""
authors = ["Remi PLANEL <rplanel@pasteur.fr>"]
readme = "README.md"
......@@ -15,6 +15,8 @@ pandas = "^2.1.2"
requests = "^2.31.0"
meilisearch = "^0.28.4"
pydantic = "^2.4.2"
pydantic-yaml = "^1.2.0"
python-frontmatter = "^1.0.1"
[tool.poetry.group.dev.dependencies]
......@@ -26,4 +28,4 @@ requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
df-wiki-cli = "df_wiki_cli.main:app"
\ No newline at end of file
df-wiki-cli = "df_wiki_cli.main:app"