code: public static final Atom[] getRepresentativeAtomArray(Chain c) {
  		List<Atom> atoms = new ArrayList<Atom>();
  
  		for (Group g : c.getAtomGroups()) {
  
  			switch (g.getType()) {
  			case AMINOACID:
  				if (g.hasAtom(CA_ATOM_NAME)
  						&& g.getAtom(CA_ATOM_NAME).getElement() == Element.C) {
  					atoms.add(g.getAtom(CA_ATOM_NAME));
  				}
  				break;
  			case NUCLEOTIDE:
  				if (g.hasAtom(NUCLEOTIDE_REPRESENTATIVE)) {
  					atoms.add(g.getAtom(NUCLEOTIDE_REPRESENTATIVE));
  				}
  				break;
  			default:
  				// don't add
  			}
  		}
  
  		return atoms.toArray(new Atom[atoms.size()]);
  
  	}
docs: Gets a representative atom for each group that is part of the chain
  backbone. Note that modified aminoacids won't be returned as part of the
  backbone if the {@link org.biojava.nbio.structure.io.mmcif.ReducedChemCompProvider} was used to load the
  structure.
  
  For amino acids, the representative is a CA carbon. For nucleotides, the
  representative is the {@value #NUCLEOTIDE_REPRESENTATIVE}. Other group
  types will be ignored.
  
  @param c
  @return representative Atoms of the chain backbone
  @since Biojava 4.1.0