Takes the headers from source_pdb_content and adds them to target_pdb_content, removing any headers that
           target_pdb_content had.
           Only the content up to the first structural line are taken from source_pdb_content and only the content from
           the first structural line in target_pdb_content are taken.

def replace_headers(source_pdb_content, target_pdb_content):
        '''Takes the headers from source_pdb_content and adds them to target_pdb_content, removing any headers that
           target_pdb_content had.
           Only the content up to the first structural line are taken from source_pdb_content and only the content from
           the first structural line in target_pdb_content are taken.
           '''
        s = PDB(source_pdb_content)
        t = PDB(target_pdb_content)

        source_headers = []
        for l in s.lines:
            if l[:6].strip() in non_header_records:
                break
            else:
                source_headers.append(l)

        target_body = []
        in_header = True
        for l in t.lines:
            if l[:6].strip() in non_header_records:
                in_header = False
            if not in_header:
                target_body.append(l)

        return '\n'.join(source_headers + target_body)