Skip to main content
Fig. 5 | Journal of Cheminformatics

Fig. 5

From: A ligand-based computational drug repurposing pipeline using KNIME and Programmatic Data Access: case studies for rare diseases and COVID-19

Fig. 5

Nested recursive loop in order to fetch bioactivity data from ChEMBL (steps 3 and 4 of the metanode ‘Get bioactivities per target’): UniProt ID, Target ChEMBL ID, associated total count of available bioactivities, as well as the number of iterations needed for data download, are provided as input. The ‘Table Row to Variable’ node converts the respective UniProt ID into a variable and forwards it to the ‘Row Splitter’ Node. The table is thereafter split according to the UniProt ID, while the rest of the table is temporarily forwarded to the ‘Recursive Loop End’. The ‘One Row to Many’ node is used to multiply table rows on the basis of the number of iterations, as indicated in the ‘#Iter’ column. The ‘Counter Generation’ node is used to generate a column with the sequence of the offset values having an interval of 1000. The nested loop (initiated by the ‘Table Row To Variable Loop Start’ node) is used to create an API call (‘String Manipulation’ node) with the current value of the offset parameter. An API call is executed (‘GET Request’ node) and the bioactivity values are extracted accordingly (‘XPath’ node). The nested loop is running until all the offset values generated by the ‘Counter Generation’ node are applied. After the ‘Recursive Loop End’, the rest of the table from the second input port is passed back to the loop start and the workflow is repeated for the next protein target. As an output, each bioactivity data point (including activity comment, assay description, molecule ChEMBL ID, molecule general name, standard bioactivity type, standard unit, standard bioactivity value, standard relation, parent molecule ChEMBL ID, and document ChEMBL ID) is listed in the output table

Back to article page