diff --git a/README.md b/README.md index 6e0b55d480abc6de67e22edf210fc9cb15f85028..21d61f9f7451c1b65b6d1da4b102b0ddfaf8e7af 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # Knowledge database of information about defense systems in prokaryotes -## How to use references in the wiki pages +## Writting content + +You can propose modifications for all the content (cf: [help](https://defense-finder.pasteur.cloud/wiki/help)). + +### How to use references in the wiki pages You can add article references by providing a doi directly in the markdown files. There is two syntaxes that won't do exactly the same thing. @@ -37,43 +41,20 @@ For person external, you can create an [issue](https://gitlab.pasteur.fr/mdm-lab ## Contributing -Look at the [Content documentation](https://content-v2.nuxtjs.org/) to learn more. - -### Setup - -Make sure to install the dependencies: +### Run locally -```bash -# yarn -yarn install +1. install `Docker` and `Docker Compose` ([installation guide](https://docs.docker.com/engine/install/)) -# npm -npm install - -# pnpm -pnpm install +2. **Clone the repo** +```sh +git clone https://gitlab.pasteur.fr/mdm-lab/wiki.git` ``` - -### Development Server - -Start the development server on <http://localhost:3000> - -```bash -npm run dev +3. **Go to the repo :** +```sh +cd wiki ``` - -### Production - -Build the application for production: - -```bash -npm run build +4. **Start the app:** +```sh +docker compose up --build ``` - -Locally preview production build: - -```bash -npm run preview -``` - -Checkout the [deployment documentation](https://v3.nuxtjs.org/docs/deployment) for more information. +5. Go to [localhost:8082/wiki](localhost:8082/wiki) diff --git a/components/content/Alert/ExpansionDetails.vue b/components/content/Alert/ExpansionDetails.vue index 62823929718b0ffbd8a08ad8f419db08e79b4aea..58119d72940bc7dce4a0d7fcb78bb2c270d1c614 100644 --- a/components/content/Alert/ExpansionDetails.vue +++ b/components/content/Alert/ExpansionDetails.vue @@ -15,7 +15,7 @@ const theme = useTheme(); </script> <template> <div> - <v-expansion-panels> + <v-expansion-panels class="my-3"> <v-expansion-panel> <v-expansion-panel-title class=" text-h6"> {{ title }} diff --git a/components/content/ProseCode.vue b/components/content/ProseCode.vue new file mode 100644 index 0000000000000000000000000000000000000000..d7f6cd5a4e077cd1230734f92532b9d204d6a3de --- /dev/null +++ b/components/content/ProseCode.vue @@ -0,0 +1,5 @@ +<template> + <v-card class="pa-4 mx-auto my-3" rounded variant="flat" color="surface"> + <code><slot /></code> + </v-card> +</template> \ No newline at end of file diff --git a/content/1.help.md b/content/1.help.md index e3dd461a9f5a3310c5c413b681f31769f06feff5..983201dec5cb751223131463c05bcd6da1b755c0 100644 --- a/content/1.help.md +++ b/content/1.help.md @@ -5,29 +5,26 @@ navigation: icon: 'md:help' --- - - - # Documentation -## DefenseFinder +## DefenseFinder -[DefenseFinder](https://github.com/mdmparis/defense-finder) is a software to detect defense systems from bacterial genomes. -It takes as input a fasta file, nucleic or proteic (it will guess which). +[DefenseFinder](https://github.com/mdmparis/defense-finder) is a software to detect defense systems from bacterial genomes. +It takes as input a fasta file, nucleic or proteic (it will guess which). On the web service page, users can upload (1) their fasta file. One can upload multiple fasta files at once, as many jobs will be run. -Users need to provide a name for the job (2) being submitted before clicking on the submit button (3). +Users need to provide a name for the job (2) being submitted before clicking on the submit button (3). Once a job is submitted, the page is redirected to the "Analyses" panel (4) where results of the past runs can be found. {max-width=750px} -The result consists in 3 tables : +The result consists in 3 tables : + - Systems table : One system per line. On the column type, there is the name of the system, and one can click on it to be redirected to the corresponding wiki page. - Genes table : One gene per line. Those are genes from the aforementioned system, with some addition information on the quality of the hit. The key between both table is `sys_id` - HMMER table : One gene per line. Here it's all the genes hit by a hmm profile, even when the gene is not part of a defense system. - ## Contributing to the Wiki ### 1/ Create an account @@ -44,15 +41,16 @@ Once your account is created, you need to request access to the project, on the {max-width=600px} -Click, and wait for an admin approval. +Click, and wait for an admin approval. -### 2/ Edit a page. +### 2/ Edit a page Once you have access to the project (the previous step is done once), you can edit easily each page of the wiki, and post [issues](https://gitlab.pasteur.fr/mdm-lab/wiki/-/issues) (if you have question about something or remarks with anything from content to design). To edit a page, just click on the Edit on Gitlab button at the bottom of every page of the wiki, and it will lead you to the corresponding page of the wiki. -From this page, you can : +From this page, you can : + 1. Edit the text you'd like 2. Preview the change you've done (final modification might a bit different, especially if you use plugins to view citations or pdb structures) 3. Once you've finished you edits, you can specify what you did (e.g. "Re-wrote history of defense systems") @@ -60,40 +58,34 @@ From this page, you can : {max-width=750px} -Then it asks you to create a merge request. +Then it asks you to create a merge request. In other words, the modifications you made will not be reflected on the website until a few automatic checks passed (which should be ok since you modified only some text) and that another person reviewed the change, and accept the merge request. To do so, just fill in the description (1) of what you did, or anything that you would like the person who will accept the merge request to know, and just hit (2) "Create a merge request". {max-width=750px} +### 3/ Tips to write Markdown -### Tips to write Markdown +As a general advice, check an already written file to see how other pages are written.<br><br> -As a general advice, check an already written file to see how other pages are written.<br> -<br> The files you edit are in markdown, which is pretty basic language but that can let you do many things, such as tables, links and such with a particular syntax. -You can check more about this syntax here : https://docs.gitlab.com/ee/user/markdown.html<br> -<br> +You can check more about this syntax here : <https://docs.gitlab.com/ee/user/markdown.html><br><br> -To add images, you need to upload the image in the `/content/public` folder (and possibly in the corresponding folder of the defense system) and you can specify its path in the markdown file as follows :<br> -<br> +To add images, you need to upload the image in the `/content/public` folder (and possibly in the corresponding folder of the defense system) +and you can specify its path in the markdown file as follows :<br> -``` -{max-width=750px} -``` -<br> - -where `/path/within/public` is the relative path to the `public` folder (the absolute path would be `/content/public/path/within/public`) +```md + +``` -<br> +where `/path/within/public` is the relative path to the `public` folder (the absolute path would be `/content/public/path/within/public`)<br> -In addition to this, there are some specificities to this wiki :<br> -<br> +In addition to this, there are some specificities to this wiki :<br><br> **1. Each system's page has *frontmatter*, which is a piece of code that will be used to populate the table of the list of system. It has the following syntax :** -``` +```yaml --- title: Viperin tableColumns: @@ -105,44 +97,111 @@ tableColumns: Activator: Direct Effector: Nucleotide modifying PFAM: PF04055, PF13353 -Contributor : Florian Tesson, Aude Bernheim +RelevantAbstracts: + - doi: 10.1038/s41586-020-2762-2 + - doi: 10.1126/science.aba0372 +contributors : + - Florian Tesson + - Aude Bernheim --- ``` -Any new item in the `tableColumns` object will create a new column in the list of [defense system's table](/defense-systems). -<br> +Any new item in the `tableColumns` object will create a new column in the list of [defense system's table](/defense-systems).<br> -**2. In the relevant abstract section, only the doi is relevant :** +**2. To display a protein structure, you can call the plugin as follows :** ``` -::relevant-abstracts +::molstar-pdbe-plugin --- -items: - - doi: 10.1038/s41586-020-2762-2 +height: 700 +dataUrls: + - /avs/AVAST_I,AVAST_I__Avs1B,0,V-plddts_80.96481.pdb --- :: ``` -<br> -**3. To display a protein structure, you can call the plugin as follows :** +**Custom containers:** + +Custom containers can be defined by their types, titles, and contents. +<u>Default title:</u> + +```md +::info +This is an info box +:: ``` -::molstar-pdbe-plugin + +```md +::tip +This is a tip box +:: +``` + +```md +::warning +This is a warning box +:: +``` + +```md +::danger +This is a danger box +:: +``` + +```md +::expansion-details +There is some details +:: +``` + +<u>The output:</u> + +::info +This is an info box +:: + +::tip +This is a tip box +:: + +::warning +This is a warning box +:: + +::danger +This is a danger box +:: + +::expansion-details +There is some details +:: + +<u>Custom title:</u> + +```md +::info --- -height: 700 -dataUrls: - - /avs/AVAST_I,AVAST_I__Avs1B,0,V-plddts_80.96481.pdb +title: my title info --- +This is an info box :: ``` +::info +--- +title: my title info +--- +This is an info box +:: -### 3/ Review a Merge Request +### 4/ Review a Merge Request You can review other person's merge request by going the [merge request's pages](https://gitlab.pasteur.fr/mdm-lab/wiki/-/merge_requests). On a given page, you can see what modifications where made for this merge request (1), then you can comment if you have anything to say (2 and 3). -And finally, you can approve (4) the MR if you find it worth publishing on the website. +And finally, you can approve (4) the MR if you find it worth publishing on the website. {max-width=750px} @@ -152,7 +211,6 @@ If you want to modify further the file or other file within the same merge reque The Web IDE editor allows you to edit multiple file at once for a given commit. This editor is also accessible from the merge request's page under the "Code" button in the upper right corner of the page. - ## Contribute to the code -Contribution to the code and design are open. Please read the [README](https://gitlab.pasteur.fr/mdm-lab/wiki) on how to deploy the website locally (and see the modification you're doing live). \ No newline at end of file +Contribution to the code and design are open. Please read the [README](https://gitlab.pasteur.fr/mdm-lab/wiki) on how to deploy the website locally (and see the modification you're doing live). diff --git a/content/3.defense-systems/detocs.md b/content/3.defense-systems/detocs.md index d179de304801a6b3e5721041d78e370e0fab81ed..1b4eaa8dc8278e23f9d5b698f9d50172521784b6 100644 --- a/content/3.defense-systems/detocs.md +++ b/content/3.defense-systems/detocs.md @@ -16,6 +16,8 @@ contributors: # Detocs + + ## Description Detocs (**De**fensive **T**w**o**-**C**omponent **S**ystem) is a family of 3-gene defense systems that mediate anti-phage activity by abortive infection. diff --git a/helpers/system-template.md b/helpers/system-template.md new file mode 100644 index 0000000000000000000000000000000000000000..12097a9f5c04710357179eeac1e728f23a45614d --- /dev/null +++ b/helpers/system-template.md @@ -0,0 +1,77 @@ +<!-- The following block is th frontmatter that will be used to build the big table --> +--- +title: <!--Replace this with Defense system name--> +tableColumns: + article: + doi: <!--Replace this with the main article doi--> + abstract: + <!--Replace this with the abstract of the main article--> + Sensor: <!--Fill sensor name here. If it's unknown : Leave it blank --> + Activator: <!--Fill activator name here. If it's unknown : Leave it blank --> + Effector: <!--Fill effector name here. If it's unknown : Leave it blank --> + PFAM: <!--PFXXXXX, PFYYYYY, PFZZZZZ--> +relevantAbstracts: + - doi: 10.xxxx/toto.yyyy.zz +contributors: + - John Doe +--- + +<!-- +Markdown syntax in a nutshell, check other pages for example + +Use # for titles : # Main title ; ## Secondary title ; ### Tertiary title ; etc. +Use * * for italic : *this text will be displayed in italic* +Use ** ** for bold text : **this text will be displayed in bold** +Use []() for links to external websites :  +Use  to embed an image. The file of the image should be in a folder with the name of the system, located in /public +Use for references : "This is a great results :ref{doi=10.xxxx/toto.yyyy.zz}." it will write "This is a great result (Foo et al, 2023)." + +That's all folks! + +--> + + +# Defense system name +<!--Replace the main title with the name of the defense system + +Example : # CBASS +--> + +## Description +This paragraph contains a short description of the defense system. It should provide the essential information regarding the system at a glance. +- How many proteins compose the defense system ? What are their name and what is their biological function ? +- Optionally, you can quickly state in which model organism the system was tested and against which phages. +Please don't forget to refer to the articles that you will cite at the end of the article. +This should be precise but as synthetic as possible (rule of thumb : a dozen of lines maximum). + +Example : +"RADAR is comprised of two genes, encoding respectively for an adenosine triphosphatase (RdrA) and  a divergent adenosine deaminase (RdrB) :ref{doi=10.xxxx/toto.yyyy.zz}. which are in some cases associated with a small membrane protein (RdrC or D) :ref{doi=10.xxxx/toto.yyyy.zz}. +RADAR was found to perform RNA editing of adenosine to inosine during phage infection. Editing sites are broadly distributed on the host transcriptome, which could prove deleterious to the host and explain the observed growth arrest of RADAR upon phage infection." + + +## Molecular mechanism +If the mechanism of action of the defense system is known, please describe it in one short paragraph. If the exact mechanism is not known, simply state it and sum up the information available in the literature. +This should be precise but as synthetic as possible (rule of thumb : a dozen of lines maximum). + +Example : +The exact mechanism of action of the Shango defense system has not yet been characterized, but it was shown that the TerB domain and the catalytic activity of the ATPase and the Helicase are required to provide antiviral defense. The fact that TerB domains are known to be associated to the periplasmic membrane could indicate that Shango might be involved in membrane surveillance :ref{doi=10.xxxx/toto.yyyy.zz}. + + +## Example of genomic structure +<!--Automatically filled. +You can optionally describe in more details which proteins compose the system if the Description paragraph did give all the information--> + +## Distribution of the system among prokaryotes +<!--Automatically filled--> + +## Structure +<!--Automatically filled--> + +## Experimental validation +<!--Give more information about the experimental validation : +- In which organism was it discovered ? +- In which organism was it tested ? +- Against which phages ? +- In which paper was this described ? +Or you can try to build the graph with mermaid (see help page or other page) +--> diff --git a/nuxt.config.ts b/nuxt.config.ts index 2a61a770fa262195880939a9c98360e6b615a732..6a18b71a538afe09e88ae22217eeb2c9fae10f47 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -13,14 +13,10 @@ export default defineNuxtConfig({ injectPage: false, }, highlight: { - theme: { - // Default theme (same as single string) - default: 'github-light', - // Theme used if `html.dark` - dark: 'github-dark', - // Theme used if `html.sepia` - sepia: 'monokai' - } + theme: 'github-light', + preload: [ + 'sh', + ] } }, vuetify: { diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..6494a220ffabd223529f96daf092e9086162ba51 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..296efe3ceadc40a499e7ff43c3e29247814d2f6b Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico index 18993ad91cfd43e03b074dd0b5cc3f37ab38e49c..3de9d9e15d976985daf9f2c9b904162ca72d6753 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