PDBe complexes
PDB complex related queries
- Q_MAKE_PDB_COMPLEX
Cypher query to find unique assemblies and make unique complexes.
MATCH (assembly:Assembly {PREFERED: 'True'})<-[rel:IS_PART_OF_ASSEMBLY] -(entity:Entity {TYPE:'p'}) WITH assembly, rel, entity OPTIONAL MATCH (entity)-[:HAS_UNIPROT {BEST_MAPPING:'1'}]->(uniprot:UniProt) -[:HAS_TAXONOMY]->(tax:Taxonomy) OPTIONAL MATCH (entity)-[:HAS_RFAM]->(rfam:RfamFamily) WITH assembly.UNIQID AS assembly_id, CASE uniprot WHEN null THEN CASE rfam WHEN null THEN CASE entity.POLYMER_TYPE WHEN 'R' THEN 'RNA' +':UNMAPPED' WHEN 'D' THEN 'DNA' +':UNMAPPED' WHEN 'D/R' THEN 'DNA/RNA' +':UNMAPPED' WHEN 'P' THEN 'NA_' +entity.UNIQID +'_' +rel.NUMBER_OF_CHAINS END ELSE rfam.RFAM_ACC END ELSE uniprot.ACCESSION +'_' +rel.NUMBER_OF_CHAINS +'_' +tax.TAX_ID END AS accession ORDER BY accession WITH assembly_id AS assembly_id, COLLECT (DISTINCT accession) AS accessions WITH assembly_id AS assembly_id, REDUCE(s = HEAD(accessions), n in TAIL(accessions) | s +',' +n) AS accessions WITH accessions, COLLECT(DISTINCT assembly_id) AS assemblies WITH accessions AS accessions, REDUCE(s = HEAD(assemblies), n in TAIL(assemblies) | s +',' +n) AS assemblies RETURN accessions, assemblies