Search in sources :

Example 1 with NamespaceBinding

use of org.sbolstandard.core.datatree.NamespaceBinding in project libSBOLj by SynBioDex.

the class Provenance_StrainDerivation method main.

public static void main(String[] args) throws Exception {
    NamespaceBinding myAppNs = NamespaceBinding("http://myapp.com/", "myapp");
    SBOLDocument document = new SBOLDocument();
    document.addNamespace(URI.create(myAppNs.getNamespaceURI()), myAppNs.getPrefix());
    document.setDefaultURIprefix(myAppNs.getNamespaceURI());
    ComponentDefinition b168 = getCds(document, "bsubtilis168", "Bacillus subtilis 168");
    ComponentDefinition b3610 = getCds(document, "bsubtilisncimb3610", "Bacillus subtilis NCIMB 3610");
    b168.addWasDerivedFrom(b3610.getIdentity());
    // Create the agent definition to represent X-ray
    Agent agent = document.createAgent("x_ray");
    agent.setName("X-ray");
    // Create the generic top level entity for the X-ray mutagenesis activity
    Activity activity = document.createActivity("xraymutagenesis");
    activity.setName("X-ray mutagenesis");
    // Create the qualifiedUsage annotation to describe the use of the parent strain
    activity.createUsage("usage", b3610.getIdentity()).addRole(URI.create("http://sbols.org/v2#source"));
    // Create the qualifiedAssociation annotation to describe the use of the agent used in the activity
    activity.createAssociation("association", agent.getIdentity()).addRole(myAppNs.namespacedUri("mutagen"));
    b168.addWasGeneratedBy(activity.getIdentity());
    SBOLWriter.write(document, System.out);
}
Also used : Agent(org.sbolstandard.core2.Agent) SBOLDocument(org.sbolstandard.core2.SBOLDocument) Activity(org.sbolstandard.core2.Activity) NamespaceBinding(org.sbolstandard.core.datatree.Datatree.NamespaceBinding) NamespaceBinding(org.sbolstandard.core.datatree.NamespaceBinding) ComponentDefinition(org.sbolstandard.core2.ComponentDefinition)

Example 2 with NamespaceBinding

use of org.sbolstandard.core.datatree.NamespaceBinding in project libSBOLj by SynBioDex.

the class Provenance_CodonOptimization method main.

public static void main(String[] args) throws Exception {
    NamespaceBinding myAppNs = NamespaceBinding("http://myapp.com/", "myapp");
    SBOLDocument document = new SBOLDocument();
    document.addNamespace(URI.create(myAppNs.getNamespaceURI()), myAppNs.getPrefix());
    document.setDefaultURIprefix(myAppNs.getNamespaceURI());
    ComponentDefinition optimizedCds = getCds(document, "codon_optimized", "Codon optimised CDS");
    ComponentDefinition sourceCds = getCds(document, "non_codon_optimized", "Non Codon optimised CDS");
    optimizedCds.addWasDerivedFrom(sourceCds.getIdentity());
    // Create the agent definition for the codon optimization software
    Agent agent = document.createAgent("codon_optimization_software");
    agent.setName("Codon Optimization Software");
    // Create the generic top level entity for the codon optimization activity
    Activity activity = document.createActivity("codon_optimization_activity");
    activity.setName("Codon Optimization Activity");
    // Create the qualifiedUsage annotation to describe the use of the non codon optimized CDS component
    activity.createUsage("usage", sourceCds.getIdentity()).addRole(URI.create("http://sbols.org/v2#source"));
    // Create the qualifiedAssociation annotation to describe the use of the software agent used in the activity
    activity.createAssociation("association", agent.getIdentity()).addRole(myAppNs.namespacedUri("codonoptimiser"));
    optimizedCds.addWasGeneratedBy(activity.getIdentity());
    SBOLWriter.write(document, System.out);
}
Also used : Agent(org.sbolstandard.core2.Agent) SBOLDocument(org.sbolstandard.core2.SBOLDocument) Activity(org.sbolstandard.core2.Activity) NamespaceBinding(org.sbolstandard.core.datatree.Datatree.NamespaceBinding) NamespaceBinding(org.sbolstandard.core.datatree.NamespaceBinding) ComponentDefinition(org.sbolstandard.core2.ComponentDefinition)

Example 3 with NamespaceBinding

use of org.sbolstandard.core.datatree.NamespaceBinding in project libSBOLj by SynBioDex.

