diff --git a/docs/faq.html b/docs/faq.html index f0e9e62..6e2476a 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -2,7 +2,7 @@ - + @@ -17,7 +17,7 @@ ul.task-list{list-style: none;} ul.task-list li input[type="checkbox"] { width: 0.8em; - margin: 0 0.8em 0.2em -1.6em; + margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ vertical-align: middle; } @@ -76,57 +76,58 @@ R Submissions Working Group + @@ -373,9 +373,23 @@

{ + const doc = window.document; + const targetCell = annoteEl.getAttribute("data-target-cell"); + const targetAnnotation = annoteEl.getAttribute("data-target-annotation"); + const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation)); + const lines = annoteSpan.getAttribute("data-code-lines").split(","); + const lineIds = lines.map((line) => { + return targetCell + "-" + line; + }) + let top = null; + let height = null; + let parent = null; + if (lineIds.length > 0) { + //compute the position of the single el (top and bottom and make a div) + const el = window.document.getElementById(lineIds[0]); + top = el.offsetTop; + height = el.offsetHeight; + parent = el.parentElement.parentElement; + if (lineIds.length > 1) { + const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]); + const bottom = lastEl.offsetTop + lastEl.offsetHeight; + height = bottom - top; + } + if (top !== null && height !== null && parent !== null) { + // cook up a div (if necessary) and position it + let div = window.document.getElementById("code-annotation-line-highlight"); + if (div === null) { + div = window.document.createElement("div"); + div.setAttribute("id", "code-annotation-line-highlight"); + div.style.position = 'absolute'; + parent.appendChild(div); + } + div.style.top = top - 2 + "px"; + div.style.height = height + 4 + "px"; + let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); + if (gutterDiv === null) { + gutterDiv = window.document.createElement("div"); + gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter"); + gutterDiv.style.position = 'absolute'; + const codeCell = window.document.getElementById(targetCell); + const gutter = codeCell.querySelector('.code-annotation-gutter'); + gutter.appendChild(gutterDiv); + } + gutterDiv.style.top = top - 2 + "px"; + gutterDiv.style.height = height + 4 + "px"; + } + selectedAnnoteEl = annoteEl; + } + }; + const unselectCodeLines = () => { + const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"]; + elementsIds.forEach((elId) => { + const div = window.document.getElementById(elId); + if (div) { + div.remove(); + } + }); + selectedAnnoteEl = undefined; + }; + // Attach click handler to the DT + const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); + for (const annoteDlNode of annoteDls) { + annoteDlNode.addEventListener('click', (event) => { + const clickedEl = event.target; + if (clickedEl !== selectedAnnoteEl) { + unselectCodeLines(); + const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active'); + if (activeEl) { + activeEl.classList.remove('code-annotation-active'); + } + selectCodeLines(clickedEl); + clickedEl.classList.add('code-annotation-active'); + } else { + // Unselect the line + unselectCodeLines(); + clickedEl.classList.remove('code-annotation-active'); + } + }); + } const findCites = (el) => { const parentEl = el.parentElement; if (parentEl) { diff --git a/docs/index.html b/docs/index.html index 24f3fcd..9168b9e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ - + @@ -17,7 +17,7 @@ ul.task-list{list-style: none;} ul.task-list li input[type="checkbox"] { width: 0.8em; - margin: 0 0.8em 0.2em -1.6em; + margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ vertical-align: middle; } @@ -76,57 +76,58 @@ R Submissions Working Group + @@ -342,9 +342,23 @@

Our Mission

icon: icon }; anchorJS.add('.anchored'); + const isCodeAnnotation = (el) => { + for (const clz of el.classList) { + if (clz.startsWith('code-annotation-')) { + return true; + } + } + return false; + } const clipboard = new window.ClipboardJS('.code-copy-button', { - target: function(trigger) { - return trigger.previousElementSibling; + text: function(trigger) { + const codeEl = trigger.previousElementSibling.cloneNode(true); + for (const childEl of codeEl.children) { + if (isCodeAnnotation(childEl)) { + childEl.remove(); + } + } + return codeEl.innerText; } }); clipboard.on('success', function(e) { @@ -409,6 +423,92 @@

Our Mission

return note.innerHTML; }); } + let selectedAnnoteEl; + const selectorForAnnotation = ( cell, annotation) => { + let cellAttr = 'data-code-cell="' + cell + '"'; + let lineAttr = 'data-code-annotation="' + annotation + '"'; + const selector = 'span[' + cellAttr + '][' + lineAttr + ']'; + return selector; + } + const selectCodeLines = (annoteEl) => { + const doc = window.document; + const targetCell = annoteEl.getAttribute("data-target-cell"); + const targetAnnotation = annoteEl.getAttribute("data-target-annotation"); + const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation)); + const lines = annoteSpan.getAttribute("data-code-lines").split(","); + const lineIds = lines.map((line) => { + return targetCell + "-" + line; + }) + let top = null; + let height = null; + let parent = null; + if (lineIds.length > 0) { + //compute the position of the single el (top and bottom and make a div) + const el = window.document.getElementById(lineIds[0]); + top = el.offsetTop; + height = el.offsetHeight; + parent = el.parentElement.parentElement; + if (lineIds.length > 1) { + const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]); + const bottom = lastEl.offsetTop + lastEl.offsetHeight; + height = bottom - top; + } + if (top !== null && height !== null && parent !== null) { + // cook up a div (if necessary) and position it + let div = window.document.getElementById("code-annotation-line-highlight"); + if (div === null) { + div = window.document.createElement("div"); + div.setAttribute("id", "code-annotation-line-highlight"); + div.style.position = 'absolute'; + parent.appendChild(div); + } + div.style.top = top - 2 + "px"; + div.style.height = height + 4 + "px"; + let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); + if (gutterDiv === null) { + gutterDiv = window.document.createElement("div"); + gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter"); + gutterDiv.style.position = 'absolute'; + const codeCell = window.document.getElementById(targetCell); + const gutter = codeCell.querySelector('.code-annotation-gutter'); + gutter.appendChild(gutterDiv); + } + gutterDiv.style.top = top - 2 + "px"; + gutterDiv.style.height = height + 4 + "px"; + } + selectedAnnoteEl = annoteEl; + } + }; + const unselectCodeLines = () => { + const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"]; + elementsIds.forEach((elId) => { + const div = window.document.getElementById(elId); + if (div) { + div.remove(); + } + }); + selectedAnnoteEl = undefined; + }; + // Attach click handler to the DT + const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); + for (const annoteDlNode of annoteDls) { + annoteDlNode.addEventListener('click', (event) => { + const clickedEl = event.target; + if (clickedEl !== selectedAnnoteEl) { + unselectCodeLines(); + const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active'); + if (activeEl) { + activeEl.classList.remove('code-annotation-active'); + } + selectCodeLines(clickedEl); + clickedEl.classList.add('code-annotation-active'); + } else { + // Unselect the line + unselectCodeLines(); + clickedEl.classList.remove('code-annotation-active'); + } + }); + } const findCites = (el) => { const parentEl = el.parentElement; if (parentEl) { diff --git a/docs/listings.json b/docs/listings.json index 327388a..5b3a34d 100644 --- a/docs/listings.json +++ b/docs/listings.json @@ -6,6 +6,9 @@ { "listing": "/minutes.html", "items": [ + "/minutes/2023-08-04/index.html", + "/minutes/2023-10-06/index.html", + "/minutes/2023-09-01/index.html", "/minutes/2023-07-07/index.html", "/minutes/2023-06-02/index.html", "/minutes/2023-05-05/index.html", diff --git a/docs/minutes.html b/docs/minutes.html index 3a565ad..d07689d 100644 --- a/docs/minutes.html +++ b/docs/minutes.html @@ -2,7 +2,7 @@ - + @@ -17,7 +17,7 @@ ul.task-list{list-style: none;} ul.task-list li input[type="checkbox"] { width: 0.8em; - margin: 0 0.8em 0.2em -1.6em; + margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ vertical-align: middle; } @@ -93,6 +93,7 @@ }) + @@ -109,57 +110,58 @@ R Submissions Working Group + @@ -186,7 +187,7 @@ +
Categories
All (34)
@@ -253,367 +254,378 @@

Meeting Minutes

- - -Aug 4, 2023 + + +undefined + + +date: 2023-08-04 + + +Joseph Rickert + + + + +Oct 6, 2023 - -Minutes 2023-08-04 + +Minutes 2023-10-06 - -Joseph Rickert + +Joseph Rickert - - -Jul 7, 2023 + + +Sep 1, 2023 - -Minutes 2023-07-07 + +Minutes 2023-09-01 - -Joseph Rickert + +Joseph Rickert - - - -Jul 7, 2023 + + + +Jul 7, 2023 - -Minutes 2023-07-07 + +Minutes 2023-07-07 - -Joseph Rickert + +Joseph Rickert - - -Jun 2, 2023 + + +Jun 2, 2023 - -Minutes 2023-06-02 + +Minutes 2023-06-02 - -Joseph Rickert + +Joseph Rickert - - -May 5, 2023 + + +May 5, 2023 - -Minutes 2023-05-05 + +Minutes 2023-05-05 - -Joseph Rickert + +Joseph Rickert - - -Apr 7, 2023 + + +Apr 7, 2023 - -Minutes 2023-04-07 + +Minutes 2023-04-07 - -Joseph Rickert + +Joseph Rickert - - -Mar 3, 2023 + + +Mar 3, 2023 - -Minutes 2023-03-03 + +Minutes 2023-03-03 - -Joseph Rickert + +Joseph Rickert - - -Feb 9, 2023 + + +Feb 9, 2023 - -Minutes 2023-02-03 + +Minutes 2023-02-03 - -Joseph Rickert + +Joseph Rickert - - -Jan 13, 2023 + + +Jan 13, 2023 - -Minutes 2023-01-13 + +Minutes 2023-01-13 - -Eric Nantz + +Eric Nantz - - -Dec 2, 2022 + + +Dec 2, 2022 - -Minutes 2022-12-02 + +Minutes 2022-12-02 - -Joseph Rickert + +Joseph Rickert - - -Nov 4, 2022 + + +Nov 4, 2022 - -Minutes 2022-11-04 + +Minutes 2022-11-04 - -Joseph Rickert + +Joseph Rickert - - -Oct 7, 2022 + + +Oct 7, 2022 - -Minutes 2022-10-07 + +Minutes 2022-10-07 - -Joseph Rickert + +Joseph Rickert - - -Sep 2, 2022 + + +Sep 2, 2022 - -Minutes 2022-09-02 + +Minutes 2022-09-02 - -Joseph Rickert + +Joseph Rickert - - -Aug 5, 2022 + + +Aug 5, 2022 - -Minutes 2022-08-05 + +Minutes 2022-08-05 - -Joseph Rickert + +Joseph Rickert - - -Jul 1, 2022 + + +Jul 1, 2022 - -Minutes 2022-07-01 + +Minutes 2022-07-01 - -Joseph Rickert + +Joseph Rickert - - -Jun 4, 2022 + + +Jun 4, 2022 - -Minutes 2022-06-04 + +Minutes 2022-06-04 - -Joseph Rickert + +Joseph Rickert - - -May 6, 2022 + + +May 6, 2022 - -Minutes 2022-05-06 + +Minutes 2022-05-06 - -Joseph Rickert + +Joseph Rickert - - -Mar 4, 2022 + + +Mar 4, 2022 - -Minutes 2022-03-04 + +Minutes 2022-03-04 - -Joseph Rickert + +Joseph Rickert - - -Feb 4, 2022 + + +Feb 4, 2022 - -Minutes 2022-02-04 + +Minutes 2022-02-04 - -Joseph Rickert + +Joseph Rickert - - -Jan 7, 2022 + + +Jan 7, 2022 - -Minutes 2022-01-07 + +Minutes 2022-01-07 - -Joseph Rickert + +Joseph Rickert - - -Dec 3, 2021 + + +Dec 3, 2021 - -Minutes 2021-12-03 + +Minutes 2021-12-03 - -Joseph Rickert + +Joseph Rickert - - -Dec 3, 2021 + + +Dec 3, 2021 - -Minutes 2021-12-03 + +Minutes 2021-12-03 - -Joseph Rickert + +Joseph Rickert - - -Nov 5, 2021 + + +Nov 5, 2021 - -Minutes 2021-11-05 + +Minutes 2021-11-05 - -Joseph Rickert + +Joseph Rickert - - -Oct 1, 2021 + + +Oct 1, 2021 - -Minutes 2021-10-01 + +Minutes 2021-10-01 - -Joseph Rickert + +Joseph Rickert - - -Sep 3, 2021 + + +Sep 3, 2021 - -Minutes 2021-09-03 + +Minutes 2021-09-03 - -Joseph Rickert + +Joseph Rickert - - -Aug 6, 2021 + + +Aug 6, 2021 - -Minutes 2021-08-06 + +Minutes 2021-08-06 - -Joseph Rickert + +Joseph Rickert - - -Jun 4, 2021 + + +Jun 4, 2021 - -Minutes 2021-06-04 + +Minutes 2021-06-04 - -Joseph Rickert + +Joseph Rickert - - -May 7, 2021 + + +May 7, 2021 - -Minutes 2021-05-07 + +Minutes 2021-05-07 - -Joseph Rickert + +Joseph Rickert - - -Apr 5, 2021 + + +Apr 5, 2021 - -Minutes 2021-04-05 + +Minutes 2021-04-05 - -Joseph Rickert + +Joseph Rickert - - -Mar 5, 2021 + + +Mar 5, 2021 - -Minutes 2021-03-05 + +Minutes 2021-03-05 - -Joseph Rickert + +Joseph Rickert - - -Feb 5, 2021 + + +Feb 5, 2021 - -Minutes 2021-02-05 + +Minutes 2021-02-05 - -Joseph Rickert + +Joseph Rickert - - -Jan 15, 2021 + + +Jan 15, 2021 - -Minutes 2021-01-15 + +Minutes 2021-01-15 - -Joseph Rickert + +Joseph Rickert - - -Dec 4, 2020 + + +Dec 4, 2020 - -Minutes 2020-12-04 + +Minutes 2020-12-04 - -Joseph Rickert + +Joseph Rickert @@ -768,9 +780,23 @@

Meeting Minutes

icon: icon }; anchorJS.add('.anchored'); + const isCodeAnnotation = (el) => { + for (const clz of el.classList) { + if (clz.startsWith('code-annotation-')) { + return true; + } + } + return false; + } const clipboard = new window.ClipboardJS('.code-copy-button', { - target: function(trigger) { - return trigger.previousElementSibling; + text: function(trigger) { + const codeEl = trigger.previousElementSibling.cloneNode(true); + for (const childEl of codeEl.children) { + if (isCodeAnnotation(childEl)) { + childEl.remove(); + } + } + return codeEl.innerText; } }); clipboard.on('success', function(e) { @@ -835,6 +861,92 @@

Meeting Minutes

return note.innerHTML; }); } + let selectedAnnoteEl; + const selectorForAnnotation = ( cell, annotation) => { + let cellAttr = 'data-code-cell="' + cell + '"'; + let lineAttr = 'data-code-annotation="' + annotation + '"'; + const selector = 'span[' + cellAttr + '][' + lineAttr + ']'; + return selector; + } + const selectCodeLines = (annoteEl) => { + const doc = window.document; + const targetCell = annoteEl.getAttribute("data-target-cell"); + const targetAnnotation = annoteEl.getAttribute("data-target-annotation"); + const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation)); + const lines = annoteSpan.getAttribute("data-code-lines").split(","); + const lineIds = lines.map((line) => { + return targetCell + "-" + line; + }) + let top = null; + let height = null; + let parent = null; + if (lineIds.length > 0) { + //compute the position of the single el (top and bottom and make a div) + const el = window.document.getElementById(lineIds[0]); + top = el.offsetTop; + height = el.offsetHeight; + parent = el.parentElement.parentElement; + if (lineIds.length > 1) { + const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]); + const bottom = lastEl.offsetTop + lastEl.offsetHeight; + height = bottom - top; + } + if (top !== null && height !== null && parent !== null) { + // cook up a div (if necessary) and position it + let div = window.document.getElementById("code-annotation-line-highlight"); + if (div === null) { + div = window.document.createElement("div"); + div.setAttribute("id", "code-annotation-line-highlight"); + div.style.position = 'absolute'; + parent.appendChild(div); + } + div.style.top = top - 2 + "px"; + div.style.height = height + 4 + "px"; + let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); + if (gutterDiv === null) { + gutterDiv = window.document.createElement("div"); + gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter"); + gutterDiv.style.position = 'absolute'; + const codeCell = window.document.getElementById(targetCell); + const gutter = codeCell.querySelector('.code-annotation-gutter'); + gutter.appendChild(gutterDiv); + } + gutterDiv.style.top = top - 2 + "px"; + gutterDiv.style.height = height + 4 + "px"; + } + selectedAnnoteEl = annoteEl; + } + }; + const unselectCodeLines = () => { + const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"]; + elementsIds.forEach((elId) => { + const div = window.document.getElementById(elId); + if (div) { + div.remove(); + } + }); + selectedAnnoteEl = undefined; + }; + // Attach click handler to the DT + const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); + for (const annoteDlNode of annoteDls) { + annoteDlNode.addEventListener('click', (event) => { + const clickedEl = event.target; + if (clickedEl !== selectedAnnoteEl) { + unselectCodeLines(); + const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active'); + if (activeEl) { + activeEl.classList.remove('code-annotation-active'); + } + selectCodeLines(clickedEl); + clickedEl.classList.add('code-annotation-active'); + } else { + // Unselect the line + unselectCodeLines(); + clickedEl.classList.remove('code-annotation-active'); + } + }); + } const findCites = (el) => { const parentEl = el.parentElement; if (parentEl) { @@ -878,4 +990,4 @@

Meeting Minutes

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/minutes.xml b/docs/minutes.xml index 8704db3..e2398ce 100644 --- a/docs/minutes.xml +++ b/docs/minutes.xml @@ -9,8 +9,266 @@ https://rconsortium.github.io/submissions-wg/minutes.html -quarto-1.2.313 -Fri, 07 Jul 2023 04:00:00 GMT +quarto-1.3.353 +Fri, 06 Oct 2023 07:00:00 GMT + + Minutes 2023-10-06 + Joseph Rickert + https://rconsortium.github.io/submissions-wg/minutes/2023-10-06/index.html + + +
+
+
    +
  • Andrew Borgman (Bristol Myers Squibb)
  • +
  • Ben Straub (GSK)
  • +
  • Eric Nantz (Eli Lilly)
  • +
  • HyeSoo Cho (FDA)
  • +
  • Jizu Zhi (FDA)
  • +
  • Joseph Rickert (R Consortium)
  • +
  • Kaushal Shah (ASU)
  • +
  • Nan Xiao (Merck)
  • +
  • Ning Leng (Roche/Genentech)
  • +
  • Paul Schuette (FDA)
  • +
  • Renping Zhang (Johnson & Johnson)
  • +
  • Robert Devine (Johnson & Johnson)
  • +
  • Saghir Bashir (Argenx)
  • +
  • Sam Parmar (Pfizer)
  • +
  • Youn Kyeong Chang (FDA)
  • +
+
+
+ +

The meeting was recorded and the video is available.

+
+

New Member

+

HyeSoo introduced Youn Kyeong Chang as a new member of the group who will be helping to evaluate the pilot submissions for the FDA.

+
+
+

Pilot 2

+
    +
  • JBR began the meeting by noting the successful conclusion of the Pilot 2 submission and commenting on the attention it is getting throughout the industry.
  • +
  • The group thanked Paul and HyeSoo for there work on the project and their efforts to shepherd the review through the FDA process.
  • +
  • Ning remarked that it was really helpful that Paul was able to provide us with the FDA letter for the ASA conference.
  • +
  • Ning and Eric talked about the how much attention their poster got at the conference.
  • +
  • The working group is enthusiastic about doing an R Consortium webinar about the Pilot 2 project.
  • +
  • The tentative date for the webinar is 3:00PM EST on Monday December 11, 2023.
  • +
  • Action: Ning will prepare the letter requesting speakers for the FDA and contact the R Adoption series organizers.
  • +
  • Action: JBR will also contact the R Consortium webinar production team.
  • +
+
+
+

Pilot 3

+
    +
  • HyeSoo laid out a timeline for evaluating Pilot 3, saying it would take an additional six to seven months to complete.
  • +
  • Ben said that there is quite a bit of interest at GSK about the ADRG because Pilot 3 did not use pkglite.
  • +
  • HyeSoo remarked that the ADRG is different but that her preliminary look did not show any problems.
  • +
  • There was some discussion abut looking back at the ADRGs made for both Pilot 2 and Pilot 3.
  • +
  • Eric noted that he made the Pilot 2 ADRG in Quarto and was very happy with the workflow.
  • +
  • We can expect feedback on the review during our normal sessions.
  • +
  • Ben Staub noted that Novo Nordisk about presentation about their recent R submission.
  • +
  • Paul remarked that he cannot comment on the Novo Nordisk submission since it is not finalized, but he did say that what Novo Nordisk said in their presentation about keeping things simple (limiting packages and dependencies) and being able to trace key endpoints is the same advice the FDA would be give.
  • +
  • Paul also noted that the fact that the FDA is not able to comment on submissions in progress is one reason why it is nice to have a pilot.
  • +
+
+
+

Pilot 4

+
    +
  • Eric reported that he had the opportunity with meet with the Appsilon folks helping with Pilot 4 at posit::conf and that next sprint on the project will begin this coming week.
  • +
  • JBR brought up on several limitations to WebAssembly, such as not being able to accommodate networking functions in the browser.
  • +
  • Eric replied that Pilot 4 is not likely to hit the constraining limits, but that these may become a concern as we move into more robust submissions in 2024. (This discussion begins about 21:00 in the video)
  • +
  • JBR asks that we take the trouble to communicate clearly about our knowledge of the limitations.
  • +
  • There was a discussion about whether the FDA would be ready to receive a container based sub-submission.
  • +
  • The agreed that Pilot 4 in two parts: part a will be WebAssembly based and part b sill be based on containers.
  • +
  • Eric believes that he will be ready to submit Part 4.a in mid December. Paul will confer with his management about resources being available in that time frame.
  • +
  • There was a discussion about whether setting up a server with containers outside of the FDA would we be helpful for FDA reviewers becoming familiar with Podman.
  • +
  • JBR remarked that other working groups are interested in establishing protocols, best practices, and requirements for repositories.
  • +
  • Paul noted that from the FDA’s point of view, longevity should be a requirement noting that 6 years would be a minimum and there may be reasons to consider 20 years.
  • +
  • The group decided that it would be feasible and may be helpful to set up a server with the Pilot 2 submission shiny app running in a container.
  • +
+
+
+

Participation in the ISBS 7th Symposium

+
    +
  • JBR mentioned that he received an an invitation from Qi, Hong , the organizer of the The 7th International Symposium on Biopharmaceutical Statistics to present a 20 minute talk at the event. The invitation is below.
  • +
  • Link to ISBS past event
  • +
  • The group agreed that we should try to participate even though it seems to be a primarily statistician driven event.
  • +
  • Ning offered to put together an abstract.
  • +
  • Pending some final investigation, JBR will let them know that we would like to participate but that we do not yet know who the speaker will be.
  • +
  • JBR noted that it might be an opportunity to present the FDA’s view about the kind of statistics and principles that govern an FDA submission.
  • +
+
+
+

FDASA Proposal

+
    +
  • Ning has prepared a final version of the abstract for a session solely from the R Consortium.
  • +
  • Joe will send the proposal in a with a cover letter to Paul.
  • +
  • The ASA Biopharma working group intends to send its own proposal for a talk.
  • +
+

The next meeting of the working group will be at 9AM PST on Friday November 3, 2023.

+
+
+

Invitation from ISBS

+

Dear Joseph,

+

Thanks so much for expressing interest in presenting at The 7th International Symposium on Biopharmaceutical Statistics, which will take place on March 6 – 9, 2024, at Hilton Baltimore Inner Harbor. The symposium is organized by the International Society for Biopharmaceutical Statistics (ISBS). Prominent statisticians and drug development professionals from regulatory agencies, academia, and industry will deliver keynote speeches on various emerging/evolving fields. Invited and contributed presentations will cover a wide range of topics including innovative statistics, clinical development, regulatory science, and data science.

+

We are organizing a Regulatory Submission session dedicated to communicating the agencies’ requirements for drug submission, and the implementation of industry standards to support the acquisition, exchange, analysis, submission and archival of clinical data and metadata in the pharmaceutical industry. We cordially invite you to present an R topic related to regulatory submission. Each presentation has 20 minutes including speech and Q&A. It is highly appreciated if you may provide the presentation topic and presenter(s)’ name by October 15, 2023. Below are the important dates:

+

Abstract submission due: Oct. 29th, 2023. Registration start date: Nov. 15th, 2023. Presentation slides due: Feb. 15th, 2024. Sincerely,

+

Mary Varughese, Chair Hong Qi, Organizer

+

Regulatory Submission Session

+

7th Symposium, ISBS

+ + +
+ + ]]>
+ https://rconsortium.github.io/submissions-wg/minutes/2023-10-06/index.html + Fri, 06 Oct 2023 07:00:00 GMT +
+ + Minutes 2023-09-01 + Joseph Rickert + https://rconsortium.github.io/submissions-wg/minutes/2023-09-01/index.html + + +
+
+
    +
  • Eric Nantz (Eli Lilly)
  • +
  • Heidi Curinckx (Johnson & Johnson)
  • +
  • HyeSoo Cho (FDA)
  • +
  • Jizu Zhi (FDA)
  • +
  • Joel Laxamana (Roche/Genentech)
  • +
  • Joseph Rickert (R Consortium)
  • +
  • Nan Xiao (Merck)
  • +
  • Ning Leng (Roche/Genentech)
  • +
  • Paul Schuette (FDA)
  • +
  • Robert Devine (Johnson & Johnson)
  • +
  • Saghir Bashir (Argenx)
  • +
  • Sam Parmar (Pfizer)
  • +
