Yep, that's about 7x faster than what I came up with.
Thanks Maciek!

-greg


On Thu, Nov 14, 2019 at 4:35 PM Maciek Wójcikowski <mac...@wojcikowski.pl>
wrote:

> Hi Thomas,
>
> You could also use SetBitsFromList() method:
>
>> bv.SetBitsFromList(np.where(ar)[0].tolist())
>>
>
> ----
> Pozdrawiam,  |  Best regards,
> Maciek Wójcikowski
> mac...@wojcikowski.pl
>
>
> czw., 14 lis 2019 o 16:28 Greg Landrum <greg.land...@gmail.com>
> napisał(a):
>
>> Hi Thomas,
>>
>> There may be more efficient ways to do this, but here's something that
>> works (and isn't the slowest thing I came up with):
>> def np_to_bv(fv):
>>     bv = DataStructs.ExplicitBitVect(len(fv))
>>     for i,v in enumerate(fv):
>>         if v:
>>             bv.SetBit(i)
>>    return bv
>>
>> -greg
>>
>>
>>
>> On Thu, Nov 14, 2019 at 3:47 PM Thomas Evangelidis <teva...@gmail.com>
>> wrote:
>>
>>> Greetings,
>>>
>>> I am opening this old thread again for someone to answer my initial
>>> question this time, which was "How do I convert numpy.ndarray objects to
>>> rdkit.DataStructs.ExplicitBitVect objects?". At the time I asked
>>> the question I circumvented the problem by calculating Tanimoto
>>> similarities with Scipy, but now I want to utilize all similarity functions
>>> offered by rdkit.DataStructs. I am struggling with that for quite some time
>>> although I feel that the answer is simple.
>>>
>>> So basically, I have these arrays and want to calculate their
>>> DataStructs.McConnaugheySimilarity similarity. How do I do it?
>>>
>>> fv1 = numpy.array([1,1,0,0,1,0,1])
>>>
>>>
>>> fv2 = numpy.array([0,1,1,0,1,0,0])
>>>
>>> Thanks in advance.
>>> Thomas
>>>
>>>
>>> --
>>>
>>> ======================================================================
>>>
>>> Dr. Thomas Evangelidis
>>>
>>> Research Scientist
>>>
>>> IOCB - Institute of Organic Chemistry and Biochemistry of the Czech
>>> Academy of Sciences <https://www.uochb.cz/web/structure/31.html?lang=en>
>>> , Prague, Czech Republic
>>>   &
>>> CEITEC - Central European Institute of Technology
>>> <https://www.ceitec.eu/>, Brno, Czech Republic
>>>
>>> email: teva...@gmail.com, Twitter: tevangelidis
>>> <https://twitter.com/tevangelidis>, LinkedIn: Thomas Evangelidis
>>> <https://www.linkedin.com/in/thomas-evangelidis-495b45125/>
>>>
>>> website: https://sites.google.com/site/thomasevangelidishomepage/
>>>
>>>
>>>
>>> _______________________________________________
>>> Rdkit-discuss mailing list
>>> Rdkit-discuss@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>>
>> _______________________________________________
>> Rdkit-discuss mailing list
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to