the class SBOLReader method read.

/**
 * @param SBOLDoc
 * @param in
 * @param fileType
 * @throws SBOLValidationException if either of the following conditions is satisfied:
 * <ul>
 * <li>If {@link #keepGoing} was set to {@code false}, and an SBOL validation rule violation occurred in
 * any of the following methods:
 * 	<ul>
 * 		<li>{@link FASTA#read(SBOLDocument, String, String, String, URI)},</li>
 * 		<li>{@link GenBank#read(SBOLDocument, String, String)},</li>
 * 		<li>{@link #readJSON(Reader)}, </li>
 * 		<li>{@link #readRDF(Reader)}, </li>
 * 		<li>{@link #readTurtle(Reader)}, </li>
 * 		<li>{@link #getSBOLVersion(DocumentRoot)}, or</li>
 * 		<li>{@link #readV1(SBOLDocument, DocumentRoot)}; or</li>
 * 	</ul></li>
 * <li>an SBOL validation rule violation occurred in {@link #readTopLevelDocs(SBOLDocument, DocumentRoot)}.</li>
 * </ul>
 * @throws IOException see {@link IOException}
 * @throws SBOLConversionException
 */
static void read(SBOLDocument SBOLDoc, InputStream in, String fileType) throws SBOLValidationException, IOException, SBOLConversionException {
    compliant = SBOLDoc.isCompliant();
    Scanner scanner = new Scanner(in, "UTF-8");
    String inputStreamString;
    try {
        inputStreamString = scanner.useDelimiter("\\A").next();
    } catch (NoSuchElementException e) {
        scanner.close();
        throw new SBOLConversionException("File is empty.");
    }
    clearErrors();
    DocumentRoot<QName> document = null;
    try {
        if (SBOLReader.isFastaString(inputStreamString)) {
            SBOLDoc.setCreateDefaults(true);
            SBOLDoc.setCompliant(true);
            if (URIPrefix == null) {
                scanner.close();
                throw new SBOLConversionException("No URI prefix has been provided.");
            }
            SBOLDoc.setDefaultURIprefix(URIPrefix);
            FASTA.read(SBOLDoc, inputStreamString, URIPrefix, version, defaultSequenceEncoding);
            scanner.close();
            return;
        } else if (SBOLReader.isGenBankString(inputStreamString)) {
            SBOLDoc.setCreateDefaults(true);
            SBOLDoc.setCompliant(true);
            if (URIPrefix == null) {
                scanner.close();
                throw new SBOLConversionException("No URI prefix has been provided.");
            }
            SBOLDoc.setDefaultURIprefix(URIPrefix);
            GenBank.read(SBOLDoc, inputStreamString, URIPrefix, version);
            scanner.close();
            return;
        } else if (fileType.equals(SBOLDocument.JSON)) {
            document = readJSON(new StringReader(inputStreamString));
        } else if (fileType.equals(SBOLDocument.TURTLE)) {
            document = readTurtle(new StringReader(inputStreamString));
        } else {
            document = readRDF(new StringReader(inputStreamString));
        }
        if (getSBOLVersion(document).equals(SBOLVERSION1)) {
            scanner.close();
            readV1(SBOLDoc, document);
            return;
        }
    } catch (SBOLValidationException e) {
        if (keepGoing) {
            errors.add(e.getMessage());
            return;
        } else {
            throw new SBOLValidationException(e);
        }
    }
    for (NamespaceBinding n : document.getNamespaceBindings()) {
        if (SBOLDoc.getNamespace(URI.create(n.getNamespaceURI())) == null) {
            if (n.getPrefix() == null) {
                SBOLDoc.addNamespaceBinding(NamespaceBinding(n.getNamespaceURI(), ""));
            } else {
                SBOLDoc.addNamespaceBinding(NamespaceBinding(n.getNamespaceURI(), n.getPrefix()));
            }
        }
    }
    readTopLevelDocs(SBOLDoc, document);
    scanner.close();
    SBOLValidate.clearErrors();
    SBOLValidate.validateCompliance(SBOLDoc);
    if (SBOLValidate.getNumErrors() > 0) {
        SBOLDoc.setCompliant(false);
    }
}
Also used : Scanner(java.util.Scanner) StringifyQName(org.sbolstandard.core.io.json.StringifyQName) QName(javax.xml.namespace.QName) StringReader(java.io.StringReader) NamespaceBinding(org.sbolstandard.core.datatree.Datatree.NamespaceBinding) NamespaceBinding(org.sbolstandard.core.datatree.NamespaceBinding) NoSuchElementException(java.util.NoSuchElementException)

