Body: <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>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T00:10:11.137Z
Comments.Text: 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"]`.
Comments.UserDisplayName: Matteo Ferla
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T00:13:33.810Z
Comments.Text: 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.
Comments.UserDisplayName: Matteo Ferla
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T00:13:42.637Z
Comments.Text: 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).
Comments.UserDisplayName: Matteo Ferla
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T02:31:52.147Z
Comments.Text: @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.
Comments.UserDisplayName: rtviii
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T02:37:32.170Z
Comments.Text: @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.
Comments.UserDisplayName: rtviii
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-02-07T07:09:03.187Z
Comments.Text: 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...
Comments.UserDisplayName: Matteo Ferla
Tags: <pdb><uniprot><api>
Title: Get nucleic acids' chain names from PDB API
ThreadText: # 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.
  
  [![enter image description here](https://i.sstatic.net/NDLUe.png)](https://i.sstatic.net/NDLUe.png)
  
  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](https://www.ebi.ac.uk/pdbe/search/pdb)/... 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**: @username_1, 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**: @username_1, 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
  
  