Kuma Documentation Release Latest Mozilla

Total Page:16

File Type:pdf, Size:1020Kb

Kuma Documentation Release Latest Mozilla Kuma Documentation Release latest Mozilla February 21, 2019 Contents 1 Development 3 2 Getting started 5 2.1 Installation................................................5 2.2 Development...............................................9 2.3 Troubleshooting............................................. 17 2.4 The Kuma test suite........................................... 18 2.5 Client-side testing............................................ 20 2.6 Performance testing........................................... 24 2.7 Feature toggles.............................................. 25 2.8 Celery and async tasks.......................................... 28 2.9 Search.................................................. 31 2.10 Localization............................................... 32 2.11 CKEditor................................................. 35 2.12 Getting Data............................................... 36 2.13 Documentation.............................................. 40 2.14 Docker.................................................. 41 2.15 Deploying MDN............................................. 42 2.16 Rendering Documents.......................................... 46 2.17 Building, collecting, and serving assets................................. 59 i ii Kuma Documentation, Release latest Kuma is the platform that powers MDN (developer.mozilla.org) Contents 1 Kuma Documentation, Release latest 2 Contents CHAPTER 1 Development Code https://github.com/mozilla/kuma Issues P1 Bugs (to be fixed in current or next sprint) P2 Bugs (to be fixed in 180 days) All developer.mozilla.org bugs Pull Request Queues Dev Docs https://kuma.readthedocs.io/en/latest/installation.html CI Server https://travis-ci.org/mozilla/kuma Forum https://discourse.mozilla.org/c/mdn IRC irc://irc.mozilla.org/mdndev http://logs.glob.uno/?c=mozilla%23mdndev (logs) Servers What’s Deployed on MDN? https://developer.allizom.org/ (stage) https://developer.mozilla.org/ (prod) 3 Kuma Documentation, Release latest 4 Chapter 1. Development CHAPTER 2 Getting started Want to help make MDN great? Our contribution guide lists some good first projects and offers direction on submitting code. Contents: 2.1 Installation Kuma uses Docker for local development and integration testing, and we are transitioning to Docker containers for deployment as well. Current Status of Dockerization: • Kuma developers are using Docker for daily development and maintenance tasks. Staff developers primarily use Docker for Mac. Other staff members and contributors use Docker’s Ubuntu packages. • The development environment can use a lot of resources. On Docker for Mac, the environment runs well with 6 CPUs and 10 GB of memory dedicated to Docker. It can be run successfully on 2 CPUs and 2 GB of memory. • The Docker development environment is evolving rapidly, to address issues found during development and to move toward a containerized design. You may need to regularly reset your environment to get the current changes. • The Docker development environment doesn’t fully support a ‘production-like’ environment. For example, we don’t have a documented configuration for running with an SSL connection. • When the master branch is updated, the kuma_base image is refreshed and published to DockerHub. This image contains system packages and third-party libraries. • Our TravisCI builds include a target that build Docker containers and runs the tests inside. • Our Jenkins server builds and publishes Docker images, and runs integration tests using Docker. • We are documenting tips and tricks on the Troubleshooting page. • Feel free to ask for help on IRC at #mdndev or on discourse. 2.1.1 Docker setup 1. Install the Docker platform, following Docker’s instructions for your operating system, such as Docker for Mac for MacOS, or for your Linux distribution. Linux users will also want to install Docker Compose and follow post-install instructions to confirm that the development user can run Docker commmands. To confirm that Docker is installed correctly, run: 5 Kuma Documentation, Release latest docker run hello-world If you find any error using docker commands without sudo visit using docker as non-root user. 2. Clone the kuma Git repository, if you haven’t already: git clone --recursive https://github.com/mozilla/kuma.git If you think you might be submitting pull requests, consider forking the repository first, and then cloning your fork of it. 3. Ensure you are in the existing or newly cloned kuma working copy: cd kuma 4. Initialize and customize .env: cp.env-dist.dev.env vim.env # Or your favorite editor Linux users should set the UID parameter in .env (i.e. change #UID=1000 to UID=1000) to avoid file permission issues when mixing docker-compose and docker commands. MacOS users do not need to change any of the defaults to get started. Note that there are settings in this file that can be useful when debug- ging, however. 5. Pull the Docker images and build the containers: docker-compose pull docker-compose build (The build command is effectively a no-op at this point because the pull command just downloaded pre-built docker images.) 6. Start the containers in the background: docker-compose up -d 2.1.2 Load the sample database Download the sample database with either of the following wget or curl (installed by default on macOS) commands: wget -N https://mdn-downloads.s3-us-west-2.amazonaws.com/mdn_sample_db.sql.gz curl -O https://mdn-downloads.s3-us-west-2.amazonaws.com/mdn_sample_db.sql.gz Next, upload that sample database into the Kuma web container with: docker-compose exec web bash -c "zcat mdn_sample_db.sql.gz | ./manage.py dbshell" (This command can be adjusted to restore from an uncompressed database, or directly from a mysqldump command.) Then run the following command: docker-compose exec web ./manage.py migrate This will ensure the sample database is in sync with your version of Kuma. 2.1.3 Compile locales Localized string databases are included in their source form, and need to be compiled to their binary form: 6 Chapter 2. Getting started Kuma Documentation, Release latest docker-compose exec web make localecompile Dozens of lines of warnings will be printed: cd locale; ./compile-mo.sh . ./af/LC_MESSAGES/django.po:2: warning: header field 'PO-Revision-Date' still has the initial default value ./af/LC_MESSAGES/django.po:2: warning: header field 'Last-Translator' still has the initial default value ... ./zu/LC_MESSAGES/javascript.po:2: warning: header field 'PO-Revision-Date' still has the initial default value ./zu/LC_MESSAGES/javascript.po:2: warning: header field 'Last-Translator' still has the initial default value Warnings are OK, and will be fixed as translators update the strings on Pontoon. If there is an error, the output will end with the error, such as: ./az/LC_MESSAGES/django.po:263: 'msgid' and 'msgstr' entries do not both end with '\n' msgfmt: found 1 fatal error These need to be fixed by a Kuma developer. Notify them in the #mdndev IRC channel or open a bug. You can continue with installation, but non-English locales will not be localized. 2.1.4 Generate static assets Static assets such as CSS and JS are included in source form, and need to be compiled to their final form: docker-compose exec web make build-static A few thousand lines will be printed, like: ## Generating JavaScript translation catalogs ## processing language en_US processing language af processing language ar ... ## Compiling (Sass), collecting, and building static files ## Copying '/app/kuma/static/img/embed/promos/survey.svg' Copying '/app/kuma/static/styles/components/home/column-callout.scss' Copying '/app/build/locale/jsi18n/fy-NL/javascript.js' ... Post-processed 'build/styles/editor-locale-ar.css' as 'build/styles/editor-locale-ar.css' Post-processed 'build/styles/locale-ln.css' as 'build/styles/locale-ln.css' Post-processed 'build/styles/editor-locale-pt-BR.css' as 'build/styles/editor-locale-pt-BR.css' .... 1870 static files copied to '/app/static', 125 post-processed. 2.1.5 Visit the homepage Open the homepage at http://localhost:8000 . You’ve installed Kuma! 2.1.6 Prepare for front-end development (optional) When doing front-end development on your local machine, you’ll probably want to run gulp, to rebuild front-end assets as they edited, rather than running make build-static after each change. First, install Node.js v8, using the install instructions for your OS. Next, from the root directory of your Kuma repository, install gulp and dependencies: 2.1. Installation 7 Kuma Documentation, Release latest npm install Now, you can run gulp (probably from its own shell): node_modules/.bin/gulp Alternatively, you can install gulp globally: sudo npm install -g And then run gulp more simply: gulp 2.1.7 Create an admin user Many Kuma settings require access to the Django admin, including configuring social login. It is useful to create an admin account with password access for local development. If you want to create a new admin account, use createsuperuser: docker-compose exec web ./manage.py createsuperuser This will prompt you for a username, email address (a fake address like [email protected] will work), and a password. If your database has an existing account that you want to use, run the management command. Replace YOUR_USERNAME with your username and YOUR_PASSWORD with your password: docker-compose run --rm web ./manage.py ihavepower YOUR_USERNAME \ --password YOUR_PASSWORD With a password-enabled admin account, you can log into Django admin at http://localhost:8000/admin/login/ 2.1.8 Enable GitHub authentication
Recommended publications
  • Digital Skills in Sub-Saharan Africa Spotlight on Ghana
    Digital Skills in Sub-Saharan Africa Spotlight on Ghana IN COOPERATION WITH: ABOUT IFC Research and writing underpinning the report was conducted by the L.E.K. Global Education practice. The L.E.K. IFC—a sister organization of the World Bank and member of team was led by Ashwin Assomull, Maryanna Abdo, and the World Bank Group—is the largest global development Ridhi Gupta, including writing by Maryanna Abdo, Priyanka institution focused on the private sector in emerging Thapar, and Jaisal Kapoor and research contributions by Neil markets. We work with more than 2,000 businesses Aneja, Shrrinesh Balasubramanian, Patrick Desmond, Ridhi worldwide, using our capital, expertise, and influence to Gupta, Jaisal Kapoor, Rohan Sur, and Priyanka Thapar. create markets and opportunities in the toughest areas of Sudeep Laad provided valuable insights on the Ghana the world. For more information, visit www.ifc.org. market landscape and opportunity sizing. ABOUT REPORT L.E.K. is a global management consulting firm that uses deep industry expertise and rigorous analysis to help business This publication, Digital Skills in Sub-Saharan Africa: Spotlight leaders achieve practical results with real impact. The Global on Ghana, was produced by the Manufacturing Agribusiness Education practice is a specialist international team based in and Services department of the International Finance Singapore serving a global client base from China to Chile. Corporation, in cooperation with the Global Education practice at L.E.K. Consulting. It was developed under the ACKNOWLEDGMENTS overall guidance of Tomasz Telma (Senior Director, MAS), The report would not have been possible without the Mary-Jean Moyo (Director, MAS, Middle-East and Africa), participation of leadership and alumni from eight case study Elena Sterlin (Senior Manager, Global Health and Education, organizations, including: MAS) and Olaf Schmidt (Manager, Services, MAS, Sub- Andela: Lara Kok, Executive Coordinator; Anudip: Dipak Saharan Africa).
    [Show full text]
  • Redundancy-Free Analysis of Multi-Revision Software Artifacts
    Empirical Software Engineering (preprint) Redundancy-free Analysis of Multi-revision Software Artifacts Carol V. Alexandru · Sebastiano Panichella · Sebastian Proksch · Harald C. Gall 30. April 2018 Abstract Researchers often analyze several revisions of a software project to obtain historical data about its evolution. For example, they statically ana- lyze the source code and monitor the evolution of certain metrics over multi- ple revisions. The time and resource requirements for running these analyses often make it necessary to limit the number of analyzed revisions, e.g., by only selecting major revisions or by using a coarse-grained sampling strategy, which could remove significant details of the evolution. Most existing analy- sis techniques are not designed for the analysis of multi-revision artifacts and they treat each revision individually. However, the actual difference between two subsequent revisions is typically very small. Thus, tools tailored for the analysis of multiple revisions should only analyze these differences, thereby preventing re-computation and storage of redundant data, improving scalabil- ity and enabling the study of a larger number of revisions. In this work, we propose the Lean Language-Independent Software Analyzer (LISA), a generic framework for representing and analyzing multi-revisioned software artifacts. It employs a redundancy-free, multi-revision representation for artifacts and avoids re-computation by only analyzing changed artifact fragments across thousands of revisions. The evaluation of our approach consists of measur- ing the effect of each individual technique incorporated, an in-depth study of LISA's resource requirements and a large-scale analysis over 7 million program revisions of 4,000 software projects written in four languages.
    [Show full text]
  • Freenas® 11.2-U3 User Guide
    FreeNAS® 11.2-U3 User Guide March 2019 Edition FreeNAS® is © 2011-2019 iXsystems FreeNAS® and the FreeNAS® logo are registered trademarks of iXsystems FreeBSD® is a registered trademark of the FreeBSD Foundation Written by users of the FreeNAS® network-attached storage operating system. Version 11.2 Copyright © 2011-2019 iXsystems (https://www.ixsystems.com/) CONTENTS Welcome .............................................................. 8 Typographic Conventions ..................................................... 10 1 Introduction 11 1.1 New Features in 11.2 .................................................... 11 1.1.1 RELEASE-U1 ..................................................... 14 1.1.2 U2 .......................................................... 14 1.1.3 U3 .......................................................... 15 1.2 Path and Name Lengths .................................................. 16 1.3 Hardware Recommendations ............................................... 17 1.3.1 RAM ......................................................... 17 1.3.2 The Operating System Device ........................................... 18 1.3.3 Storage Disks and Controllers ........................................... 18 1.3.4 Network Interfaces ................................................. 19 1.4 Getting Started with ZFS .................................................. 20 2 Installing and Upgrading 21 2.1 Getting FreeNAS® ...................................................... 21 2.2 Preparing the Media ...................................................
    [Show full text]
  • Daylight & Architecture
    LUX E DAYLIGHT & DAYLIGHT ARCHITECTURE BY MAGAZINE V SPRING 2006 ISSUE 05 TEXTURE & LIGHT 10 EURO SPRING 2006 ISSUE 05 TEXTURE & LIGHT 10 EURO DAYLIGHT & ARCHITECTURE MAGAZINE BY VELUX Light’s touch changes everything. What lay shrouded in darkness DISCOURSE is revealed, and hidden spaces suddenly open wide under light’s dance. In itself, unseen, we see by means of light’s selfless activ- ity. In physics, the refinement of light’s touch is measured by its BY wavelength. The very smallness of visible light’s internal patterned movement guarantees that the tiniest detail, the most subtle tex- ARTHUR ture, remains visible. The brushed surface of metal and the filam- entary strands of the spider’s web would both fade into invisibility if light were larger, its wavelength longer. Z AJONC Einstein alerted us to the unique role played by the speed of light, which is a universal absolute in a relative universe, an ulti- mate limit in a limitless cosmos. He and Max Planck discovered that, although massless, even light has its least part – the quan- tum or photon. And yet that quantum, like light itself, eludes our conceptual grasp, maintaining its subtle ambiguity and whole- ness through all attempts to confine and define it. Over count- less years, starlight travels from the most distance reaches of space and from the beginnings of time to reach our eyes. In a mir- acle of reciprocity, our eyes are so perfectly adapted to light that only a few light quanta are needed for sight. What to our sensi- bilities is the long journey of light through the cosmos lasting ten billion years, is to the photon a mere instant – such are the mys- teries of relativity.
    [Show full text]
  • Building Ckeditor
    Kuma Documentation Release latest Mozilla October 30, 2020 Contents 1 Development 3 2 Getting started 5 2.1 Installation................................................5 2.2 Development............................................... 10 2.3 Troubleshooting............................................. 24 2.4 The Kuma test suite........................................... 26 2.5 Client-side testing............................................ 28 2.6 Feature toggles.............................................. 30 2.7 Celery and async tasks.......................................... 33 2.8 Search.................................................. 35 2.9 Localization............................................... 36 2.10 CKEditor................................................. 39 2.11 Getting Data............................................... 41 2.12 Documentation.............................................. 45 2.13 Docker.................................................. 45 2.14 Deploying MDN............................................. 46 2.15 Rendering Documents.......................................... 50 2.16 Building, collecting, and serving assets................................. 63 i ii Kuma Documentation, Release latest Kuma is the platform that powers MDN (developer.mozilla.org) Contents 1 Kuma Documentation, Release latest 2 Contents CHAPTER 1 Development Code https://github.com/mdn/kuma Issues P1 Bugs (to be fixed in current or next sprint) P2 Bugs (to be fixed in 180 days) All developer.mozilla.org bugs Pull Request Queues Dev Docs
    [Show full text]
  • CYBERPUNK 2020 REFERENCE BOOK 5Th January 2002 Version 5.0
    CONTENTS & LEGEND www.node16.co.uk CYBERPUNK 2020 REFERENCE BOOK 5th January 2002 Version 5.0 Collated by Andrew James. Last updated 05/01/02. [email protected]. http://www.node16.co.uk/ 0.1 CONTENTS & LEGEND EXPANDED CHARACTER CREATION Monoblades ....................................................... 2.5 Personal Style ................................................... 1.1 Detecting Remotes ........................................... 2.5 Additional Family Background ........................... 1.1 Remotes And ECM ........................................... 2.5 Motivations ........................................................ 1.1 Electronic Warfare ............................................ 2.5 Psychological Profile ......................................... 1.2 Armor Rules ..................................................... 2.6 Phobias ............................................................. 1.3 Armored Clothing, Layers, & Encumberance.... 2.6 Pacific Rim Characters ..................................... 1.4 Fireproofing ....................................................... 2.6 Japan, Korea & Singapore ........................................... 1.4 Grounded Armor................................................ 2.6 China & Taiwan............................................................. 1.4 Helmets ............................................................. 2.6 South East Asia ............................................................ 1.4 Interpersonal Skill Rolls ................................. 2.7 European
    [Show full text]
  • Sharing Programming Resources Between Bio* Projects
    Downloaded from orbit.dtu.dk on: Oct 05, 2021 Sharing programming resources between bio* projects Bonnal, Raoul J. P.; Yates, Andrew; Goto, Naohisa; Gautier, Laurent; Willis, Scooter; Fields, Christopher; Katayama, Toshiaki; Prins, Pjotr Published in: Evolutionary Genomics: Statistical and Computational Methods Link to article, DOI: 10.1007/978-1-4939-9074-0_25 Publication date: 2019 Document Version Publisher's PDF, also known as Version of record Link back to DTU Orbit Citation (APA): Bonnal, R. J. P., Yates, A., Goto, N., Gautier, L., Willis, S., Fields, C., Katayama, T., & Prins, P. (2019). Sharing programming resources between bio* projects. In M. A. (Ed.), Evolutionary Genomics: Statistical and Computational Methods (pp. 747-766). Springer. Methods in Molecular Biology Vol. 1910 https://doi.org/10.1007/978-1-4939-9074-0_25 General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Users may download and print one copy of any publication from the public portal for the purpose of private study or research. You may not further distribute the material or use it for any profit-making activity or commercial gain You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Chapter 25 Sharing Programming Resources Between Bio* Projects Raoul J.
    [Show full text]
  • Knowledge and Artifact Representation in the Scientific Lifecycle
    PhD Dissertation International Doctorate School in Information and Communication Technologies Universidad Católica DISI – University of Trento “Nuestra Señora de la Asunción” Knowledge and Artifact Representation in the Scientific Lifecycle Ronald Chenu-Abente Acosta Advisor: Co-Advisor: Prof. Fausto Giunchiglia Prof. Luca Cernuzzi March 2012 node node Abstract node This thesis introduces SKOs (Scientific Knowledge Object) a specification for capturing the knowledge and artifacts that are produced by the scientific research processes. Aiming to address the current existing limitations of scientific production this specification is focused on reducing the work overhead of scientific creation, being composable and reusable, allow continuous evolution and facilitate collaboration and discovery among researchers. To do so it introduces four layers that capture different aspects of the scientific knowledge: content, meaning, ordering and visualization. Executive Summary node Scientific papers or Articles were introduced during the 17th century when the first academic journals appeared. Since then these papers, along with the scientific conferences or symposiums, have become the cornerstones of the scientific community and research. Currently, not very unlike those early times, when an author wants to publish a scientific paper he has to submit a physical and or digital copy of it to an academic journal, where it goes through a process of Peer reviewing to determine if its publication is suitable (a similar process occurs in the case of submitting papers to conferences and workshops). Furthermore, the most common (and sometimes effective) way of discussing ideas with colleagues is still through the age-old tradition of organizing scientific conferences or symposiums. This model based on papers, persons and scientific events has remained mostly undisturbed up to now.
    [Show full text]
  • Visualising Data from Cloudsat and CALIPSO Satellites
    Comenius University, Bratislava Faculty of Mathematics, Physics and Informatics Visualising Data from CloudSat and CALIPSO Satellites òýÔý Peter Kuma Comenius University, Bratislava Faculty of Mathematics, Physics and Informatics Visualising Data from CloudSat and CALIPSO Satellites Bachelor’s esis Degree Programme: Physics Field of Study: ¥.Ô.Ô Physics School: Division of Meteorology and Climatology Department of Astronomy, Physics of the Earth and Meteorology Mentor: Mgr. Ivan Bašták Ďurán, PhD. Bratislava, òýÔý Peter Kuma Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Zadanie Meno a priezvisko študenta: Peter Kuma Študijný program: Fyzika Študijný odbor: ¥.Ô.Ô Fyzika Typ záverečnej práce: Bakalárska práca Jazyk záverečnej práce: Anglický Sekundárny jazyk: Slovenský Názov: Visualising Data from CloudSat and CALIPSO Satellites Cieľ práce: Vizuálne spracovanie údajov z meteorologických družíc Cloudsat a CALIPSO. Vedúci: Mgr. Ivan Bašták Ďurán, PhD. Školiteľ: Mgr. Ivan Bašták Ďurán, PhD. Katedra: Katedra astronómie, fyziky Zeme a meteorológie Vedúci katedry: Prof. RNDr. Peter Moczo, DrSc. Spôsob sprístupnenia elektronickej verzie práce: Dátum schválenia: vedúci katedry študent vedúci, resp. školiteľ vedúci 3 Vizualizácia dát zo satelitov CloudSat a CALIPSO Súhrn práce CloudSat a CALIPSO sú satelity obiehajúce okolo Zeme na polárnej dráhe, slúžiace primárne na meranie oblakov a aerosólov. Prevádzkované sú organizáciami NASA a CNES. Sú súčasťou formácie satelitov nazývanej A-Train (Aernoon Train, čiže poobedný), lebo prelietajú cez rovník približne o Ôç:çý stredného miestneho času. Vďaka svojej blízkosti (iba asi Ô min) a rozmanitosti meracích prístrojov poskytujú bohaté informácie o atmosfére a povrchu Zeme na danom mieste a v danom čase. CloudSat nesie na palube radar CPR podobný pozemným zrážkovým rádiolokátorom využívanými meteorologickými službami, pracujúci na frekvencii À¥ GHz.
    [Show full text]
  • Animating Truth Documentary and Visual Culture in the 21St Century
    Edinburgh Studies in Film and Intermediality Series Editors: Martine Beugnet and Kriss Ravetto Founding Editor: John Orr NIKOLAJ LÜBECKER NIKOLAJ A series of cutting-edge scholarly research monographs covering core aspects of film studies. The series’ internationally respected authors contribute analytical and often controversial volumes, offering a critical intervention into their subject. ‘Nikolaj Lübecker clearly and insightfully analyses many of the most controversial films of recent years by cinematic heavyweights like Michael Haneke, Lars von Trier, Claire Denis and Gus Van Sant. In doing so, he invites his readers to reconsider movies in general: maybe sometimes it’s not so bad for a movie to make us feel bad. As we root around for hope at a time when it seems thin on the ground, Lübecker paradoxically conjures hope where there seemed to be none. A unique and ground-breaking work.’ William Brown, Senior Lecturer in Film, University of Roehampton, London In recent years some of the most innovative European and American directors have made films that place the spectator in a position of intense discomfort. Systematically manipulating the viewer, sometimes by withholding information, sometimes through shock or seduction, these films have often been criticised as amoral, nihilistic, politically irresponsible or anti-humanistic. But how are these unpleasurable viewing experiences created? What do the directors believe they can achieve via this The Feel-Bad Film ‘feel-bad’ experience? How can we situate these films in intellectual history? And why should we watch, study and teach feel-bad films? Answering these questions through the analysis of work by directors such as Lars von Trier, Gus Van Sant, Claire Denis, Michael Haneke, Lucille Hadzihalilovic, Brian de Palma, Bruno Dumont and Harmony Korine, The Feel-Bad Film invites readers to consider cinematic art as an experimental activity with ethical norms that are radically different from the ones we would hope to find outside the movie theatre.
    [Show full text]
  • Gengraph: a Python Module for the Simple Generation and Manipulation of Genome Graphs
    bioRxiv preprint doi: https://doi.org/10.1101/465831; this version posted November 8, 2018. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY-NC-ND 4.0 International license. GenGraph: a python module for the simple generation and manipulation of genome graphs. Jon Mitchell Ambler1,*, Shandukani Mulaudzi1, Nicola Mulder1 1 Computational Biology Division, Institute of Infectious Diseases and Molecular Medicine, University of Cape Town, Cape Town, South Africa * [email protected] Abstract Background: As sequencing technology improves, the concept of a single reference genome is becoming increasingly restricting. In the case of Mycobacterium tuberculosis, one must often choose between using a genome that is closely related to the isolate, or one that is annotated in detail. One promising solution to this problem is through the graph based representation of collections of genomes as a single genome graph. Though there are currently a handful of tools that can create genome graphs and have demonstrated the advantages of this new paradigm, there still exists a need for flexible tools that can be used by researchers to overcome challenges in genomics studies. Results: We present the GenGraph toolkit, a tool that uses existing multiple sequence alignment tools to create genome graphs. It is written in Python, one of the most popular coding languages for the biological sciences, and creates the genome graphs as Python NetworkX graph objects. The conceptual model is highly intuitive, and as much as possible represents the biological relationship between the genomes.
    [Show full text]
  • Gengraph: a Python Module for the Simple Generation and Manipulation of Genome Graphs Jon Mitchell Ambler* , Shandukani Mulaudzi and Nicola Mulder
    Ambler et al. BMC Bioinformatics (2019) 20:519 https://doi.org/10.1186/s12859-019-3115-8 SOFTWARE Open Access GenGraph: a python module for the simple generation and manipulation of genome graphs Jon Mitchell Ambler* , Shandukani Mulaudzi and Nicola Mulder Abstract Background: As sequencing technology improves, the concept of a single reference genome is becoming increasingly restricting. In the case of Mycobacterium tuberculosis, one must often choose between using a genome that is closely related to the isolate, or one that is annotated in detail. One promising solution to this problem is through the graph based representation of collections of genomes as a single genome graph. Though there are currently a handful of tools that can create genome graphs and have demonstrated the advantages of this new paradigm, there still exists a need for flexible tools that can be used by researchers to overcome challenges in genomics studies. Results: We present GenGraph, a Python toolkit and accompanying modules that use existing multiple sequence alignment tools to create genome graphs. Python is one of the most popular coding languages for the biological sciences, and by providing these tools, GenGraph makes it easier to experiment and develop new tools that utilise genome graphs. The conceptual model used is highly intuitive, and as much as possible the graph structure represents the biological relationship between the genomes. This design means that users will quickly be able to start creating genome graphs and using them in their own projects. We outline the methods used in the generation of the graphs, and give some examples of how the created graphs may be used.
    [Show full text]