currocam / HMMERutils

A bunch of convenient functions to search for homologous sequences using the HMMER API, annotate them taxonomically, calculate physicochemical properties and facilitate exploratory analysis of homologous sequence data.
3 stars 0 forks source link

extract_from_hmmer #4

Closed Juane99 closed 2 years ago

Juane99 commented 2 years ago

Issue creada para añadir la nueva función extract_from_hmmer

currocam commented 2 years ago

He solucionado un error con nombres de funciones que colisionaban e impedia que la libreria fuese instalada: https://stackoverflow.com/questions/23232791/is-it-a-good-practice-to-call-functions-in-a-package-via El check de CRAN también me da estas advertencias, puedes echarle un vistazo echarle un vistazo?.

checking R code for possible problems ... NOTE extract_from_hmmer: no visible binding for global variable 'hits.domains' extract_from_hmmer: no visible global function definition for ':='. parse_results_into_tbl: no visible binding for global variable '.' Undefined global functions or variables: . := hits.domains

He añadido pruebas para los casos que ya funcionan y los que faltan por implementar. También he hecho un par de cambios en tu código: ahora las nuevas columnas tienen un prefijo para mantener la lógica de "stats. stats columns", "hits. for hits columns etc.

Muchas gracias, va quedando genial!

Juane99 commented 2 years ago

Buenas Curro!

Acabo de añadir esas variables a un fichero de variables globales para evitar problemas.

La función extract_from_hmmer ya está terminada y funciona con cualquier tipo de list var. Échale un vistazo y me dices cualquier cosa que quieras que cambie.

Si lo ves todo bien, mergea los cambios y me pongo con otra tarea,

currocam commented 2 years ago

He hecho un commit más corrigiendo un error (función desconocida select_if). Puedes ver los fallos en la acción de GitHub (ahora mismo están fallando, pero puedes comprobar si hay más fallos que antes).

También he hecho otro commit cambiando un par de warnins de estilo de código y aæadiendo los tests relativos con hits seqs y hits.pdbs. He forzado a que fallen los test para el caso de hits.pdb (se pueden ver en test-extract_from_hmmer). En lugar de añadir filas, está añadiendo columnas. ¿Es esto a propósito? Si crees que es mejor así, lo mergeo ahora.

A mi es que no me queda claro que tener diferentes columnas de lo mismo, en lugar de filas, pueda ser de utilidad. Que yo sepa las estructuras cristalográficas, no se ordenan por calidad o fecha ni nada. Que piensas tu?

Juane99 commented 2 years ago

Tienes toda la razón, lo he programado pensando en que hits.pdbs se comporta igual que hits.domains y hits.seqs. Voy a cambiar el código para que añada filas por elemento en la lista en vez de columnas.

Una vez cambiado eso me pondré con las acciones de GitHub a ver si consigo que pasen la mayoría de tests y se quede todo más limpio.

Gracias por revisar mis cambios tan rápido!

P.D. Quiero resaltar que la función no está hecha para ser llamada de forma simultánea sobre el mismo dataframe de salida, ya que se duplican muchas filas, y se generarían muchísimas más observaciones de las necesarias. Lo ideal sería cargar en tres dataframes diferentes el resultado de extraer domains, seqs y pdbs. Si crees que debería programarlo para que las llamadas sobre el mismo dataframe sean optimas, házmelo saber y le intento dar una vuelta.