{"id":644,"date":"2022-11-10T19:39:33","date_gmt":"2022-11-10T19:39:33","guid":{"rendered":"https:\/\/terrabioappdev.wpenginepowered.com\/ten-simple-rules-6-version-both-software-and-data\/"},"modified":"2023-12-27T04:55:48","modified_gmt":"2023-12-27T04:55:48","slug":"ten-simple-rules-6-version-both-software-and-data","status":"publish","type":"post","link":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/","title":{"rendered":"Ten simple rules \u2014 #6 Version both software and data"},"content":{"rendered":"<p><i><span style=\"font-weight: 400;\">This blog post is part of a series based on the paper <\/span><\/i><a href=\"https:\/\/journals.plos.org\/ploscompbiol\/article?id=10.1371\/journal.pcbi.1009757\"><i><span style=\"font-weight: 400;\">&#8220;Ten simple rules for large-scale data processing&#8221;<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> by Arkarachai Fungtammasan et al. (PLOS Computational Biology, 2022). Each installment reviews one of the rules proposed by the authors and illustrates how it can be applied when running workflows in Terra. In this installment, we take a look at version control across a range of components including tools, dependencies, workflow scripts and data resources.<\/span><\/i><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Version control is one of those technical concepts that&#8217;s obviously a good idea yet can be really tricky to do correctly. And as much as it has become an established practice for most computational scientists, many tend to underestimate the scope of what should be version-controlled.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">(If you&#8217;ve never heard of version control or would like a refresher tailored for scientists, check out the <\/span><\/i><a href=\"https:\/\/swcarpentry.github.io\/git-novice\/\"><i><span style=\"font-weight: 400;\">Software Carpentry lesson on version control with Git<\/span><\/i><\/a><i><span style=\"font-weight: 400;\">.)<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">In this sixth rule, Arkarachai Fungtammasan and colleagues rightly emphasize that it&#8217;s not enough to control the version of the main software code and tools involved in analysis:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">&#8220;Applying version control to all code is always recommended for reproducible research. In the context of a large-scale data analysis, we need to go beyond this initial step [&#8230;].&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Indeed, the tools researchers use directly \u2014 those that feature most obviously in command lines and in scripts \u2014 typically rely on other, less visible components, or dependencies. Changes to those dependencies can affect analysis results, so it&#8217;s important to ensure specific versions are used rather than &#8220;the latest available&#8221;.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The authors also call out workflow scripts and data resources such as genome builds as components that should be carefully version-controlled.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400;\">Version-controlled workflows in Terra<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Terra&#8217;s workflow execution system is designed specifically to enable version control at multiple levels, with minimal effort on the part of pipeline developers and end users.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Workflow scripts<\/b><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">&#8220;When multiple processing steps are combined into workflow (<\/span><a href=\"https:\/\/terra.bio\/ten-simple-rules-4-automate-your-workflows\/\"><span style=\"font-weight: 400;\">Rule 4<\/span><\/a><span style=\"font-weight: 400;\">), the workflow itself should be versioned.&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The WDL workflow scripts used in Terra are held in version controlled repositories \u2014 either the built-in Broad Methods Repository, which supports version control through the concept of &#8220;snapshots&#8221;, or the external <\/span><a href=\"https:\/\/dockstore.org\/\"><span style=\"font-weight: 400;\">Dockstore<\/span><\/a><span style=\"font-weight: 400;\"> repository, which offers workflow-specific versioning features backed by the industry-standard code versioning of <\/span><a href=\"https:\/\/github.com\/\"><span style=\"font-weight: 400;\">GitHub<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-1491\" src=\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_wf-1024x157.png\" alt=\"\" width=\"800\" height=\"123\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><b>Tools, dependencies and computing environment<\/b><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">&#8220;To guard against interruptions, all dependencies should be pinned to a specific version (ideally through a version control hash or equivalent) that has been thoroughly tested (<\/span><a href=\"https:\/\/terra.bio\/ten-simple-rules-5-design-for-testing\/\"><span style=\"font-weight: 400;\">Rule 5<\/span><\/a><span style=\"font-weight: 400;\">). [&#8230;] Utilizing container technology is highly encouraged, if allowed in the system, to guarantee the computing environment for processing.&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Within a WDL workflow, each individual analysis task specifies a Docker container that encapsulates all software tools and dependencies involved. Workflow developers and users can specify the exact version of the container using a unique identifier that ensures absolute reproducibility of the computing environment.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-1489\" src=\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_docker.png\" alt=\"\" width=\"600\" height=\"347\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><b>Data resources<\/b><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">&#8220;In biomedical data analysis, there are often components beyond the software and related dependencies that need to be included in the reproducibility plan. For instance, if the data processing relies on a genome build, using the most recent build and release in the pipeline will be insufficient. Instead, the processing needs to be tied to a specific build and release, much like the dependencies in the pipeline.&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Terra workspaces provide data management features that include data manifests (see &#8220;data tables&#8221;), the ability to load versioned genome reference builds, and a system of key-value pairs that can be used to specify and label custom data resources for use in workflow configurations.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-1490\" src=\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version-reference-1024x92.png\" alt=\"\" width=\"800\" height=\"72\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">It&#8217;s worth noting that the workflow logging system also provides features that support version control by making it possible to go back and look at configuration details for past analyses, as we touched on in <\/span><a href=\"https:\/\/terra.bio\/ten-simple-rules-2-document-everything\/\"><span style=\"font-weight: 400;\">Rule 2<\/span><\/a><span style=\"font-weight: 400;\"> (Document Everything).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To learn more about making effective use of version control for large-scale data processing in Terra, please read <\/span><a href=\"https:\/\/support.terra.bio\/hc\/en-us\/articles\/360037484111\"><span style=\"font-weight: 400;\">&#8220;How does pipeline versioning work?&#8221;<\/span><\/a><span style=\"font-weight: 400;\"> in the Terra knowledge base.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bringing workflows under version control to make large-scale data processing reproducible; inspired by \u201cTen simple rules for large-scale data processing\u201d (Fungtammasan 2022).<\/p>\n","protected":false},"author":4,"featured_media":648,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24,155,43,119,32],"tags":[179],"class_list":["post-644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-management","category-developers","category-features","category-most-recent","category-workflows","tag-ten-simple-rules"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ten simple rules \u2014 #6 Version both software and data - Terra<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ten simple rules \u2014 #6 Version both software and data - Terra\" \/>\n<meta property=\"og:description\" content=\"Bringing workflows under version control to make large-scale data processing reproducible; inspired by \u201cTen simple rules for large-scale data processing\u201d (Fungtammasan 2022).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\" \/>\n<meta property=\"og:site_name\" content=\"Terra\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-10T19:39:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-27T04:55:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Geraldine Van der Auwera\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geraldine Van der Auwera\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\"},\"author\":{\"name\":\"Geraldine Van der Auwera\",\"@id\":\"https:\/\/terra.bio\/#\/schema\/person\/ad0522d0b331a5e08fa1733f65086ee2\"},\"headline\":\"Ten simple rules \u2014 #6 Version both software and data\",\"datePublished\":\"2022-11-10T19:39:33+00:00\",\"dateModified\":\"2023-12-27T04:55:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\"},\"wordCount\":657,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/terra.bio\/#organization\"},\"image\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png\",\"keywords\":[\"ten simple rules\"],\"articleSection\":[\"Data Management\",\"Developers\",\"Features\",\"Most Recent\",\"Workflows\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\",\"url\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\",\"name\":\"Ten simple rules \u2014 #6 Version both software and data - Terra\",\"isPartOf\":{\"@id\":\"https:\/\/terra.bio\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png\",\"datePublished\":\"2022-11-10T19:39:33+00:00\",\"dateModified\":\"2023-12-27T04:55:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage\",\"url\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png\",\"contentUrl\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png\",\"width\":1200,\"height\":627,\"caption\":\"version_control_OG\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/terra.bio\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ten simple rules \u2014 #6 Version both software and data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/terra.bio\/#website\",\"url\":\"https:\/\/terra.bio\/\",\"name\":\"Terra\",\"description\":\"Science at Scale\",\"publisher\":{\"@id\":\"https:\/\/terra.bio\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/terra.bio\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/terra.bio\/#organization\",\"name\":\"Terra\",\"url\":\"https:\/\/terra.bio\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/terra.bio\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/Terra-Bio-App@2x.webp\",\"contentUrl\":\"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/Terra-Bio-App@2x.webp\",\"width\":287,\"height\":318,\"caption\":\"Terra\"},\"image\":{\"@id\":\"https:\/\/terra.bio\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/terra.bio\/#\/schema\/person\/ad0522d0b331a5e08fa1733f65086ee2\",\"name\":\"Geraldine Van der Auwera\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/terra.bio\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d73bdaf6740465b385e0e3b290786d8cb9d9d548eadec23364254ba06c85204b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d73bdaf6740465b385e0e3b290786d8cb9d9d548eadec23364254ba06c85204b?s=96&d=mm&r=g\",\"caption\":\"Geraldine Van der Auwera\"},\"sameAs\":[\"https:\/\/app.terra.bio\/\"],\"url\":\"https:\/\/terra.bio\/author\/geraldinevanterra\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ten simple rules \u2014 #6 Version both software and data - Terra","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/","og_locale":"en_US","og_type":"article","og_title":"Ten simple rules \u2014 #6 Version both software and data - Terra","og_description":"Bringing workflows under version control to make large-scale data processing reproducible; inspired by \u201cTen simple rules for large-scale data processing\u201d (Fungtammasan 2022).","og_url":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/","og_site_name":"Terra","article_published_time":"2022-11-10T19:39:33+00:00","article_modified_time":"2023-12-27T04:55:48+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png","type":"image\/png"}],"author":"Geraldine Van der Auwera","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Geraldine Van der Auwera","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#article","isPartOf":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/"},"author":{"name":"Geraldine Van der Auwera","@id":"https:\/\/terra.bio\/#\/schema\/person\/ad0522d0b331a5e08fa1733f65086ee2"},"headline":"Ten simple rules \u2014 #6 Version both software and data","datePublished":"2022-11-10T19:39:33+00:00","dateModified":"2023-12-27T04:55:48+00:00","mainEntityOfPage":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/"},"wordCount":657,"commentCount":0,"publisher":{"@id":"https:\/\/terra.bio\/#organization"},"image":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage"},"thumbnailUrl":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png","keywords":["ten simple rules"],"articleSection":["Data Management","Developers","Features","Most Recent","Workflows"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/","url":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/","name":"Ten simple rules \u2014 #6 Version both software and data - Terra","isPartOf":{"@id":"https:\/\/terra.bio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage"},"image":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage"},"thumbnailUrl":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png","datePublished":"2022-11-10T19:39:33+00:00","dateModified":"2023-12-27T04:55:48+00:00","breadcrumb":{"@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#primaryimage","url":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png","contentUrl":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/version_control_OG.png","width":1200,"height":627,"caption":"version_control_OG"},{"@type":"BreadcrumbList","@id":"https:\/\/terra.bio\/ten-simple-rules-6-version-both-software-and-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/terra.bio\/"},{"@type":"ListItem","position":2,"name":"Ten simple rules \u2014 #6 Version both software and data"}]},{"@type":"WebSite","@id":"https:\/\/terra.bio\/#website","url":"https:\/\/terra.bio\/","name":"Terra","description":"Science at Scale","publisher":{"@id":"https:\/\/terra.bio\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/terra.bio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/terra.bio\/#organization","name":"Terra","url":"https:\/\/terra.bio\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/terra.bio\/#\/schema\/logo\/image\/","url":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/Terra-Bio-App@2x.webp","contentUrl":"https:\/\/terra.bio\/wp-content\/uploads\/2023\/12\/Terra-Bio-App@2x.webp","width":287,"height":318,"caption":"Terra"},"image":{"@id":"https:\/\/terra.bio\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/terra.bio\/#\/schema\/person\/ad0522d0b331a5e08fa1733f65086ee2","name":"Geraldine Van der Auwera","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/terra.bio\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d73bdaf6740465b385e0e3b290786d8cb9d9d548eadec23364254ba06c85204b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d73bdaf6740465b385e0e3b290786d8cb9d9d548eadec23364254ba06c85204b?s=96&d=mm&r=g","caption":"Geraldine Van der Auwera"},"sameAs":["https:\/\/app.terra.bio\/"],"url":"https:\/\/terra.bio\/author\/geraldinevanterra\/"}]}},"_links":{"self":[{"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/posts\/644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/comments?post=644"}],"version-history":[{"count":0,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/posts\/644\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/media\/648"}],"wp:attachment":[{"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/media?parent=644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/categories?post=644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/terra.bio\/wp-json\/wp\/v2\/tags?post=644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}