Additional Examples

Several of the examples below come from RCSB PDB Sequence Coordinates API documentation.

Alignments Query with Range

Filter alignments to a particular range:

from rcsbapi.sequence import Alignments

# Only return alignments data that fall in given range
query = Alignments(
    db_from="NCBI_PROTEIN",
    db_to="PDB_ENTITY",
    query_id="XP_642496",
    range=[1, 100],
    return_data_list=["target_alignments"]
)
query.exec()

Annotations Query with Filter

You can use the filters argument in combination with AnnotationFilterInput to select which annotations to retrieve.

For example, to select just the binding site annotations:

from rcsbapi.sequence import Annotations, AnnotationFilterInput

# Fetch protein-ligand binding sites for PDB Instances of UniProt Q6P1M3
query = Annotations(
    reference="UNIPROT",
    query_id="Q6P1M3",
    sources=["PDB_INSTANCE"],
    filters=[
        AnnotationFilterInput(
            field="TYPE",
            operation="EQUALS",
            values=["BINDING_SITE"],
            source="PDB_INSTANCE"
        )
    ],
    return_data_list=["target_id", "features"]
)
query.exec()

GroupAlignments

Use GroupAlignments to get alignments for groups of sequences (e.g., for UniProt P01112).

from rcsbapi.sequence import GroupAlignments

query = GroupAlignments(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    return_data_list=["target_alignments.aligned_regions", "target_id"],
)
query.exec()

GroupAlignments with Filter

To filter the results down to specific set of PDB entity IDs, use the filter option:

from rcsbapi.sequence import GroupAlignments

query = GroupAlignments(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    return_data_list=["target_alignments.aligned_regions", "target_id"],
    filter=["8CNJ_1", "8FG4_1"]
)
query.exec()

GroupAnnotations

Use GroupAnnotations to get annotations for groups of sequences.

from rcsbapi.sequence import GroupAnnotations

query = GroupAnnotations(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    sources=["PDB_ENTITY"],
    return_data_list=["features.name","features.feature_positions", "target_id"]
)
query.exec()

GroupAnnotations with Filter

Use the filters argument in combination with AnnotationFilterInput to select which annotations to retrieve.

from rcsbapi.sequence import GroupAnnotations, AnnotationFilterInput

# Fetch only "BINDING_SITE" annotations from PDB instances
query = GroupAnnotations(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    sources=["PDB_INSTANCE"],
    filters=[
        AnnotationFilterInput(
            field="TYPE",
            operation="EQUALS",
            values=["BINDING_SITE"],
            source="PDB_INSTANCE"
        )
    ],
    return_data_list=["features.name", "features.type", "features.feature_positions", "target_id"],
)
query.exec()

GroupAnnotationsSummary

Use GroupAnnotationsSummary to get annotations summaries for groups of sequences.

from rcsbapi.sequence import GroupAnnotationsSummary

query = GroupAnnotationsSummary(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    sources=["PDB_INSTANCE"],
    return_data_list=["target_id", "features.type", "features.value"]
)
query.exec()

GroupAnnotationsSummary with Filter

Use the filters argument in combination with AnnotationFilterInput to select which annotation summaries to retrieve.

from rcsbapi.sequence import GroupAnnotationsSummary, AnnotationFilterInput

# Fetch only the "LIGAND_INTERACTION" annotation summary information
query = GroupAnnotationsSummary(
    group="MATCHING_UNIPROT_ACCESSION",
    group_id="P01112",
    sources=["PDB_INSTANCE"],
    filters=[
        AnnotationFilterInput(
            field="TYPE",
            operation="EQUALS",
            values=["LIGAND_INTERACTION"],
            source="PDB_INSTANCE"
        )
    ],
    return_data_list=["target_id", "features.type", "features.value"]
)
query.exec()