Skip to content

Commit

Permalink
Add excel get and create template meta data from sequence of strings
Browse files Browse the repository at this point in the history
  • Loading branch information
Etschbeijer committed Oct 10, 2024
1 parent 3c383de commit 12e5d75
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/Spreadsheet/ArcStudy.fs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ module ArcStudy =
let toMetadataCollection (study : ArcStudy) (assays : ArcAssay list option) =
Studies.toRows study assays
|> Seq.append [SparseRow.fromValues [studiesLabel]]
|> Seq.map (fun r -> SparseRow.getAllValues r)
|> Seq.map (fun row -> SparseRow.getAllValues row)

let fromMetadataCollection (collection: seq<seq<string option>>) : ArcStudy*ArcAssay list =
try
Expand Down
13 changes: 10 additions & 3 deletions src/Spreadsheet/Template.fs
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,6 @@ module Template =
let [<Literal>] metaDataSheetName = "isa_template"
let [<Literal>] obsoletemetaDataSheetName = "SwateTemplateMetadata"


let fromParts (templateInfo:TemplateInfo) (ers:OntologyAnnotation list) (tags: OntologyAnnotation list) (authors : Person list) (table : ArcTable) (lastUpdated : System.DateTime)=
Template.make
(System.Guid templateInfo.Id)
Expand All @@ -240,8 +239,7 @@ module Template =
(ResizeArray tags)
(lastUpdated)

let toMetadataSheet (template : Template) : FsWorksheet =

let toMetadataSheet (template : Template) : FsWorksheet =
let sheet = FsWorksheet(metaDataSheetName)
Template.toRows template
|> Seq.iteri (fun rowI r -> SparseRow.writeToSheet (rowI + 1) r sheet)
Expand All @@ -252,6 +250,15 @@ module Template =
|> Seq.map SparseRow.fromFsRow
|> Template.fromRows

let toMetadataCollection (template : Template) =
Template.toRows template
|> Seq.map (fun row -> SparseRow.getAllValues row)

let fromMetadataCollection (collection: seq<seq<string option>>) =
collection
|> Seq.map SparseRow.fromAllValues
|> Template.fromRows

/// Reads an assay from a spreadsheet
let fromFsWorkbook (doc:FsWorkbook) =
// Reading the "Assay" metadata sheet. Here metadata
Expand Down
19 changes: 18 additions & 1 deletion tests/Spreadsheet/TemplateTests.fs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module TemplateTests
module TemplateTests


open ARCtrl
Expand Down Expand Up @@ -51,6 +51,23 @@ let tests_Spreadsheet = testList "Template_Spreadsheet" [
let sheet = Spreadsheet.Template.toMetadataSheet template

Expect.workSheetEqual sheet TestObjects.Spreadsheet.Template.templateMetadata "Metadata sheet should be equal"
testCase "TestMetadataFromCollection" (fun _ ->

let table = ArcTable.init(TestObjects.Spreadsheet.Template.templateTableName)
let templateInfo, ers,tags,authors = Spreadsheet.Template.fromMetadataCollection (TestObjects.Spreadsheet.Template.templateetadataCollection table)

let template = ARCtrl.Spreadsheet.Template.fromParts templateInfo ers tags authors table System.DateTime.Now

Expect.stringEqual template.Name "Plant growth" "Name should be equal"
Expect.stringEqual template.Version "1.2.0" "Version should be equal"

Expect.isSome (template.EndpointRepositories.Item 0).TermAccessionNumber (ARCtrl.Helper.Url.createOAUri "DPBO" "1000096")
Expect.isSome (template.EndpointRepositories.Item 0).TermAccessionNumber (ARCtrl.Helper.Url.createOAUri "NFDI4PSO" "1000097")
Expect.isSome (template.EndpointRepositories.Item 0).TermAccessionNumber (ARCtrl.Helper.Url.createOAUri "NFDI4PSO" "1000098")
Expect.isSome (template.EndpointRepositories.Item 0).TermAccessionNumber (ARCtrl.Helper.Url.createOAUri "NFDI4PSO" "0010002")
Expect.isSome (template.EndpointRepositories.Item 0).TermAccessionNumber (ARCtrl.Helper.Url.createOAUri "DPBO" "0010000")

)
]
testList "fullFile" [
testCase "simple" <| fun _ ->
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module TestObjects.Spreadsheet.Template
module TestObjects.Spreadsheet.Template

open FsSpreadsheet

Expand Down Expand Up @@ -163,6 +163,11 @@ let templateMetadata =
row28.[6].Value <- ""
ws

let templateetadataCollection table =
let template, ers, tags, authors = ARCtrl.Spreadsheet.Template.fromMetadataSheet templateMetadata
ARCtrl.Spreadsheet.Template.fromParts template ers tags authors table System.DateTime.Now
|> ARCtrl.Spreadsheet.Template.toMetadataCollection

let templateMetadata_deprecatedKeys =
let ws = FsWorksheet("SwateTemplateMetadata")
let row1 = ws.Row(1)
Expand Down

0 comments on commit 12e5d75

Please sign in to comment.