Skip to content

Commit

Permalink
Move OboEntries into own module for clarity reasons
Browse files Browse the repository at this point in the history
  • Loading branch information
omaus committed Jul 27, 2023
1 parent 16a9a6e commit eb6dca1
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 29 deletions.
1 change: 1 addition & 0 deletions playground.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ open System.IO

let testPath = Path.Combine(__SOURCE_DIRECTORY__, "./../../nfdi4plants/arc-validate/ErrorClassOntology.obo")

OboEntries.fromFile true testPath
let testOntology = OboOntology.fromFile true testPath

let testTerms = [
Expand Down
1 change: 1 addition & 0 deletions src/FsOboParser/FsOboParser.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<Compile Include="OboTerm.fs" />
<Compile Include="OboTypeDef.fs" />
<Compile Include="OboEntry.fs" />
<Compile Include="OboEntries.fs" />
<Compile Include="OboOntology.fs" />
<Compile Include="FastOboGraph.fs" />
</ItemGroup>
Expand Down
30 changes: 30 additions & 0 deletions src/FsOboParser/OboEntries.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
namespace FsOboParser


/// Functions for working with OboEntries.
module OboEntries =

/// Reads a collection of strings and parses them into a list of OboEntries.
let fromLines verbose (input : seq<string>) =

let en = input.GetEnumerator()
let rec loop (en:System.Collections.Generic.IEnumerator<string>) entries lineNumber =

match en.MoveNext() with
| true ->
match (en.Current |> DBXref.trimComment) with
| "[Term]" ->
let lineNumber, parsedTerm = (OboTerm.fromLines verbose en lineNumber "" "" false [] "" "" [] [] [] [] [] [] [] [] false [] [] [] false "" "")
loop en (Term parsedTerm :: entries) lineNumber
| "[Typedef]" ->
let lineNumber, parsedTypeDef = (OboTypeDef.fromLines verbose en lineNumber "" "" "" "" [] [] false false false false false false false)
loop en (TypeDef parsedTypeDef :: entries) lineNumber
| _ -> loop en entries (lineNumber + 1)
| false -> entries

loop en [] 1

/// Reads an OBO file and returns a list of OboEntries.
let fromFile verbose filepath =
System.IO.File.ReadAllLines filepath
|> fromLines verbose
29 changes: 0 additions & 29 deletions src/FsOboParser/OboOntology.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,6 @@ open ISADotNet
open System


/// Functions for working with OboEntries.
module OboEntries =

/// Reads a collection of strings and parses them into a list of OboEntries.
let fromLines verbose (input : seq<string>) =

let en = input.GetEnumerator()
let rec loop (en:System.Collections.Generic.IEnumerator<string>) entries lineNumber =

match en.MoveNext() with
| true ->
match (en.Current |> trimComment) with
| "[Term]" ->
let lineNumber, parsedTerm = (OboTerm.fromLines verbose en lineNumber "" "" false [] "" "" [] [] [] [] [] [] [] [] false [] [] [] false "" "")
loop en (Term parsedTerm :: entries) lineNumber
| "[Typedef]" ->
let lineNumber, parsedTypeDef = (OboTypeDef.fromLines verbose en lineNumber "" "" "" "" [] [] false false false false false false false)
loop en (TypeDef parsedTypeDef :: entries) lineNumber
| _ -> loop en entries (lineNumber + 1)
| false -> entries

loop en [] 1

/// Reads an OBO file and returns a list of OboEntries.
let fromFile verbose filepath =
IO.File.ReadAllLines filepath
|> fromLines verbose


/// Ontology containing OBO Terms and OBO Type Defs (OBO 1.2).
type OboOntology =

Expand Down

0 comments on commit eb6dca1

Please sign in to comment.