+
+
+ +

The meeting was recorded and the video is available.

+
+

Pilot 2

+

Paul Schuette provided and update on the Agency’s review of Pilot 2

+
    +
  • HyeSoo Cho completed her review and passed it on to FDA authorities for additional review.
  • +
  • Paul feels that he and HyeSoo anticipate they will be able to answer any questions from the reviewers
  • +
  • Paul does not anticipate problems
  • +
  • It may take two weeks or longer to close things out
  • +
  • Paul will include some material about Pilot 1 in his up coming ASA data set
  • +
+

Actions:

+
    +
  • Joel will send Paul the data set link used for Pilot 1
  • +
  • Joel will review the draft announcement for Pilot 3, Ning will approve and pass it to Paul for his review.
  • +
+
+
+

Pilot 3

+

Joel Laxamana provided the status update.

+
    +
  • Did not use pkglite
  • +
  • submitted the .r file
  • +
  • Installed proprietary package from its own repo
  • +
  • Had to change .lock file to renv-lock.txt and provide instructions how to change it back.
  • +
  • Team members tested on Linux, Mac, and Windows
  • +
  • Submitted the Pilot through the FDA gateway
  • +
  • HyeSoo Cho, the FDA Pilot 3 reviewer, contacted the FDA gateway team to request access and expects to receive access next week
  • +
  • HyeSoo believes she will be able to report on Pilot 3 by the October meeting.
  • +
+
+
+

Pilot 4

+

Eric Nantz provided a status up date on Pilot 4 describing the significant progress that has been made with developing prototypes for both the WebAssemply and Container approaches.

+
+

WebAssembly

+
    +
  • At 19:48 minutes in to the video Eric displays the Pilot 4 teams minutes for their recent meeting, Minutes 2023-08-18, and talks through the activities.
  • +
  • George Stagg and Winston Chang from Posit attended the Pilot 4 meeting
  • +
  • The httpuv R package will be necessary to start up a mini web server in the user’s local environment. There will be a script to accomplish this.
  • +
  • There will be no traces of the Shiny app interacting with the host system
  • +
  • Binaries of the packages used will be included in the transfer. These will not be executable binaries. They will be similar to .tar or .zip files.
  • +
  • The end user will have to install the version of R used in Pilot 1
  • +
  • Shinylive is another rapidly developing technology that may per pertinent to Pilot 4. Currently Shinylive is only available for Python. However, Winston Chang expects the R based version will be available soon.
  • +
  • Eric demos Shinylive from the posit website at 28:00 minutes into the video
  • +
  • See the Posit post webR 0.2.0 for additional information.
  • +
  • A Pilot 4 submission based on WebAssembly technology looks feasible by the end of the year.
  • +
