Giter Club home page Giter Club logo

sboljs3's Introduction

sboljs3 is a library for the Synthetic Biology Open Language (SBOL) written in TypeScript, for JavaScript/TypeScript applications in the browser or node.js.

sboljs3 is built on rdfoo, a library for creating object oriented RDF abstractions in TypeScript. It can therefore be used in conjunction with other rdfoo abstractions. For example, the PROV-O abstraction used by sboljs3 is provided by rdfoo-prov.

Implemented so far

  • Reading and writing SBOL1, SBOL2, and SBOL3
  • Converting between SBOL1, SBOL2, and SBOL3
  • Reading (converting) FASTA and GenBank

Not implemented so far

  • Writing FASTA and GenBank
  • Validation

Citation

If you use this library in your work, please cite

@article{sboljs,
  author = {McLaughlin, James Alastair and Myers, Chris J. and Zundel, Zach and Wilkinson, Nathan and Atallah, Christian and Wipat, Anil},
  title = {sboljs: Bringing the Synthetic Biology Open Language to the Web Browser},
  journal = {ACS Synthetic Biology},
  volume = {8},
  number = {1},
  pages = {191-193},
  year = {2019},
  doi = {10.1021/acssynbio.8b00338},
  URL = { https://doi.org/10.1021/acssynbio.8b00338 },
  eprint = {  https://doi.org/10.1021/acssynbio.8b00338 }
}

sboljs3's People

Contributors

jamesamcl avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

wayoffthecoast

sboljs3's Issues

sbolgraph cannot handle CombinatorialDerivation objects

Any file with a CombinatorialDerivation currently produces an opaque failure because sbolgraph currently does not know about CombinatorialDerivation objects.

Example failure:

/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:54477
            throw new Error('unknown type: ' + uri + ' a ' + type);
                  ^

Error: unknown type: https://github.com/iGEM-Engineering/iGEM-distribution/Fluorescent%20Reporter%20Proteins/Fluorescent_Proteins_in_vector_ins a http://sbols.org/v3#CombinatorialDerivation
    at SBOL3.uriToFacade (/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:54477:19)
    at SBOL3GraphView.uriToFacade (/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:49132:23)
    at /Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:58779:37
    at Array.map (<anonymous>)
    at S3Collection.get members [as members] (/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:58779:14)
    at Object.convert3to2 [as default] (/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:55973:33)
    at Function.<anonymous> (/Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:54525:36)
    at Generator.next (<anonymous>)
    at /Users/jakebeal/projects/BioTools/iGEM_distribution/scripts/sbol:54504:71
    at new Promise (<anonymous>)

SBOl 2->3 conversion errors

Conversion from SBOL2 to SBOL3 creates files with validation errors.
For example, here are the errors from conversion of this short J23101 XML file:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:sbol="http://sbols.org/v2#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#dateTime/" xmlns:om="http://www.ontology-of-units-of-measure.org/resource/om-2/" xmlns:synbiohub="http://synbiohub.org#" xmlns:sbh="http://wiki.synbiohub.org/wiki/Terms/synbiohub#" xmlns:sybio="http://www.sybio.ncl.ac.uk#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:ncbi="http://www.ncbi.nlm.nih.gov#" xmlns:igem="http://wiki.synbiohub.org/wiki/Terms/igem#" xmlns:genbank="http://www.ncbi.nlm.nih.gov/genbank#" xmlns:gbconv="http://sbols.org/genBankConversion#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:obo="http://purl.obolibrary.org/obo/">
  <sbol:ComponentDefinition rdf:about="https://synbiohub.org/public/igem/BBa_J23101/1">
    <sbol:persistentIdentity rdf:resource="https://synbiohub.org/public/igem/BBa_J23101"/>
    <sbol:displayId>BBa_J23101</sbol:displayId>
    <sbol:version>1</sbol:version>
    <prov:wasDerivedFrom rdf:resource="http://parts.igem.org/Part:BBa_J23101"/>
    <prov:wasGeneratedBy rdf:resource="https://synbiohub.org/public/igem/igem2sbol/1"/>
    <dcterms:title>BBa_J23101</dcterms:title>
    <dcterms:description>constitutive promoter family member</dcterms:description>
    <dcterms:created>2006-08-03T11:00:00Z</dcterms:created>
    <dcterms:modified>2015-08-31T04:08:40Z</dcterms:modified>
    <sbh:mutableProvenance>later</sbh:mutableProvenance>
    <sbh:topLevel rdf:resource="https://synbiohub.org/public/igem/BBa_J23101/1"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/james"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/myers"/>
    <igem:partStatus>Released HQ 2013</igem:partStatus>
    <sbh:mutableDescription>later</sbh:mutableDescription>
    <igem:discontinued>false</igem:discontinued>
    <igem:dominant>true</igem:dominant>
    <igem:experience rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#experience/Works"/>
    <igem:group_u_list>_52_</igem:group_u_list>
    <igem:m_user_id>0</igem:m_user_id>
    <igem:owner_id>483</igem:owner_id>
    <igem:owning_group_id>95</igem:owning_group_id>
    <igem:sampleStatus>In stock</igem:sampleStatus>
    <igem:status rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#status/Available"/>
    <sbh:bookmark>true</sbh:bookmark>
    <sbh:mutableNotes>N/A</sbh:mutableNotes>
    <sbh:star>true</sbh:star>
    <dc:creator>John Anderson</dc:creator>
    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
    <sbol:role rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#partType/Regulatory"/>
    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
    <sbol:sequence rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence/1"/>
  </sbol:ComponentDefinition>
  <sbol:Sequence rdf:about="https://synbiohub.org/public/igem/BBa_J23101_sequence/1">
    <sbol:persistentIdentity rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence"/>
    <sbol:displayId>BBa_J23101_sequence</sbol:displayId>
    <sbol:version>1</sbol:version>
    <prov:wasDerivedFrom rdf:resource="http://parts.igem.org/Part:BBa_J23101"/>
    <prov:wasGeneratedBy rdf:resource="https://synbiohub.org/public/igem/igem2sbol/1"/>
    <sbh:topLevel rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence/1"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/james"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/myers"/>
    <sbol:elements>tttacagctagctcagtcctaggtattatgctagc</sbol:elements>
    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
  </sbol:Sequence>
  <prov:Activity rdf:about="https://synbiohub.org/public/igem/igem2sbol/1">
    <sbol:persistentIdentity rdf:resource="https://synbiohub.org/public/igem/igem2sbol"/>
    <sbol:displayId>igem2sbol</sbol:displayId>
    <sbol:version>1</sbol:version>
    <dcterms:title>iGEM to SBOL conversion</dcterms:title>
    <dcterms:description>Conversion of the iGEM parts registry to SBOL2.1</dcterms:description>
    <sbh:topLevel rdf:resource="https://synbiohub.org/public/igem/igem2sbol/1"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/james"/>
    <sbh:ownedBy rdf:resource="https://synbiohub.org/user/myers"/>
    <dc:creator>Chris J. Myers</dc:creator>
    <dc:creator>James Alastair McLaughlin</dc:creator>
    <prov:endedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2017-03-06T15:00:00.000Z</prov:endedAtTime>
  </prov:Activity>
</rdf:RDF>
https://synbiohub.org/public/igem/BBa_J23101_sequence: Too few values for property namespace. Expected 1, found 0
https://synbiohub.org/public/igem/BBa_J23101: Too few values for property namespace. Expected 1, found 0
https://synbiohub.org/public/igem/BBa_J23101_sequence: Less than 1 values on <https://synbiohub.org/public/igem/BBa_J23101_sequence>->:hasNamespace
https://synbiohub.org/public/igem/igem2sbol/1: Value does not have class :Identified
https://synbiohub.org/public/igem/BBa_J23101: Less than 1 values on <https://synbiohub.org/public/igem/BBa_J23101>->:hasNamespace
https://synbiohub.org/public/igem/BBa_J23101: Less than 1 values on <https://synbiohub.org/public/igem/BBa_J23101>->:hasNamespace
https://synbiohub.org/public/igem/BBa_J23101_sequence: Less than 1 values on <https://synbiohub.org/public/igem/BBa_J23101_sequence>->:hasNamespace
https://synbiohub.org/public/igem/BBa_J23101_sequence sbol3-10505: Sequence encoding is not in the recommended set

SBOL 3->2: access is not set on ComponentInstance objects

SBOL3 does not have a public/private access distinction, so all SBOL3 SubComponent objects that become SBOL2 Component or FunctionalComponent objects need to have their access set to http://sbols.org/v2#public. This is not currently happening.

While correcting this, it is likely also a good idea to check if the 2->3 conversion is building SBOL3 Interface objects properly.

Node package

Would it be possible to deploy a node package?

I attempted to configure and build my own webpack, but so far have not been successful in transpiling a bundle (using ts-loader).

Problems trying to test

I cloned the project and run the following steps:

npm i
npm test

and this is the result

> [email protected] test
> bash test.sh

๐Ÿ“ Summary
๐Ÿ“Š Statistics
       0 succeeded
       0 failed
       0 succeeded but were different

What other steps do I need to do to run the tests?

SBOL 3->2 conversion loses Activities

When I convert from SBOL3 to SBOL2, I lose Activities.

Example: SBOL3:


<https://synbiohub.org/public/igem/BBa_J23101> <http://purl.org/dc/elements/1.1/creator> "John Anderson" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://purl.org/dc/terms/created> "2006-08-03T11:00:00Z" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://purl.org/dc/terms/modified> "2015-08-31T04:08:40Z" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#description> "constitutive promoter family member" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#displayId> "BBa_J23101" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#hasNamespace> <https://synbiohub.org> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#hasSequence> <https://synbiohub.org/public/igem/BBa_J23101_sequence> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#name> "BBa_J23101" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#role> <http://identifiers.org/so/SO:0000167> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#role> <http://wiki.synbiohub.org/wiki/Terms/igem#partType/Regulatory> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sbols.org/v3#type> <http://www.biopax.org/release/biopax-level3.owl#DnaRegion> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sboltools.org/backport#sbol2type> <http://sbols.org/v2#ComponentDefinition> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://sboltools.org/backport#sbol2version> "1" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#discontinued> "false" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#dominant> "true" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#experience> <http://wiki.synbiohub.org/wiki/Terms/igem#experience/Works> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#group_u_list> "_52_" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#m_user_id> "0" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#owner_id> "483" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#owning_group_id> "95" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#partStatus> "Released HQ 2013" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#sampleStatus> "In stock" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/igem#status> <http://wiki.synbiohub.org/wiki/Terms/igem#status/Available> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#bookmark> "true" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#mutableDescription> "later" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#mutableNotes> "N/A" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#mutableProvenance> "later" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/james> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/myers> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#star> "true" .
<https://synbiohub.org/public/igem/BBa_J23101> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#topLevel> <https://synbiohub.org/public/igem/BBa_J23101> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://sbols.org/v3#Component> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://www.w3.org/ns/prov#wasDerivedFrom> <http://parts.igem.org/Part:BBa_J23101> .
<https://synbiohub.org/public/igem/BBa_J23101> <http://www.w3.org/ns/prov#wasGeneratedBy> <https://synbiohub.org/public/igem/igem2sbol> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://sbols.org/v3#displayId> "BBa_J23101_sequence" .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://sbols.org/v3#elements> "tttacagctagctcagtcctaggtattatgctagc" .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://sbols.org/v3#encoding> <https://identifiers.org/edam:format_1207> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://sbols.org/v3#hasNamespace> <https://synbiohub.org> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://sboltools.org/backport#sbol2version> "1" .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/james> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/myers> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#topLevel> <https://synbiohub.org/public/igem/BBa_J23101_sequence> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://sbols.org/v3#Sequence> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://www.w3.org/ns/prov#wasDerivedFrom> <http://parts.igem.org/Part:BBa_J23101> .
<https://synbiohub.org/public/igem/BBa_J23101_sequence> <http://www.w3.org/ns/prov#wasGeneratedBy> <https://synbiohub.org/public/igem/igem2sbol> .
<https://synbiohub.org/public/igem/igem2sbol> <http://purl.org/dc/elements/1.1/creator> "Chris J. Myers" .
<https://synbiohub.org/public/igem/igem2sbol> <http://purl.org/dc/elements/1.1/creator> "James Alastair McLaughlin" .
<https://synbiohub.org/public/igem/igem2sbol> <http://purl.org/dc/terms/description> "Conversion of the iGEM parts registry to SBOL2.1" .
<https://synbiohub.org/public/igem/igem2sbol> <http://purl.org/dc/terms/title> "iGEM to SBOL conversion" .
<https://synbiohub.org/public/igem/igem2sbol> <http://sbols.org/v2#persistentIdentity> <https://synbiohub.org/public/igem/igem2sbol> .
<https://synbiohub.org/public/igem/igem2sbol> <http://sbols.org/v3#displayId> "igem2sbol" .
<https://synbiohub.org/public/igem/igem2sbol> <http://sbols.org/v3#hasNamespace> <https://synbiohub.org> .
<https://synbiohub.org/public/igem/igem2sbol> <http://sboltools.org/backport#sbol2version> "1" .
<https://synbiohub.org/public/igem/igem2sbol> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/james> .
<https://synbiohub.org/public/igem/igem2sbol> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#ownedBy> <https://synbiohub.org/user/myers> .
<https://synbiohub.org/public/igem/igem2sbol> <http://wiki.synbiohub.org/wiki/Terms/synbiohub#topLevel> <https://synbiohub.org/public/igem/igem2sbol> .
<https://synbiohub.org/public/igem/igem2sbol> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://sbols.org/v3#TopLevel> .
<https://synbiohub.org/public/igem/igem2sbol> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Activity> .
<https://synbiohub.org/public/igem/igem2sbol> <http://www.w3.org/ns/prov#endedAtTime> "2017-03-06T15:00:00+00:00" .

SBOL2 output:

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:backport="http://sboltools.org/backport#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:ns0="http://wiki.synbiohub.org/wiki/Terms/synbiohub#" xmlns:ns1="http://wiki.synbiohub.org/wiki/Terms/igem#" xmlns:ns2="http://purl.org/dc/elements/1.1/" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sbol="http://sbols.org/v2#">
  <sbol:Sequence rdf:about="https://synbiohub.org/public/igem/BBa_J23101_sequence">
    <backport:sbol3namespace rdf:resource="https://synbiohub.org" />
    <ns0:ownedBy rdf:resource="https://synbiohub.org/user/james" />
    <ns0:ownedBy rdf:resource="https://synbiohub.org/user/myers" />
    <prov:wasGeneratedBy rdf:resource="https://synbiohub.org/public/igem/igem2sbol" />
    <ns0:topLevel rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence" />
    <prov:wasDerivedFrom rdf:resource="http://parts.igem.org/Part:BBa_J23101" />
    <sbol:version>1</sbol:version>
    <sbol:displayId>BBa_J23101_sequence</sbol:displayId>
    <sbol:persistentIdentity rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence" />
    <sbol:elements>tttacagctagctcagtcctaggtattatgctagc</sbol:elements>
    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html" />
  </sbol:Sequence>
  <sbol:ComponentDefinition rdf:about="https://synbiohub.org/public/igem/BBa_J23101">
    <backport:sbol3namespace rdf:resource="https://synbiohub.org" />
    <ns1:experience rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#experience/Works" />
    <ns0:bookmark>true</ns0:bookmark>
    <ns2:creator>John Anderson</ns2:creator>
    <ns1:owning_group_id>95</ns1:owning_group_id>
    <ns1:m_user_id>0</ns1:m_user_id>
    <dcterms:created>2006-08-03T11:00:00Z</dcterms:created>
    <sbol:version>1</sbol:version>
    <ns0:mutableDescription>later</ns0:mutableDescription>
    <dcterms:title>BBa_J23101</dcterms:title>
    <ns1:sampleStatus>In stock</ns1:sampleStatus>
    <ns1:group_u_list>_52_</ns1:group_u_list>
    <ns0:ownedBy rdf:resource="https://synbiohub.org/user/james" />
    <ns0:ownedBy rdf:resource="https://synbiohub.org/user/myers" />
    <ns1:status rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#status/Available" />
    <dcterms:description>constitutive promoter family member</dcterms:description>
    <ns1:dominant>true</ns1:dominant>
    <ns1:owner_id>483</ns1:owner_id>
    <ns0:mutableNotes>N/A</ns0:mutableNotes>
    <prov:wasGeneratedBy rdf:resource="https://synbiohub.org/public/igem/igem2sbol" />
    <ns0:star>true</ns0:star>
    <ns1:partStatus>Released HQ 2013</ns1:partStatus>
    <ns0:topLevel rdf:resource="https://synbiohub.org/public/igem/BBa_J23101" />
    <ns1:discontinued>false</ns1:discontinued>
    <prov:wasDerivedFrom rdf:resource="http://parts.igem.org/Part:BBa_J23101" />
    <ns0:mutableProvenance>later</ns0:mutableProvenance>
    <dcterms:modified>2015-08-31T04:08:40Z</dcterms:modified>
    <sbol:persistentIdentity rdf:resource="https://synbiohub.org/public/igem/BBa_J23101" />
    <sbol:displayId>BBa_J23101</sbol:displayId>
    <backport:sbol3identity rdf:resource="https://synbiohub.org/public/igem/BBa_J23101" />
    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167" />
    <sbol:role rdf:resource="http://wiki.synbiohub.org/wiki/Terms/igem#partType/Regulatory" />
    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion" />
    <sbol:sequence rdf:resource="https://synbiohub.org/public/igem/BBa_J23101_sequence" />
  </sbol:ComponentDefinition>
</rdf:RDF>

SBOL 3->2 needs to remap sequence encodings and component types

My current workaround in python:

    # remap sequence encodings:
    encoding_remapping = {
        sbol3.IUPAC_DNA_ENCODING: sbol2.SBOL_ENCODING_IUPAC,
        sbol3.IUPAC_PROTEIN_ENCODING: sbol2.SBOL_ENCODING_IUPAC_PROTEIN,
        sbol3.SMILES_ENCODING: sbol3.SMILES_ENCODING
    }
    for s in (o for o in doc3.objects if isinstance(o, sbol3.Sequence)):
        if s.encoding in encoding_remapping:
            s.encoding = encoding_remapping[s.encoding]
    # remap component types:
    type_remapping = {
        sbol3.SBO_DNA: sbol2.BIOPAX_DNA,
        sbol3.SBO_RNA: sbol2.BIOPAX_RNA,
        sbol3.SBO_PROTEIN: sbol2.BIOPAX_PROTEIN,
        sbol3.SBO_SIMPLE_CHEMICAL: sbol2.BIOPAX_SMALL_MOLECULE,
        sbol3.SBO_NON_COVALENT_COMPLEX: sbol2.BIOPAX_COMPLEX
    }
    for c in (o for o in doc3.objects if isinstance(o, sbol3.Component)):
        c.types = [(type_remapping[t] if t in type_remapping else t) for t in c.types]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.