Example 4 with NamespaceBinding

use of org.sbolstandard.core.datatree.NamespaceBinding in project libSBOLj by SynBioDex.

the class SBOLReader method readV1.

/**
 * @param SBOLDoc
 * @param document
 * @return
 * @throws SBOLValidationException if an SBOL validation rule violation occurred in {@link #readTopLevelDocsV1(SBOLDocument, DocumentRoot)}.
 * @throws SBOLConversionException
 */
private static SBOLDocument readV1(SBOLDocument SBOLDoc, DocumentRoot<QName> document) throws SBOLValidationException, SBOLConversionException {
    for (NamespaceBinding n : document.getNamespaceBindings()) {
        if (n.getNamespaceURI().equals(Sbol1Terms.sbol1.getNamespaceURI())) {
            SBOLDoc.addNamespaceBinding(NamespaceBinding(Sbol2Terms.sbol2.getNamespaceURI(), Sbol2Terms.sbol2.getPrefix()));
        } else {
            if (SBOLDoc.getNamespace(URI.create(n.getNamespaceURI())) == null) {
                SBOLDoc.addNamespaceBinding(NamespaceBinding(n.getNamespaceURI(), n.getPrefix()));
            }
        }
    }
    SBOLDoc.addNamespaceBinding(NamespaceBinding(Sbol2Terms.prov.getNamespaceURI(), Sbol2Terms.prov.getPrefix()));
    readTopLevelDocsV1(SBOLDoc, document);
    SBOLValidate.clearErrors();
    SBOLValidate.validateCompliance(SBOLDoc);
    if (SBOLValidate.getNumErrors() > 0) {
        SBOLDoc.setCompliant(false);
    }
    return SBOLDoc;
}
Also used : NamespaceBinding(org.sbolstandard.core.datatree.Datatree.NamespaceBinding) NamespaceBinding(org.sbolstandard.core.datatree.NamespaceBinding)

Example 5 with NamespaceBinding

use of org.sbolstandard.core.datatree.NamespaceBinding in project libSBOLj by SynBioDex.

the class SBOLReader method getSBOLVersion.

/**
 * @param document
 * @return
 * @throws SBOLValidationException if either of the following SBOL validation rules was violated:
 * 10101, 10102.
 */
private static String getSBOLVersion(DocumentRoot<QName> document) throws SBOLValidationException {
    boolean foundRDF = false;
    boolean foundSBOL1 = false;
    boolean foundSBOL2 = false;
    for (NamespaceBinding n : document.getNamespaceBindings()) {
        if (n.getNamespaceURI().equals(Sbol1Terms.rdf.getNamespaceURI()))
            foundRDF = true;
        if (n.getNamespaceURI().equals(Sbol1Terms.sbol1.getNamespaceURI()))
            foundSBOL1 = true;
        if (n.getNamespaceURI().equals(Sbol2Terms.sbol2.getNamespaceURI()))
            foundSBOL2 = true;
    }
    if (foundSBOL2) {
        if (!foundRDF) {
            throw new SBOLValidationException("sbol-10102");
        }
        return SBOLVERSION2;
    } else if (foundSBOL1) {
        if (!foundRDF) {
            throw new SBOLValidationException("sbol-10102");
        }
        return SBOLVERSION1;
    } else {
        throw new SBOLValidationException("sbol-10101");
    }
}
Also used : NamespaceBinding(org.sbolstandard.core.datatree.Datatree.NamespaceBinding) NamespaceBinding(org.sbolstandard.core.datatree.NamespaceBinding)

Aggregations

NamespaceBinding (org.sbolstandard.core.datatree.Datatree.NamespaceBinding)5 NamespaceBinding (org.sbolstandard.core.datatree.NamespaceBinding)5 Activity (org.sbolstandard.core2.Activity)2 Agent (org.sbolstandard.core2.Agent)2 ComponentDefinition (org.sbolstandard.core2.ComponentDefinition)2 SBOLDocument (org.sbolstandard.core2.SBOLDocument)2 StringReader (java.io.StringReader)1 NoSuchElementException (java.util.NoSuchElementException)1 Scanner (java.util.Scanner)1 QName (javax.xml.namespace.QName)1 StringifyQName (org.sbolstandard.core.io.json.StringifyQName)1