public static Structure getReducedStructure(Structure orig){
		Structure s = new StructureImpl();
		s.setPDBHeader(orig.getPDBHeader());
		for ( Chain c : orig.getChains()){

			Chain c1 = new ChainImpl();
			c1.setId(c.getId());
			c1.setName(c.getName());
			c1.setEntityInfo(c.getEntityInfo());
			s.addChain(c1);

			for (Group g : c.getAtomGroups()){

				Atom a = null;
				switch(g.getType()) {
				case AMINOACID:
					a = g.getAtom(StructureTools.CA_ATOM_NAME);
					break;
				case NUCLEOTIDE:
					a = g.getAtom(StructureTools.NUCLEOTIDE_REPRESENTATIVE);
					break;
				default:
					//omit group
				}
				if ( a != null){

					Group g1 = (Group)g.clone();
					g1.clearAtoms();
					g1.addAtom(a);
					c1.addGroup(g1);

				}

			}

		}
		return s;
	}
public static Structure getReducedStructure ( Structure orig ) { Structure s = new StructureImpl ( ) ; s . setPDBHeader ( orig . getPDBHeader ( ) ) ; for ( Chain c : orig . getChains ( ) ) { Chain c1 = new ChainImpl ( ) ; c1 . setId ( c . getId ( ) ) ; c1 . setName ( c . getName ( ) ) ; c1 . setEntityInfo ( c . getEntityInfo ( ) ) ; s . addChain ( c1 ) ; for ( Group g : c . getAtomGroups ( ) ) { Atom a = null ; switch ( g . getType ( ) ) { case AMINOACID : a = g . getAtom ( StructureTools . CA_ATOM_NAME ) ; break ; case NUCLEOTIDE : a = g . getAtom ( StructureTools . NUCLEOTIDE_REPRESENTATIVE ) ; break ; default : } if ( a != null ) { Group g1 = ( Group ) g . clone ( ) ; g1 . clearAtoms ( ) ; g1 . addAtom ( a ) ; c1 . addGroup ( g1 ) ; } } } return s ; }
Reduce a structure to a single-atom representation (e.g. CA atoms)

@param orig
@return
@since Biojava 4.1.0