code: static <S extends Sequence<C>, C extends Compound> ProfilePair<S, C> getProfileProfileAlignment(
  			Profile<S, C> profile1, Profile<S, C> profile2, ProfileProfileAlignerType type, GapPenalty gapPenalty,
  			SubstitutionMatrix<C> subMatrix) {
  		return getProfileProfileAligner(profile1, profile2, type, gapPenalty, subMatrix).getPair();
  	}
docs: Factory method which computes a profile alignment for the given {@link Profile} pair.
  
  @param <S> each {@link Sequence} of the {@link Profile} pair is of type S
  @param <C> each element of an {@link AlignedSequence} is a {@link Compound} of type C
  @param profile1 the first {@link Profile} to align
  @param profile2 the second {@link Profile} to align
  @param type chosen type from list of profile-profile alignment routines
  @param gapPenalty the gap penalties used during alignment
  @param subMatrix the set of substitution scores used during alignment
  @return alignment profile