code: public static AFPChain fastaToAfpChain(Map<String, ProteinSequence> sequences, Structure structure1,
  			Structure structure2) throws StructureException {
  
  		if (sequences.size() != 2) {
  			throw new IllegalArgumentException("There must be exactly 2 sequences, but there were " + sequences.size());
  		}
  
  		if (structure1 == null || structure2 == null) {
  			throw new IllegalArgumentException("A structure is null");
  		}
  
  		List<ProteinSequence> seqs = new ArrayList<ProteinSequence>();
  		List<String> names = new ArrayList<String>(2);
  		for (Map.Entry<String, ProteinSequence> entry : sequences.entrySet()) {
  			seqs.add(entry.getValue());
  			names.add(entry.getKey());
  		}
  
  		return fastaToAfpChain(seqs.get(0), seqs.get(1), structure1, structure2);
  	}
docs: Uses two sequences each with a corresponding structure to create an AFPChain corresponding to the alignment. Provided only for convenience since FastaReaders return such maps.
  
  @param sequences
  A Map containing exactly two entries from sequence names as Strings to gapped ProteinSequences; the name is ignored
  @see #fastaToAfpChain(ProteinSequence, ProteinSequence, Structure, Structure)
  @throws StructureException