:- module( bio_db_homs_strg, [ bio_db_homs_strg/0, % + String strg_homs_edge_ensp/3, strg_homs_edge_symb/3 ] ). :- use_module(library(lib)). :- lib(bio_db). /** bio_db_homs_strg. Documentation predicate for Homo sapiens data from String database. Predicates defined: * strg_homs_edge_ensp/3 * strg_homs_edge_symb/3 == ?- lib( &bio_db(homs(strg)) ). ?- [ pack('bio_db/cell/homs/strg') ]. == @author nicos angelopoulos @version 0.1 2018/10/29 @version 0.2 2022/12/25 */ bio_db_homs_strg. /** strg_homs_edge_ensp( ?EnsP1, ?EnsP2, ?W ). Weighted graph edges predicate from String database between Ensembl protein ids. W is an integer in 0 < W < 1000. == Symb = 'LMTK3'. ?- hgnc_homs_symb_ncbi('LMTK3',Ncbi),ncbi_homs_ncbi_ensp(Ncbi,EnsP),strg_homs_edge_ensg( EnsP, Inter, W ). Ncbi = 114783, EnsP = 'ENSP00000270238', Inter = 'ENSP00000075503', W = 186 ; Ncbi = 114783, EnsP = 'ENSP00000270238', Inter = 'ENSP00000162044', W = 165 ; Ncbi = 114783, EnsP = 'ENSP00000270238', Inter = 'ENSP00000178640', W = 389 ... == */ strg_homs_edge_ensp( X, Y, Z ) :- bio_db:bio_db_serve( strg_homs_edge_ensp(X,Y,Z) ). /** strg_homs_edge_symb( ?Symb1, ?Symb2, ?W ). Weighted graph edges predicate from String database between HGNC symbol ids. W is an integger in 0 < W < 1000. Note that Symb1 @< Symb2, so you need to query with Symb2 (or Symb1) in both positions if Symb1 (or Symb2) are unbound. == ?- strg_homs_edge_symb( 'LMTK3', Inter, W ). Inter = 'MAP2K5', W = 389 ; Inter = 'MAPK3', W = 157 ; Inter = 'MASTL', W = 211 ; Inter = 'MDC1', W = 198 ; Inter = 'MFSD2A', W = 165 ; Inter = 'MRPS30', W = 179 .... ?- strg_homs_edge_symb( Inter, 'LMTK3', W ). Inter = 'AATK', W = 170 ; Inter = 'ACTRT1', W = 150 ; == */ strg_homs_edge_symb( X, Y, Z ) :- bio_db:bio_db_serve( strg_homs_edge_symb(X,Y,Z) ).