public MmtfStructure create(ObjectTree tree) { MmtfStructure s = new MmtfStructure(); s.setxCoordList(tree.getByteArray("xCoordList")); s.setyCoordList(tree.getByteArray("yCoordList")); s.setzCoordList(tree.getByteArray("zCoordList")); s.setbFactorList(tree.getByteArray("bFactorList")); s.setOccupancyList(tree.getByteArray("occupancyList")); s.setNumAtoms(tree.getInt("numAtoms")); s.setAtomIdList(tree.getByteArray("atomIdList")); s.setAltLocList(tree.getByteArray("altLocList")); s.setInsCodeList(tree.getByteArray("insCodeList")); s.setGroupIdList(tree.getByteArray("groupIdList")); s.setGroupList(createGroupList(tree.getObjectArray("groupList"))); s.setSequenceIndexList(tree.getByteArray("sequenceIndexList")); s.setGroupTypeList(tree.getByteArray("groupTypeList")); s.setChainNameList(tree.getByteArray("chainNameList")); s.setChainIdList(tree.getByteArray("chainIdList")); s.setNumBonds(tree.getInt("numBonds")); s.setBondAtomList(tree.getByteArray("bondAtomList")); s.setBondOrderList(tree.getByteArray("bondOrderList")); s.setSecStructList(tree.getByteArray("secStructList")); s.setChainsPerModel(tree.getIntArray("chainsPerModel")); s.setGroupsPerChain(tree.getIntArray("groupsPerChain")); s.setSpaceGroup(tree.getString("spaceGroup")); s.setUnitCell(tree.getFloatArray("unitCell")); s.setBioAssemblyList(createBioAssemblyList(tree.getObjectArray("bioAssemblyList"))); s.setMmtfVersion(tree.getString("mmtfVersion")); s.setMmtfProducer(tree.getString("mmtfProducer")); s.setEntityList(createEntityList(tree.getObjectArray("entityList"))); s.setStructureId(tree.getString("structureId"));
cartnX = FloatCodecs.decodeArr(inputData.getxCoordList()); cartnY = FloatCodecs.decodeArr(inputData.getyCoordList()); cartnZ = FloatCodecs.decodeArr(inputData.getzCoordList()); bFactor = FloatCodecs.decodeArr(inputData.getbFactorList()); occupancy = FloatCodecs.decodeArr(inputData.getOccupancyList()); atomId = IntCodecs.decodeArr(inputData.getAtomIdList()); altId = CharCodecs.decodeArr(inputData.getAltLocList()); insertionCodeList = CharCodecs.decodeArr(inputData.getInsCodeList()); groupNum = IntCodecs.decodeArr(inputData.getGroupIdList()); groupMap = inputData.getGroupList(); seqResGroupList = IntCodecs.decodeArr(inputData.getSequenceIndexList()); groupList = IntCodecs.decodeArr(inputData.getGroupTypeList()); publicChainIds = StringCodecs.decodeArr(inputData.getChainNameList()); chainList = StringCodecs.decodeArr(inputData.getChainIdList()); interGroupBondIndices = IntCodecs.decodeArr(inputData.getBondAtomList()); interGroupBondOrders = IntCodecs.decodeArr(inputData.getBondOrderList()); secStructInfo = IntCodecs.decodeArr(inputData.getSecStructList()); chainsPerModel = inputData.getChainsPerModel(); groupsPerChain = inputData.getGroupsPerChain(); spaceGroup = inputData.getSpaceGroup(); unitCell = inputData.getUnitCell();
groupList = ArrayConverters.convertFourByteToIntegers(inputData.getGroupTypeList()); ArrayConverters.convertTwoByteToIntegers(inputData.getxCoordSmall()), ArrayConverters.convertFourByteToIntegers(inputData.getxCoordBig()))), MmtfStructure.COORD_DIVIDER); cartnY = ArrayConverters.convertIntsToFloats( ArrayDecoders.deltaDecode( ArrayConverters.combineIntegers( ArrayConverters.convertTwoByteToIntegers(inputData.getyCoordSmall()), ArrayConverters.convertFourByteToIntegers(inputData.getyCoordBig()))), MmtfStructure.COORD_DIVIDER); cartnZ = ArrayConverters.convertIntsToFloats( ArrayDecoders.deltaDecode( ArrayConverters.combineIntegers( ArrayConverters.convertTwoByteToIntegers(inputData.getzCoordSmall()), ArrayConverters.convertFourByteToIntegers(inputData.getzCoordBig()))), MmtfStructure.COORD_DIVIDER); bFactor = ArrayConverters.convertIntsToFloats( ArrayDecoders.deltaDecode( ArrayConverters.combineIntegers( ArrayConverters.convertTwoByteToIntegers(inputData.getbFactorSmall()), ArrayConverters.convertFourByteToIntegers(inputData.getbFactorBig()))), MmtfStructure.OCCUPANCY_BFACTOR_DIVIDER); ArrayConverters.convertFourByteToIntegers(inputData.getOccupancyList())), MmtfStructure.OCCUPANCY_BFACTOR_DIVIDER); ArrayConverters.convertFourByteToIntegers(inputData.getAtomIdList())));
private void encode(StructureDataInterface structureDataInterface) { mmtfBean = new MmtfStructure(); mmtfBean.setxCoordList(EncoderUtils.encodeByteArr(FloatCodecs.INT_DELTA_RECURSIVE,structureDataInterface.getxCoords(),coordDivider)); mmtfBean.setyCoordList(EncoderUtils.encodeByteArr(FloatCodecs.INT_DELTA_RECURSIVE,structureDataInterface.getyCoords(),coordDivider)); mmtfBean.setzCoordList(EncoderUtils.encodeByteArr(FloatCodecs.INT_DELTA_RECURSIVE,structureDataInterface.getzCoords(),coordDivider)); mmtfBean.setbFactorList(EncoderUtils.encodeByteArr(FloatCodecs.INT_DELTA_RECURSIVE,structureDataInterface.getbFactors(),bfactorOccDivider)); mmtfBean.setOccupancyList(EncoderUtils.encodeByteArr(FloatCodecs.INT_RUNLENGTH,structureDataInterface.getOccupancies(),bfactorOccDivider)); mmtfBean.setAtomIdList(EncoderUtils.encodeByteArr(IntCodecs.RUN_LENGTH_DELTA,structureDataInterface.getAtomIds(),EncoderUtils.NULL_PARAM)); mmtfBean.setAltLocList(EncoderUtils.encodeByteArr(CharCodecs.RUN_LENGTH,structureDataInterface.getAltLocIds(),EncoderUtils.NULL_PARAM)); mmtfBean.setInsCodeList(EncoderUtils.encodeByteArr(CharCodecs.RUN_LENGTH,structureDataInterface.getInsCodes(),EncoderUtils.NULL_PARAM)); mmtfBean.setGroupIdList(EncoderUtils.encodeByteArr(IntCodecs.RUN_LENGTH_DELTA,structureDataInterface.getGroupIds(),EncoderUtils.NULL_PARAM)); mmtfBean.setSequenceIndexList(EncoderUtils.encodeByteArr(IntCodecs.RUN_LENGTH_DELTA,structureDataInterface.getGroupSequenceIndices(),EncoderUtils.NULL_PARAM)); mmtfBean.setChainNameList(EncoderUtils.encodeByteArr(StringCodecs.ENCOODE_CHAINS,structureDataInterface.getChainNames(),MmtfStructure.CHAIN_LENGTH)); mmtfBean.setChainIdList(EncoderUtils.encodeByteArr(StringCodecs.ENCOODE_CHAINS,structureDataInterface.getChainIds(),MmtfStructure.CHAIN_LENGTH)); mmtfBean.setBondAtomList(EncoderUtils.encodeByteArr(IntCodecs.CONVERT_4_BYTE,structureDataInterface.getInterGroupBondIndices(),EncoderUtils.NULL_PARAM)); mmtfBean.setGroupTypeList(EncoderUtils.encodeByteArr(IntCodecs.CONVERT_4_BYTE,structureDataInterface.getGroupTypeIndices(),EncoderUtils.NULL_PARAM)); mmtfBean.setSecStructList(EncoderUtils.encodeByteArr(IntCodecs.CONVERT_BYTE,structureDataInterface.getSecStructList(),EncoderUtils.NULL_PARAM)); mmtfBean.setBondOrderList(EncoderUtils.encodeByteArr(IntCodecs.CONVERT_BYTE,structureDataInterface.getInterGroupBondOrders(),EncoderUtils.NULL_PARAM)); mmtfBean.setGroupList(EncoderUtils.generateGroupList(structureDataInterface));