Search in sources :

Example 11 with Extension

use of algorithms.isomorphism.chains.Extension in project Smiles2Monomers by yoann-dufresne.

the class FamilyChainIO method objectFromJson.

@Override
protected FamilyChainsDB objectFromJson(JSONObject jso) {
    // FC creation
    String famName = (String) jso.get("family");
    if (famName.contains("€"))
        famName = famName.split("€")[0];
    Family fam = this.families.getObject(famName);
    FamilyChainsDB fc = new FamilyChainsDB(fam);
    // Roots
    JSONObject jsonRoots = (JSONObject) jso.get("roots");
    for (Object objIdx : jsonRoots.keySet()) {
        String idx = (String) objIdx;
        fc.addRootChain(this.residues.getObject(idx), new Chain((String) jsonRoots.get(objIdx)));
    }
    // Adds
    JSONObject jsonAdds = (JSONObject) jso.get("extensions");
    for (Object objIdx : jsonAdds.keySet()) {
        String idx = (String) objIdx;
        Residue current = this.residues.getObject(idx);
        JSONArray jsonAddsList = (JSONArray) jsonAdds.get(objIdx);
        for (Object obj : jsonAddsList) {
            JSONObject add = (JSONObject) obj;
            Residue from = this.residues.getObject((String) add.get("from"));
            ChainAdd ca = null;
            // TODO : Change it for better usage of genericity.
            switch((String) add.get("type")) {
                case "hydrogen":
                    ca = new HydrogenAdd(from, ((Number) add.get("idx")).intValue(), ((Number) add.get("num")).intValue());
                    break;
                case "extension":
                    ca = new BondAdd(from, new Extension((String) add.get("ext")), ((Number) add.get("idx1")).intValue(), ((Number) add.get("idx2")).intValue());
                    break;
                default:
                    break;
            }
            fc.addAnAdd(current, ca);
        }
    }
    return fc;
}
Also used : Chain(algorithms.isomorphism.chains.Chain) HydrogenAdd(algorithms.isomorphism.chains.HydrogenAdd) JSONArray(org.json.simple.JSONArray) Extension(algorithms.isomorphism.chains.Extension) FamilyChainsDB(algorithms.isomorphism.chains.FamilyChainsDB) JSONObject(org.json.simple.JSONObject) Residue(model.Residue) ChainAdd(algorithms.isomorphism.chains.ChainAdd) Family(model.Family) JSONObject(org.json.simple.JSONObject) BondAdd(algorithms.isomorphism.chains.BondAdd)

Aggregations

Extension (algorithms.isomorphism.chains.Extension)11 BondMapping (algorithms.isomorphism.chains.Extension.BondMapping)8 Test (org.junit.Test)8 Chain (algorithms.isomorphism.chains.Chain)3 Before (org.junit.Before)2 Bond (org.openscience.cdk.Bond)2 IAtom (org.openscience.cdk.interfaces.IAtom)2 Atom (org.openscience.cdk.silent.Atom)2 BondAdd (algorithms.isomorphism.chains.BondAdd)1 ChainAdd (algorithms.isomorphism.chains.ChainAdd)1 FamilyChainsDB (algorithms.isomorphism.chains.FamilyChainsDB)1 HydrogenAdd (algorithms.isomorphism.chains.HydrogenAdd)1 MappedChain (algorithms.isomorphism.chains.MappedChain)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Family (model.Family)1 Monomer (model.Monomer)1 Polymer (model.Polymer)1 Residue (model.Residue)1 JSONArray (org.json.simple.JSONArray)1