<p>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</p>
<p>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.</p>
<p><a href="https://i.sstatic.net/NDLUe.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/NDLUe.png" alt="enter image description here" /></a></p>
<p>Wondering if there is some query parameter like <em>is_nucleic_acid</em> 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? ).</p>
<p>My query as of now looks like when i want to get, say <em>uniprot acccessions</em> for subchains(in <strong>fl</strong>):</p>
<pre><code>const PDBSearchSelect = &quot;https://ww.ebi.ac.uk/pdbe/search/select?&quot;&quot;;
const params = { 
// this is of the form &quot;3j9m&quot;, &quot;5afi&quot;, etc...   
q: `${input.toLowerCase()}`,        
//wondering if there is an &quot;fl&quot; parameter to get all nucleic acids
fl: &quot;molecule_name, uniprot_id, uniprot_accession, struct_asym_id,...other&quot;, 
//
rows: &quot;200&quot;
};

axios.get(PDBSearchSelect, {params}).... =&gt; ..
</code></pre>
<p>I would actually be super grateful if somebody could elucidate what's the difference between</p>
<ul>
<li><p><a href="https://www.ebi.ac.uk/pdbe/search/pdb" rel="nofollow noreferrer">https://www.ebi.ac.uk/pdbe/api</a>/... and</p>
</li>
<li><p>`<a href="https://www.ebi.ac.uk/pdbe/search/pdb" rel="nofollow noreferrer">https://www.ebi.ac.uk/pdbe/search/pdb</a>/select?</p>
</li>
</ul>
<p>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.</p>
<p>Thanks a ton.</p>

CC BY-SA 4.0
2020-02-07T00:10:11.137Z
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](https://www.ebi.ac.uk/pdbe/api/pdb/entry/molecules/3j9m) gives `"molecule_type":"polyribonucleotide"` and `synonym":"16S ribosomal RNA"` for `"in_chains":["A"]`.
Matteo Ferla
CC BY-SA 4.0
2020-02-07T00:13:33.810Z
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.
Matteo Ferla
CC BY-SA 4.0
2020-02-07T00:13:42.637Z
Namely whereas [https://www.rcsb.org/pdb/rest/describeMol?structureId=3j9m](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](https://www.rcsb.org/pdb/json/describeMol?structureId=3j9m).
Matteo Ferla
CC BY-SA 4.0
2020-02-07T02:31:52.147Z
@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.
rtviii
CC BY-SA 4.0
2020-02-07T02:37:32.170Z
@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.
rtviii
CC BY-SA 4.0
2020-02-07T07:09:03.187Z
No idea sorry. But I totally agree with your frustration. I needed to find the offset of the PDB residue numbers (not pose id) relative to Uniprot canonical transcript. SIFTS partially did it. I ended doing it manually, which was way quicker anyway...
Matteo Ferla
<pdb><uniprot><api>
Get nucleic acids' chain names from PDB API
# Get nucleic acids' chain names from PDB API

(Asked by: username_0 on 2020-02-06)

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.

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.

**Tags:** pdb, uniprot, api
> **Comments:**
> **username_1**: 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](https://www.ebi.ac.uk/pdbe/api/pdb/entry/molecules/3j9m) gives `"molecule_type":"polyribonucleotide"` and `synonym":"16S ribosomal RNA"` for `"in_chains":["A"]`.  
> **username_1**: 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.  
> **username_1**: Namely whereas [https://www.rcsb.org/pdb/rest/describeMol?structureId=3j9m](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](https://www.rcsb.org/pdb/json/describeMol?structureId=3j9m).  
> **username_0**: @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.  
> **username_0**: @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.  
> **username_1**: No idea sorry. But I totally agree with your frustration. I needed to find the offset of the PDB residue numbers (not pose id) relative to Uniprot canonical transcript. SIFTS partially did it. I ended doing it manually, which was way quicker anyway...  

---

## 0 answers

