stringtranslate.com

Módulo: Gen Infobox

p local = {}local localSeparatorStr = "," -- **lclz** Corrígelo si tu wiki tiene una configuración diferente, como zhwiki usa "、" por ahoralocal localNotApplicableStr = "n/a" -- **lclz**raíz local--define el esquema de color globalcolorBG de fila local = '#eee'título localBGcolor = '#ddd'lado localTitleBGcolor = '#c3fdb8'-- "llamada protegida" envuelta, devuelve "error de valor" con información de error sobre el errorfunción local check_values(f,args)--local u= tabla.upack(argumentos)existe localmente, val = pcall(f, desempaquetar(args))Si existe y val ~= nil entoncesretorno(val)demás-- Filtrar algo de información de depuración no haría daño...devolver("'''ERROR_DE_VALOR''' (" .. tostring(val) .. ")")finfinajuste(s) de función local devolver (s:gsub("^%s*(.-)%s*$", "%1"))fin--Los textos relevantes para la localización están etiquetados con --**lclz** y/o *lclz*--en una página {{#invoke:Sandbox/genewiki/alllua|getTemplateData|QID=Q14865053}}--en la ventana de depuración--frame = mw.getCurrentFrame()--frame.args = {QID="Q14865053"} Q18031325--print(p.getTemplateData(marco))función p.getTemplateData(marco)--Haga algunas conjeturas sobre si el QID proporcionado es correcto--Podría expandirse aquí si tuviéramos algún tipo de marco de manejo de errores.--lo obtuvimos de la paginaroot_qid local = mw.text.trim(frame.args['QID'] o "") - intenta obtenerlo de los argumentosmm_qid local = ""--extraer todos los objetos de entidad que necesitaremosentidad local = {}entidad local_proteína = {}entidad local_ratón = {}entidad local_proteína_ratón = {}checkOrtholog local = "" --flag usado para ver si los datos del mouse están disponibleslocal mouse_propertyID = "P684" --en realidad, pueden existir ortólogos adicionales en la propiedad del ortólogoID de propiedad de proteína local = "P688"--obtener entidad genética raízsi root_qid == "" entoncesentidad = mw.wikibase.getEntity()si entidad entonces root_qid = entidad.id de lo contrario root_qid = "" findemás--suponiendo que pensamos que es bueno hacer una llamada para recuperar y almacenar su representación wikidataentidad = mw.wikibase.getEntity(root_qid)fin--Necesito averiguar si es proteína o gen aquísubclase local = p.getValue(entidad, "P31") o ""si string.find(subclase, 'proteína') entonces --si proteína cambia entidad a gen **lclz**Reclamaciones localesSi entidad.reclama entoncesclaims = entidad.reclamos["P702"] --codificado porfinSi reclama entonces--recorrer cada índice y reasignar entidadentidad = {}si (reclamos[1] y reclamos[1].mainsnak.snaktype == "valor" y reclamos[1].mainsnak.datavalue.type == "wikibase-entityid") entoncespara k, v en pares (reclamos) lo hacen --esto sería problemático si hay múltiples genes para la proteínaID de elemento local = "Q" .. reclamaciones[#entidad + 1].mainsnak.valor de datos.valor["id-numérico"]entidad[#entidad + 1] = mw.wikibase.getEntity(itemID)root_qid = ID del artículofinfin - no devolverá nada si no se encuentran reclamacionesfinentidad = mw.wikibase.getEntity(root_qid)fin--obtener las otras entidades relacionadasSi entidad entoncesReclamaciones locales--obtener objeto de entidad de proteínaSi entidad.reclama entoncesreclamaciones = entidad.reclamaciones[protein_propertyID]finSi reclama entonces--recorre cada índice y luego indexa entity_proteinsi (reclamos[1] y reclamos[1].mainsnak.snaktype == "valor" y reclamos[1].mainsnak.datavalue.type == "wikibase-entityid") entoncespara k, v en pares(reclamaciones) hacerprotein_itemID local = "Q" .. reclamaciones[#entity_protein + 1].mainsnak.datavalue.value["numeric-id"]entidad_proteína[#entidad_proteína + 1] = mw.wikibase.getEntity(proteína_itemID)finfin - no devolverá nada si no se encuentran reclamacionesfin--obtener objeto de entidad del ratónSi entidad.reclama entoncesreclamaciones = entidad.reclamaciones[mouse_propertyID]finID de calificador local = "P703" --se encontró en el taxóncualidad_del_ratón local = "Q83310"Si reclama entoncessi (reclamos[1] y reclamos[1].mainsnak.snaktype == "valor" y reclamos[1].mainsnak.datavalue.type == "wikibase-entityid") entoncespara k, v en pares(reclamaciones) hacersi checkOrtholog == 1 entonces - No es necesario continuar si ya lo tenemosromperfinID_de_elemento_ratón local = "Q" .. v.mainsnak.datavalue.value["id-numérico"]calificaciones localesSi v.calificadores entoncescualificadores = v.calificadores.P703finSi califica entoncespara qk, qv en pares(quals) hacer--obtener el identificador del calificador del taxónid_obj_cal_local = "Q"...qv.valor_datos.valor["id_numérico"]si qual_obj_id == mouse_qual entonces --verifica si se trata de un mouse u otromm_qid = ID del elemento del ratónentidad_ratón = mw.wikibase.getEntity(mouse_itemID)checkOrtholog = 1romperfinfinfinfinfin - no devolverá nada si no se encuentran reclamacionesdemáscheckOrtholog = 0fin--obtener objeto de entidad de proteína de ratónSi entity_mouse y entity_mouse.claims entoncesreclamaciones = entidad_ratón.reclamaciones[proteína_propiedadID]finSi reclama entoncessi (reclamos[1] y reclamos[1].mainsnak.snaktype == "valor" y reclamos[1].mainsnak.datavalue.type == "wikibase-entityid") entoncespara k, v en pares(reclamaciones) hacerprotein_itemID local = "Q" .. reclamaciones[#entity_mouse_protein + 1].mainsnak.datavalue.value["numeric-id"]entidad_proteína_del_ratón[#entidad_proteína_del_ratón + 1] = mw.wikibase.getEntity(protein_itemID)finfin - no devolverá nada si no se encuentran reclamacionesfinfinSi es una entidad, entonces solo se requiere la entidad del gen principal--una lista de variables de todos los datos en el cuadro de informaciónnombre local = check_values(p.getLabel,{entidad})bgee_wikidata_id local = 'Q54985720'expresado_en_tejidos local = check_values(p.getValue, {entidad, "P5572", localNotApplicableStr, localSeparatorStr, bgee_wikidata_id}) --P5572: expresado enexpresado_en_tejidos_del_ratón = comprobar_valores(p.obtenerValor, {entidad_ratón, "P5572", localNotApplicableStr, localSeparatorStr, bgee_wikidata_id}) --P5572: expresado enlocal entrez_gene = check_values(p.getValue, {entidad, "P351", localNotApplicableStr} )local entrez_gene_mm = comprobar_valores(p.obtenerValor, {entidad_ratón, "P351", localNotApplicableStr})imagen local = check_values( p.getImage, {entity, "P18", " ", "250px"}) --es necesario establecer el tamañouniprotID_hs local = comprobar_valores(p.getValueProtein, {entidad_proteína, "P352", localNotApplicableStr})uniprotID_mm local = comprobar_valores(p.getValueProtein, {entidad_proteína_ratón, "P352", localNotApplicableStr})pdbIDs locales = check_values(p.getPDB, {entity_protein}) --crea una lista con enlaces a RCSBalias locales = check_values(p.getAliases, {entidad})símbolo_gen_local = comprobar_valores(p.getValue, {entidad, "P353"})hgnc_id local = check_values(p.getValue, {entidad, "P354"})homologogene_id local = check_values(p.getValue, {entidad, "P593"})omim_id local = check_values(p.getValue, {entidad, "P492"})mgi_id local = comprobar_valores(p.obtenerValor, {entidad_ratón, "P671"})ChEMBL_id local = check_values(p.getValue, {proteína_entidad, "P592"})IUPHAR_id local = check_values(p.getValue, {proteína_entidad, "P595"})ec_no local = comprobar_valores(p.getValueProtein, {entidad_proteína, "P591"})función_mol_local = comprobar_valores(p.getGO, {proteína_entidad, "P680"})comp_celda local = comprobar_valores(p.getGO, {proteína_entidad, "P681"})bio_proceso local = comprobar_valores(p.getGO, {proteína_entidad, "P682"})expresión local_imágenes = comprobar_valores(p.getImage, {entidad,"P692","<br><br>","250px"})conjunto local = check_values(p.getValue, {entidad, "P594", localNotApplicableStr})conjunto_mm local = comprobar_valores(p.obtenerValor, {entidad_ratón, "P594", localNotApplicableStr})refseq_mRNA local = check_values(p.getRefseq_mRNA, {entidad, "P639", localNotApplicableStr})refseq_mRNA_mm local = comprobar_valores(p.getRefseq_mRNA, {entidad_ratón, "P639", localNotApplicableStr})refseq_prot local = check_values(p.getRefseq_protein, {proteína_entidad, "P637", localNotApplicableStr})refseq_protein_mm local = comprobar_valores(p.getRefseq_protein, {entidad_protein_mouse, "P637", localNotApplicableStr})gstart local = check_values(p.getChromosomeLoc, {entidad, "P644", "hg"})gend local = check_values(p.getChromosomeLoc, {entidad, "P645", "hg"})chr local = check_values(p.trimChromosome, {entidad})citobanda local = check_values(p.getValue, {entidad, "P4196", localNotApplicableStr})base de datos local = check_values(p.getAliasFromGenomeAssembly, {entidad,"hg"})gstart_mm local = comprobar_valores(p.getChromosomeLoc, {entidad_ratón, "P644", "mm"})gend_mm local = comprobar_valores(p.getChromosomeLoc, {entidad_ratón, "P645", "mm"})chr_mm local = comprobar_valores( p.trimChromosome, {entidad_ratón})base de datos local_mm = comprobar_valores(p.getAliasFromGenomeAssembly, {entidad_ratón,"mm"})cytoband_mm local = comprobar_valores(p.obtenerValor, {entidad_ratón, "P4196", localNotApplicableStr})enfermedad local, dis_ref = p.getDisease(entidad, "P2293")fármaco local, referencia_fármaco, pqid_fármaco, pname_fármaco = p.getDrug(proteína_entidad, "P129")--medicamento local = comprobar_valores(p.obtenerMedicamento, {proteína_entidad, "P129"})p.createTable()p.renderUpperTitle(nombre)--p.renderCaption()p.renderImage(imagen)p.renderAvailableStructures(uniprotID_hs, uniprotID_mm, checkOrtholog, pdbIDs) --Información de PDBp.renderIdentifiers(alias, hgnc_id, símbolo_gen, homologene_id, omim_id, mgi_id, ChEMBL_id, IUPHAR_id, ec_no, entrez_gene, ensembl)--Descomente aquí para agregar una sección del cuadro de información sobre enfermedades relacionadas genéticamente, con referencias--if (enfermedad ~= "" y dis_ref ~= "") entonces --elimina la sección de aquellos elementos sin información sobre la enfermedad-- p.renderDiseases(marco, enfermedad, dis_ref, nombre, root_qid)--fin--Descomente aquí para agregar una sección del cuadro de información sobre medicamentos que se dirigen al producto proteico de este gen, con referencias--if (droga ~= "") entonces --elimina la sección de aquellos elementos sin información de la droga-- p.renderDrug(marco,droga, referencia_droga, pqid_droga, nombre_p_droga)--finsi (chr ~= "" y gstart ~= "" y gend ~= "") o (chr_mm ~= "" y gstart_mm ~= "" y gend_mm ~= "") entoncesp.renderGeneLocation(marco, chr, gstart, gend, db, cytoband, ensembl, chr_mm, gstart_mm, gend_mm, db_mm, cytoband_mm, ensembl_mm, nombre)finsi expresión_imágenes ~= "" o expresado_en_tejidos ~= localNotApplicableStr entoncesp.renderRNAexpression(imágenes_de_expresión, gen_entrez, ensembl, expresado_en_tejidos, ensembl_mm, expresado_en_tejidos_de_ratón)finsi (mol_funct ~= "" y cell_comp ~= "" y bio_process ~= "") entoncesp.renderGeneOntology(función_mol, comp_célula, proceso_bio, uniprotID_hs)finp.renderOrthologs(marco, entrez_gen, entrez_gene_mm, ensembl, ensembl_mm, uniprotID_hs, uniprotID_mm, refseq_mRNA, refseq_mRNA_mm, refseq_prot, refseq_prot_mm, db, chr, gstart, gend, db_mm, chr_mm, gstart_mm, gend_mm)p.renderFooter(qid_raíz, qid_mm)volver a la cadena (raíz)--return tabla.concat(droga_pqid)demásdevolver "Se ha producido un error al recuperar el elemento Wikidata para el cuadro de información"finfinfunción p.createTable(subbox)Si subbox == 'sub' entonces --no funcionaraíz:tag('tabla'):css('relleno', '0'):css('borde', 'ninguno'):css('margen', '0'):css('ancho', 'automático'):css('ancho mínimo', '100%'):css('tamaño de fuente', '100%'):css('borrar', 'ninguno'):css('float', 'ninguno'):css('color de fondo', 'transparente')demásraíz = mw.html.crear('tabla')raíz-- *lclz*: Algunos proyectos, como zhwiki (de nuevo), usan estilos en línea en-- módulos de infobox además de la clase. No olvides consultarlos.:addClass('infocuadro'):css('ancho', '26.4em')