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 ; }
Create a fake Structure objects that contains the two sets of atoms aligned on top of each other .