Skip to content

Instantly share code, notes, and snippets.

@JervenBolleman
Created August 27, 2020 17:07
Show Gist options
  • Save JervenBolleman/856935510bb250991224acc7040cb5de to your computer and use it in GitHub Desktop.
Save JervenBolleman/856935510bb250991224acc7040cb5de to your computer and use it in GitHub Desktop.
#!/usr/bin/awk -f
BEGIN {
print "prefix vg:<http://biohackathon.org/resource/vg> "
print "prefix faldo:<http://biohackathon.org/resource/faldo> "
print "prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#> "
print "prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
print "prefix node:<"node_iri_base">"
}
{
if ($1=="S"){
print "node:"$2" a vg:Node ; rdf:value \""$3"\" . "
nodes[$2]=length($3)
} else if ($1=="L" && $3=="+" && $5="+"){
print "node:"$2" vg:linksForwardToForward node:"$4" . "
} else if ($1=="L" && $3=="+" && $5="-"){
print "node:"$2" vg:linksForwardToReverse node:"$4" . "
} else if ($1=="L" && $3=="-" && $5="-"){
print "node:"$2" vg:linksReverseToReverse node:"$4" . "
} else if ($1=="L" && $3=="-" && $5="+"){
print "node:"$2" vg:linksReverseToForward node:"$4" . "
} else if ($1=="P"){
j=0
pos=0;
print "<"$2"> a vg:Path ."
split($3,a,",",seps)
for (s in a) {
j++
n=substr(a[s],0,length(a[s])-1)
orientation=substr(a[s],length(a[s])-1)
print "<"$2"-region-"j"> a vg:Step , faldo:Region ; vg:rank "j" ; vg:path <"$2"> ;"
print "#step"
nextpos=pos+nodes[n];
if (orientation=="+") {
be=$2"f"pos
en=$2"f"nextpos
print "vg:node node:"n" ; faldo:begin <"be"> ; faldo:end <"en"> . "
print "<"be"> a faldo:ExactPosition, faldo:ForwardStrandPosition ; faldo:position "pos" ; faldo:reference <"$2"> . "
print "<"en"> a faldo:ExactPosition, faldo:ForwardStrandPosition ; faldo:position "nextpos" ; faldo:reference <"$2"> . "
} else {
be=$2"r"pos
en=$2"r"nextpos
print "vg:reverseOfNode node:"n" ; faldo:begin <"be"> ; faldo:end <"en"> . "
print "<"be"> a faldo:ExactPosition, faldo:ReverseStrandPosition ; faldo:position "pos" ; faldo:reference <"$2"> . "
print "<"en"> a faldo:ExactPosition, faldo:ReverseStrandPosition ; faldo:position "nextpos" ; faldo:reference <"$2"> . "
}
pos=nextpos;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment