code: public static Structure createArtificalStructure(AFPChain afpChain, Atom[] ca1,
  			Atom[] ca2) throws StructureException{
  
  
  		if ( afpChain.getNrEQR() < 1){
  			return AlignmentTools.getAlignedStructure(ca1, ca2);
  		}
  
  		Group[] twistedGroups = AlignmentTools.prepareGroupsForDisplay(afpChain,ca1, ca2);
  
  		List<Atom> twistedAs = new ArrayList<Atom>();
  
  		for ( Group g: twistedGroups){
  			if ( g == null )
  				continue;
  			if ( g.size() < 1)
  				continue;
  			Atom a = g.getAtom(0);
  			twistedAs.add(a);
  		}
  		Atom[] twistedAtoms = twistedAs.toArray(new Atom[twistedAs.size()]);
  
  		List<Group> hetatms  = StructureTools.getUnalignedGroups(ca1);
  		List<Group> hetatms2 = StructureTools.getUnalignedGroups(ca2);
  
  		Atom[] arr1 = DisplayAFP.getAtomArray(ca1, hetatms);
  		Atom[] arr2 = DisplayAFP.getAtomArray(twistedAtoms, hetatms2);
  
  		Structure artificial = AlignmentTools.getAlignedStructure(arr1,arr2);
  		return artificial;
  	}
docs: Create a "fake" Structure objects that contains the two sets of atoms aligned on top of each other.
  
  @param afpChain the container of the alignment
  @param ca1 atoms for protein 1
  @param ca2 atoms for protein 2
  @return a protein structure with 2 models.
  @throws StructureException