<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.biocomputeobject.org/index.php?action=history&amp;feed=atom&amp;title=Whirl%3A_BCO_R_package_converter</id>
	<title>Whirl: BCO R package converter - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.biocomputeobject.org/index.php?action=history&amp;feed=atom&amp;title=Whirl%3A_BCO_R_package_converter"/>
	<link rel="alternate" type="text/html" href="https://wiki.biocomputeobject.org/index.php?title=Whirl:_BCO_R_package_converter&amp;action=history"/>
	<updated>2026-05-20T05:58:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.biocomputeobject.org/index.php?title=Whirl:_BCO_R_package_converter&amp;diff=1126&amp;oldid=prev</id>
		<title>Twang9 at 20:30, 12 August 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.biocomputeobject.org/index.php?title=Whirl:_BCO_R_package_converter&amp;diff=1126&amp;oldid=prev"/>
		<updated>2025-08-12T20:30:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:30, 12 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Follow the steps below to try out the tool:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Follow the steps below to try out the tool:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Install the whirl package: &amp;lt;code&amp;gt;&amp;gt; install.packages(&amp;quot;devtools&amp;quot;)&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; devtools::install_github(&amp;quot;NovoNordisk-OpenSource/whirl&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Install the whirl package: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;&amp;gt; install.packages(&amp;quot;devtools&amp;quot;)&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; devtools::install_github(&amp;quot;NovoNordisk-OpenSource/whirl&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Load the package: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;code&amp;gt;&amp;gt; library(whirl)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Load the package: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;&amp;lt;code&amp;gt;&amp;gt; library(whirl)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Prepare your YAML configuration (either already have a YAML or needs to define the pipeline manually):  &amp;lt;code&amp;gt;#example of a basic pipeline that meets the BCO requirements&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; whirl_config &amp;lt;- list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    steps = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        export_mtcars = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            run = &amp;quot;step1.R&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    ),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    biocompute = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        object_id = &amp;quot;bco-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        spec_version = &amp;quot;1.3.0&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        etag = &amp;quot;etag-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        usability = list(&amp;quot;Example use case: exporting mtcars dataset&amp;quot;),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            whirl_test_extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+                info = &amp;quot;Exporting mtcars dataset as test run&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+ )&amp;lt;/code&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Prepare your YAML configuration (either already have a YAML or needs to define the pipeline manually):  &amp;lt;code&amp;gt;#example of a basic pipeline that meets the BCO requirements&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; whirl_config &amp;lt;- list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    steps = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        export_mtcars = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            run = &amp;quot;step1.R&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    ),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    biocompute = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        object_id = &amp;quot;bco-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        spec_version = &amp;quot;1.3.0&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        etag = &amp;quot;etag-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        usability = list(&amp;quot;Example use case: exporting mtcars dataset&amp;quot;),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            whirl_test_extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+                info = &amp;quot;Exporting mtcars dataset as test run&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+ )&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Write to _whirl.yml: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;code&amp;gt;&amp;gt; writeLines(as.yaml(whirl_config), &amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Write to _whirl.yml: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;&amp;lt;code&amp;gt;&amp;gt; writeLines(as.yaml(whirl_config), &amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Run YAML config: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;code&amp;gt;&amp;gt; queue &amp;lt;- run(&amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Run YAML config: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;&amp;lt;code&amp;gt;&amp;gt; queue &amp;lt;- run(&amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Write into a BCO: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;code&amp;gt;&amp;gt; write_biocompute(queue, file = &amp;quot;bco.json&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Write into a BCO: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;&amp;lt;code&amp;gt;&amp;gt; write_biocompute(queue, file = &amp;quot;bco.json&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key bcoeditor_wiki:diff::1.12:old-1125:rev-1126 --&gt;
&lt;/table&gt;</summary>
		<author><name>Twang9</name></author>
	</entry>
	<entry>
		<id>https://wiki.biocomputeobject.org/index.php?title=Whirl:_BCO_R_package_converter&amp;diff=1125&amp;oldid=prev</id>
		<title>Twang9: Whirl package BCO generation toturial</title>
		<link rel="alternate" type="text/html" href="https://wiki.biocomputeobject.org/index.php?title=Whirl:_BCO_R_package_converter&amp;diff=1125&amp;oldid=prev"/>
		<updated>2025-08-12T20:29:25Z</updated>

		<summary type="html">&lt;p&gt;Whirl package BCO generation toturial&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Whirl, developed by Novo Nordisk, is an open-source R package designed to streamline the creation of BioCompute Objects (BCOs) from ready or near-ready YAML files that define computational pipeline structures. By automating the generation of BCOs compliant with the BioCompute standard, Whirl reduces the manual effort required to document complex bioinformatics workflows.&lt;br /&gt;
&lt;br /&gt;
This package is especially useful for researchers, bioinformaticians, and regulatory scientists who need to create reproducible, transparent, and standardized records of their data analysis pipelines. Whirl extracts relevant metadata, execution details, and file information from the YAML configuration and pipeline runs, packaging them into a structured JSON BCO suitable for FDA submissions or collaborative sharing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow the steps below to try out the tool:&lt;br /&gt;
&lt;br /&gt;
# Install the whirl package: &amp;lt;code&amp;gt;&amp;gt; install.packages(&amp;quot;devtools&amp;quot;)&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; devtools::install_github(&amp;quot;NovoNordisk-OpenSource/whirl&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
# Load the package:  &amp;lt;code&amp;gt;&amp;gt; library(whirl)&amp;lt;/code&amp;gt;&lt;br /&gt;
# Prepare your YAML configuration (either already have a YAML or needs to define the pipeline manually):  &amp;lt;code&amp;gt;#example of a basic pipeline that meets the BCO requirements&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;&amp;gt; whirl_config &amp;lt;- list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    steps = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        export_mtcars = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            run = &amp;quot;step1.R&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    ),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    biocompute = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        object_id = &amp;quot;bco-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        spec_version = &amp;quot;1.3.0&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        etag = &amp;quot;etag-mtcars-001&amp;quot;,&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        usability = list(&amp;quot;Example use case: exporting mtcars dataset&amp;quot;),&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            whirl_test_extension = list(&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+                info = &amp;quot;Exporting mtcars dataset as test run&amp;quot;&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+            )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+        )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+    )&amp;lt;/code&amp;gt;  &amp;lt;code&amp;gt;+ )&amp;lt;/code&amp;gt; &lt;br /&gt;
# Write to _whirl.yml:  &amp;lt;code&amp;gt;&amp;gt; writeLines(as.yaml(whirl_config), &amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run YAML config:  &amp;lt;code&amp;gt;&amp;gt; queue &amp;lt;- run(&amp;quot;_whirl.yml&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
# Write into a BCO:  &amp;lt;code&amp;gt;&amp;gt; write_biocompute(queue, file = &amp;quot;bco.json&amp;quot;)&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twang9</name></author>
	</entry>
</feed>