+
+
+

Containers

+
    +
  • Eric’s team already has a Podman container with Pilot 2 running
  • +
  • The team is waiting for Paul to clarify what is required by the FDA IT team for them be able to receive containers.
  • +
+
+
+

Preferred technology

+
    +
  • Since the WebAssembly version does not require the involvement of FDA technology, it looks like it is the preferred method for a first Pilot 4 submission
  • +
  • At 37:43 minutes into the video, Eric shows the “Hello World” version of a WebAssembly submission created by Appsilon engineers.
  • +
+
+
+
+

Promotion

+
    +
  • Joseph Rickert suggests that the story of the Submissions group cooperative effort is as important as the story of the technology.
  • +
  • The story of the overall submission group should be written up, However, Joe proposed that since the Pilot 4 effort is moving so quickly and involves contributions not only from working group members, but also from vendors we should tell this story first while the details are fresh.
  • +
  • Eric agrees that the participation of the two development teams from Posit and Appsilon is unique.
  • +
  • Eric notes that he has submitted a talk about Pilot 4 for the R/Pharma conference
  • +
+

Action:

+
    +
  • Eric and Ning will update the GitHub sites for the Pilot teams to make sure the information is up to date and all the contributors are recognized.
  • +
  • Eric, Joe, Eric agree to work on an end of year thank you / celebration post.
  • +
  • Joe will make sure the R Consortium promotes Eric’s talk
  • +
+
+
+

Novo Nordisk Submission

+
    +
  • Joe asked the group if anyone has information about the Novo Nordisk all R submission.
  • +
  • See the upcoming webinar
  • +
+

The next meeting of the working group will be at 9AM PST on Friday October 6, 2023.

+ + +
+ + ]]>
+ https://rconsortium.github.io/submissions-wg/minutes/2023-09-01/index.html + Fri, 01 Sep 2023 07:00:00 GMT +
Minutes 2023-07-07 Joseph Rickert @@ -20,12 +278,12 @@ -
+