There is a place in my pipeline where I call PDB's API with a ribosomal id to get all the subchains of that molecule programmatically.

I'd like to separate subchains that are proteins from nucleic acids in the response, or at least know how to get the chain-ids of the nucleic acids so that i can exclude them from all manually.

enter image description here

Wondering if there is some query parameter like is_nucleic_acid in the PDB's ADL, but that's just a hunch. I'd be happy to learn if there is a more idiomatic way to do it( from Uniprot mappings maybe? ).

My query as of now looks like when i want to get, say uniprot acccessions for subchains(in fl):

const PDBSearchSelect = "https://ww.ebi.ac.uk/pdbe/search/select?"";
const params = { 
// this is of the form "3j9m", "5afi", etc...   
q: `${input.toLowerCase()}`,        
//wondering if there is an "fl" parameter to get all nucleic acids
fl: "molecule_name, uniprot_id, uniprot_accession, struct_asym_id,...other", 
rows: "200"

axios.get(PDBSearchSelect, {params}).... => ..

I would actually be super grateful if somebody could elucidate what's the difference between https://www.ebi.ac.uk/pdbe/api/... and

https://www.ebi.ac.uk/pdbe/search/pdb/select?. I've been looking at sides of the PDB API for a few weeks now and it still seems like complete babylon in terms of naming. I realize that it grew organically over years.

Thanks a ton.

  • 1
    $\begingroup$ Not sure I follow the first question you ask in your image about 'protein vs. NA' https://www.ebi.ac.uk/pdbe/api/pdb/entry/molecules/3j9m gives "molecule_type":"polyribonucleotide" and synonym":"16S ribosomal RNA" for "in_chains":["A"]. $\endgroup$ – Matteo Ferla Feb 7 at 0:10
  • 1
    $\begingroup$ Also, the European PDB and the San Diego PDB have their own APIs each with different parameters. For some things one is better, for other the other. (or SIFTS). So sometimes its helpful to check what the other does. The San Diego PDB API is not as good and is documented in XML and in this case it is less good, but sometimes it is. $\endgroup$ – Matteo Ferla Feb 7 at 0:13
  • 1
    $\begingroup$ Namely whereas https://www.rcsb.org/pdb/rest/describeMol?structureId=3j9m has the RNA chain elements in this XML clearly have the attribute type="rna", the json (changing /rest/ to /json/ gives JSON, undocumented AFAIK) does not: https://www.rcsb.org/pdb/json/describeMol?structureId=3j9m. $\endgroup$ – Matteo Ferla Feb 7 at 0:13
  • $\begingroup$ @MatteoFerla, this is it, I think. You are the MVP. Remember you from my other question, actually, and grateful to learn. The opaque documentation on many of these is quite frustrating at the same time. $\endgroup$ – rtviii Feb 7 at 2:31
  • 1
    $\begingroup$ @MatteoFerla, are there reasons that you know of other than historical as to why it all seems fragmented? Is that even true or am i just complaining? I frequently dream of committing all of this to a huge intelligible GraphQL schema instead of dumping hours on trying to figure the right endpoint and query string every time i need to employ a new facet of a molecule. $\endgroup$ – rtviii Feb 7 at 2:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.