Markon ha scritto:
Avresti potuto almeno dire di che libreria si tratta e/o postare un pezzo di codice.
Salve ancora, hai ragione Markon sono stato impreciso, mi scuso per l'errore sono adato troppo di fretta.
Comunque la libreria è openBabel
§ di cui è disponibile il binding per il python, quello che mi interessava fare era leggere l'output di un'analisi conformazionale eseguita con MacroModel
§§.
Quello che faccio è prima far leggere le caratteristiche della molecola, tipi di atomi, connettività, residui e quant'altro, e fino a qui nessun problema ci sono funzioni che secondo la documentazione (disponibile per la libreria c++) richiedono variabili di tipo double e vengono prese tranquillamente, es.:
atm.
SetVector(float(m.group('x_coord')), float(m.group('y_coord')), float(m.group('z_coord')))
Il problema viene quando vado a usare funzioni che invece richiedono variabili di tipo "double *"
come appunto AddConformer definita dalla documentazione come:
void AddConformer (double * f ) [inline]
Add a new set of coordinates f as a new conformer.
Referenced by OBForceField::WeightedRotorSearch().
Ho provato ad usare prima liste, poi array poi infine sull'onda della disperazione anche array generati con ctypes. ma nulla sempre TypeError.
Penso che il mio problema non riguardi la libreria openbabel in se quando la mia non conoscenza di come rendere con il python una variabile di tipo double*.
Spero di essere stato un pò più chiaro.
note:
§ Software di conversione tra formati di molecole di cui è disponibile anche una verione nei repository, è possibile usare anche un binding per python.
§§ Software proprietario per lavori di molecular modeling. Prevalentemente orientato alla meccanica molecolare.