Get all of the Sequences - Rosetta, ATOM, SEQRES, FASTA, UniParc.

def _create_sequences(self):
        '''Get all of the Sequences - Rosetta, ATOM, SEQRES, FASTA, UniParc.'''

        # Create the Rosetta sequences and the maps from the Rosetta sequences to the ATOM sequences
        try:
            self.pdb.construct_pdb_to_rosetta_residue_map(self.rosetta_scripts_path, rosetta_database_path = self.rosetta_database_path, cache_dir = self.cache_dir)
        except PDBMissingMainchainAtomsException:
            self.pdb_to_rosetta_residue_map_error = True

        # Get all the Sequences
        if self.pdb_id not in do_not_use_the_sequence_aligner:
            self.uniparc_sequences = self.PDB_UniParc_SA.uniparc_sequences
        else:
            self.uniparc_sequences = self.sifts.get_uniparc_sequences()

        self.fasta_sequences = self.FASTA.get_sequences(self.pdb_id)
        self.seqres_sequences = self.pdb.seqres_sequences
        self.atom_sequences = self.pdb.atom_sequences

        if self.pdb_to_rosetta_residue_map_error:
            self.rosetta_sequences = {}
            for c in self.atom_sequences.keys():
                self.rosetta_sequences[c] = Sequence()
        else:
            self.rosetta_sequences = self.pdb.rosetta_sequences

        # Update the chain types for the UniParc sequences
        uniparc_pdb_chain_mapping = {}
        if self.pdb_id not in do_not_use_the_sequence_aligner:
            for pdb_chain_id, matches in self.PDB_UniParc_SA.clustal_matches.iteritems():
                if matches:
                    # we are not guaranteed to have a match e.g. the short chain J in 1A2C, chimeras, etc.
                    uniparc_chain_id = matches.keys()[0]
                    assert(len(matches) == 1)
                    uniparc_pdb_chain_mapping[uniparc_chain_id] = uniparc_pdb_chain_mapping.get(uniparc_chain_id, [])
                    uniparc_pdb_chain_mapping[uniparc_chain_id].append(pdb_chain_id)
        else:
            for pdb_chain_id, uniparc_chain_ids in self.sifts.get_pdb_chain_to_uniparc_id_map().iteritems():
                for uniparc_chain_id in uniparc_chain_ids:
                    uniparc_pdb_chain_mapping[uniparc_chain_id] = uniparc_pdb_chain_mapping.get(uniparc_chain_id, [])
                    uniparc_pdb_chain_mapping[uniparc_chain_id].append(pdb_chain_id)

        for uniparc_chain_id, pdb_chain_ids in uniparc_pdb_chain_mapping.iteritems():
            sequence_type = set([self.seqres_sequences[p].sequence_type for p in pdb_chain_ids])
            assert(len(sequence_type) == 1)
            sequence_type = sequence_type.pop()
            assert(self.uniparc_sequences[uniparc_chain_id].sequence_type == None)
            self.uniparc_sequences[uniparc_chain_id].set_type(sequence_type)
            for p in pdb_chain_ids:
                self.pdb_chain_to_uniparc_chain_mapping[p] = uniparc_chain_id

        # Update the chain types for the FASTA sequences
        for chain_id, sequence in self.seqres_sequences.iteritems():
            self.fasta_sequences[chain_id].set_type(sequence.sequence_type)