OBJEKT AMBER_Combine(OBJEKT objProt, OBJEKT objLig) { // version of function oCmd_combine UNIT uCombined, uCurrent; LOOP lTemp; RESIDUE rRes = NULL; OBJEKT oObj; /* add only one uCurrent unit (Ligand) to uCombined unit (Protein) */ uCombined = (UNIT)objProt; oObj = objLig; if ( iObjectType( oObj ) != UNITid ) { printf( "%s: is type %s\n", "Ligand", sObjectType(oObj) ); } uCurrent = (UNIT)objLig; printf( " Ligand: %s\n", sContainerName((CONTAINER) uCurrent) ); if ( uCombined == NULL ) { printf( "--- no Protein unit \n" ); } else { printf( "Joining Protein and Ligand \n" ); UnitJoin( uCombined, uCurrent ); } if ( uCombined == NULL ) { printf( "No UNITS, so no combine performed\n" ); return(NULL); } /* Define PDB sequence */ lTemp = lLoop( (OBJEKT)uCombined, RESIDUES ); while ( rRes == (RESIDUE)oNext(&lTemp) ) { ResidueSetPdbSequence( rRes, iContainerSequence((CONTAINER) rRes) ); } return((OBJEKT)uCombined); }
OBJEKT AMBER_Combine(OBJEKT objProt, OBJEKT objLig) { UNIT uCombined, uCurrent; LOOP lTemp; RESIDUE rRes = NULL; OBJEKT oObj; uCombined = (UNIT)objProt; oObj = objLig; if ( iObjectType( oObj ) != UNITid ) { PrintInfo(( "%s: is type %s", "Ligand", sObjectType(oObj) )); } uCurrent = (UNIT)oCopy(oObj ); PrintInfo(( " Sequence: %s", sContainerName((CONTAINER) uCurrent) )); if ( uCombined == NULL ) { printf( "Copying the first UNIT\n" ); uCombined = uCurrent; } else { printf( "Copied a subsequent UNIT\n" ); printf( "Joining two UNITS \n" ); UnitJoin( uCombined, uCurrent ); } if ( uCombined == NULL ) { printf( "No UNITS, so no combine performed\n" ); return(NULL); } lTemp = lLoop( (OBJEKT)uCombined, RESIDUES ); while ( rRes == (RESIDUE)oNext(&lTemp) ) { ResidueSetPdbSequence( rRes, iContainerSequence((CONTAINER) rRes) ); } return((OBJEKT)uCombined); }
/// \brief get the metaclass of the object. virtual const zn::ObjectType & objectType() const { return sObjectType(); }