Marvin JS API Reference

148 阅读14分钟

静态函数(Static functions)

marvin.Sketch.isSupported()

如果支持HTML5 canvas返回true,否则返回false。

参数

返回

如果支持HTML5 canvas返回true,否则返回false。

marvin.Sketch.addRequestInterceptor(function( config ))

注册一个函数,该函数完成了Marvin JS发送给远程服务的带有额外字段的HTTP请求的标头。

参数

interceptor——在一个新请求被发送到webservices之前,这个函数会被MarvinJS HTTP请求头生成器调用。例如:如果与服务器的通信需要承载(令牌)认证,您可以添加一个带有加密字符串的授权头

marvin.Sketch.addRequestInterceptor( (config) => {
     config.setRequestHeader("Authorization", "Bearer <token>");
 });

例如:Angular应用可能需要X-XSRF-TOKEN来避免跨站请求伪造。查找一个名为XSRF-TOKEN的cookie,并设置X-XSRF-TOKEN报头。

marvin.Sketch.addRequestInterceptor( (config) => {
     if (config.method !== "GET") {
         var token = getCookie("XSRF-TOKEN"); // please, declare a getCookie function earlier to lookup the desired cookie
         if(token) {
             config.setRequestHeader("X-XSRF-TOKEN", token );
         }
     }
 });

例如:设置XMLHttpRequest的withCredentials属性

marvin.Sketch.addRequestInterceptor( (config) => {
  config.setWithCredentials(true);
});

返回

marvin.Sketch.removeRequestInterceptor(function( config ))

注销之前注入的函数,该函数用于完成带有额外字段的Marvin JS生成的HTTP请求头。

参数

同上

返回

marvin.Sketch.license(String licenseURL Boolean isDynamic)

设置marvinJS许可证

参数

名称类型是否必填描述
licenseURLStringlicense文件的URL
isDynamicBoolean可选的。控制在运行时是否由许可证服务器授予许可证。默认值为false

返回

marvin.ImageExporter.molToDataUrl(String source, String imageType, JavaScriptObject optionalSettings)

从给定的分子源创建图像数据流。

参数

名称类型是否必填描述
sourceString分子源在MDL molfile或null应用一个空分子
imageTypeString输出图像数据流MIME类型(默认值为“ Image/PNG”)
optionalSettingsObject描述显示设置的JavaScript对象。对象包含键值对
optionalSettings配置项:
名称类型默认值可选值描述
carbonLabelVisibleBooleanfalse{true, false}不适用在“BALLSTICK”显示模式
chiralFlagVisibleBooleantrue{true, false}-
valenceErrorVisibleBooleantrue{true, false}-
lonePairsVisibleBooleanfalse{true, false}如果MRV源包含适当的信息或启用了自动孤对计算,则显示孤对
lonepaircalculationenabledBooleanfalse{true, false}将其设置为true以计算当前结构上的孤对。
circledsignBooleanfalse{true, false}在带不带电荷的正负号周围画一个圈。
atomIndicesVisibleBooleanfalse{true, false}-
atomMapsVisibleBooleantrue{true, false}-
cpkColoringBooleantrue{true, false}-
displayModeStringWIREFRAME{"WIREFRAME", "BALLSTICK", "STICK", "SPACEFILL"}-
implicitHydrogenStringTERMINAL_AND_HETERO{"ALL", "OFF", "HETERO", "TERMINAL_AND_HETERO"}如果“carbonLabelVisible”值为true,“HETERO”和“TERMINAL and HETERO”值将被视为“ALL”。
backgroundColorString--css颜色,不要设置为透明(png)或白色
zoomModeStringfit{"fit", "autoshrink"}“fit”会将每个分子扩展到给定的大小,“autoshrink”只会缩小大分子。
widthNumber200-宽度
heightNumber200-高度
{
    "carbonLabelVisible": false,
    "atomMapsVisible": true,
    "chiralFlagVisible": true,
    "valenceErrorVisible": true,
    "lonePairsVisible": false,
    "implicitHydrogen": "TERMINAL_AND_HETERO",
    "displayMode": "WIREFRAME",
    "backgroundColor": "#ff00ff",
    "width": 300,
    "height": 350
}

返回

如果图像宽度/高度大于零,则将图像流编码为图像数据URL

marvin.ImageExporter.mrvToDataUrl(String source, String imageType, JavaScriptObject optionalSettings)

从给定的分子源创建图像数据流。

参数

名称类型是否必填描述
sourceString分子源在MDL molfile或null应用一个空分子
imageTypeString输出图像数据流MIME类型(默认值为“ Image/PNG”)
optionalSettingsObject描述显示设置的JavaScript对象。对象包含键值对
optionalSettings配置项:
名称类型默认值可选值描述
carbonLabelVisibleBooleanfalse{true, false}不适用在“BALLSTICK”显示模式
chiralFlagVisibleBooleantrue{true, false}-
valenceErrorVisibleBooleantrue{true, false}-
lonePairsVisibleBooleanfalse{true, false}如果MRV源包含适当的信息或启用了自动孤对计算,则显示孤对
lonepaircalculationenabledBooleanfalse{true, false}将其设置为true以计算当前结构上的孤对。
circledsignBooleanfalse{true, false}在带不带电荷的正负号周围画一个圈。
atomIndicesVisibleBooleanfalse{true, false}-
atomMapsVisibleBooleantrue{true, false}-
cpkColoringBooleantrue{true, false}-
displayModeStringWIREFRAME{"WIREFRAME", "BALLSTICK", "STICK", "SPACEFILL"}-
implicitHydrogenStringTERMINAL_AND_HETERO{"ALL", "OFF", "HETERO", "TERMINAL_AND_HETERO"}如果“carbonLabelVisible”值为true,“HETERO”和“TERMINAL and HETERO”值将被视为“ALL”。
backgroundColorString--css颜色,不要设置为透明(png)或白色
zoomModeStringfit{"fit", "autoshrink"}“fit”会将每个分子扩展到给定的大小,“autoshrink”只会缩小大分子。
widthNumber200-宽度
heightNumber200-高度
{
    "carbonLabelVisible": false,
    "atomMapsVisible": true,
    "chiralFlagVisible": true,
    "valenceErrorVisible": true,
    "lonePairsVisible": false,
    "implicitHydrogen": "TERMINAL_AND_HETERO",
    "displayMode": "WIREFRAME",
    "backgroundColor": "#ff00ff",
    "zoomMode": "autoshrink",
    "width": 300,
    "height": 350
}

返回

如果图像宽度/高度大于零,则将图像流编码为图像数据URL

Class

marvin.ImageExporter

默认值构造函数

new marvin. ImageExporter () 

带参数的构造函数

new marvin. ImageExporter ({}) 
参数

params -包含在JavaScript对象中的参数。

名称类型是否必填描述
imageTypeStringimage/png生成图像的格式(图像/png,image/jpeg,image/svg)
settingsObject{ width: 200, height: 200 }显示设置。应用与的相同值marvin.ImageExporter.mrvToDataUrl(String,String,JavaScriptObject)
inputFormatnull预先定义要转换的分子源的格式(或为空以自动识别)(如果没有指定webservices,则只接受“mol”和“mrv”,如果它表示分子转换器服务支持的任何格式
servicesnull最理想的情况是,您可以指定web服务设置来注入molconverter和立体声计算功能。看到marvin.Sketch.setServices (JavaScriptObject)
返回

new出来新的实例对象

render(String source)

从给定的分子源生成图像。返回一个Promise对象,以便在图像转换准备好时获得通知。

参数
名称类型是否必填描述
sourceStringimage/png要呈现的分子的来源(输入格式由imageexporters实例的创建决定)
返回

Promise object

marvin.Sketch

marvin.Sketch()

创建一个新的编辑器小部件,并将其插入当前页面的主体中。

marvin.Sketch(String id)

创建一个新的编辑器小部件并将其插入到指定的DOM元素中。

参数
名称类型是否必填描述
idString-id—其子元素将是编辑器小部件的DOM元素的id。配置-初始参数。

getDisplaySettings()

获取包装成JavaScript对象的编辑器的当前显示设置。

参数
名称类型默认值可选值描述
carbonLabelVisibleBooleanfalse{true, false}不适用在“BALLSTICK”显示模式
chiralFlagVisibleBooleanStringtrue{true, false, "disabled"}当设置为false时,绝对立体手性标志对画布隐藏。当设置为“禁用”时,绝对立体手性标志从画布中隐藏,绝对立体属性不能再从上下文菜单中设置了。不能从“视图设置”对话框中更改立体手性标志的可见性。
atomIndicesVisibleBooleanfalse{true, false}-
atomMapsVisibleBooleantrue{true, false}-
cpkColoringBooleantrue{true, false}-
valenceErrorVisibleBooleantrue{true, false}-
lonePairsVisibleBooleanfalse{true, false}-
displayModeStringWIREFRAME{"WIREFRAME", "BALLSTICK", "STICK", "SPACEFILL"}-
implicitHydrogenStringTERMINAL_AND_HETERO{"ALL", "OFF", "HETERO", "TERMINAL_AND_HETERO"}如果“carbonLabelVisible”值为true,“HETERO”和“TERMINAL and HETERO”值将被视为“ALL”。
backgroundColorString-CSS颜色自定义非透明颜色
circledsignBooleanfalse{true, false}在带不带电荷的正负号周围画一个圈
fogEffect3DBooleantrue{true, false}3D模式下的雾效果
mdlExportDisabledBooleanfalse{true, false}从导出对话框中删除与V2000 mdl相关的格式(Molfile, Rxnfile, RGfile, RDFile, SDFile)
{
  "carbonLabelVisible" : false,
  "atomIndicesVisible" : false,
  "atomMapsVisible" : true,
  "chiralFlagVisible"  : true,
  "valenceErrorVisible"  : true,
  "lonePairsVisible" : false,
  "cpkColoring" : true,
  "implicitHydrogen" : "TERMINAL_AND_HETERO",
  "displayMode" : "WIREFRAME",
  "backgroundColor" : "#ffffff",
  "fogEffect3D" : true,
  "mdlExportDisabled": false
 }
返回

显示设置的映射被包装成一个JavaScript对象

setDisplaySettings(JavaScriptObject jso)

应用编辑器的设置映射。检查getDisplaySettings()函数的返回值以查找完整的显示设置映射。

参数
名称类型是否必填描述
jsoObject使用getDisplaySettings罗列参数显示设置被包装到一个JavaScript对象中
jso配置项:
名称类型默认值可选值描述
carbonLabelVisibleBooleanfalse{true, false}不适用在“BALLSTICK”显示模式
chiralFlagVisibleBooleanStringtrue{true, false, "disabled"}当设置为false时,绝对立体手性标志对画布隐藏。当设置为“禁用”时,绝对立体手性标志从画布中隐藏,绝对立体属性不能再从上下文菜单中设置了。不能从“视图设置”对话框中更改立体手性标志的可见性
atomIndicesVisibleBooleanfalse{true, false}-
atomMapsVisibleBooleantrue{true, false}-
cpkColoringBooleantrue{true, false}-
valenceErrorVisibleBooleantrue{true, false}-
lonePairsVisibleBooleanfalse{true, false}-
displayModeStringWIREFRAME{"WIREFRAME", "BALLSTICK", "STICK", "SPACEFILL"}-
implicitHydrogenStringTERMINAL_AND_HETERO{"ALL", "OFF", "HETERO", "TERMINAL_AND_HETERO"}如果“carbonLabelVisible”值为true,“HETERO”和“TERMINAL and HETERO”值将被视为“ALL”
backgroundColorString--
defaultToolStringrectangleSelection{"rectangleSelection", "lassoSelection", "rotate3d"}设置默认工具
toolbarsStringstandard{"standard", "education", "reaction", "markush", "search", "basicSearch", "reporting", "view3d", "ws_view3d", "searchWithReaxys"}按给定的预定义布局呈现工具栏
copyasmrvBooleanfalse{true, false}在拷贝时选择MRV而不是MDL文件格式
lonepaircalculationenabledBooleantrue{true, false}启用自动孤对计算
circledsignBooleanfalse{true, false}在拷贝时选择MRV而不是MDL文件格式在带不带电荷的正负号周围画一个圈。
fogEffect3DBooleantrue{true, false}3D模式下的雾效果
disableContextMenuBooleanfalse{true, false}设置为true以禁用上下文菜单
multiplesgroupBooleantrue{true, false}该属性指定了在生成的分子源中如何表示具有精确重复数的重复组。如果将值设置为真,则将其表示为多组;如果值是错误的,则将这些表示为重复单元。该设置会在“导出对话框”中影响生成的分子源,并以MRV和MOL格式放置在剪贴板上的源。它可能会影响Web服务调用的结果(由Clean 2D等基于Web服务的操作触发)
mdlExportDisabledBooleanfalse{true, false}从导出对话框中删除与V2000 mdl相关的格式(Molfile, Rxnfile, RGfile, RDFile, SDFile)
 {
  "carbonLabelVisible" : false,
  "atomIndicesVisible" : false,
  "atomMapsVisible" : true,
  "chiralFlagVisible"  : true,
  "valenceErrorVisible"  : true,
  "lonePairsVisible" : false,
  "cpkColoring" : true,
  "implicitHydrogen" : "TERMINAL_AND_HETERO",
  "displayMode" : "WIREFRAME",
  "backgroundColor" : "#ffffff",
  "defaultTool" : "lassoSelection",
  "toolbars" : "standard",
  "fogEffect3D" : false,
  "mdlExportDisabled": true
 }

clear()

删除画布内容。

isEmpty()

确定画布是否为空。

返回

如果画布上没有任何内容,则为True,否则为false

pasteStructure(String format, String source, options)

返回一个用于粘贴分子源的Promise对象。如果粘贴操作成功,新结构将被添加到当前视窗中心的旧结构中。参见:importStructure(String,String)。

参数
名称类型是否必填描述
formatString输入格式getSupportedFormats()或null来自动识别格式。
sourceString分子源

getSupportedFormats()

返回一个Object对象,该对象用以下属性描述可用的导入和导出格式:"importFormats", "exportFormats"。可用格式的数量取决于是否设置了默认的web服务。

setServices(JavaScriptObject jso)

为编辑器设置服务。有关支持的服务列表,请参阅webservices.js。

参数

将服务映射到一个JavaScript对象中。属性名称对应于支持的web服务。属性值可以是表示URL的单个字符串,也可以是包含web服务的URL和协议名称的其他JavaScript对象。如果不指定协议,则取值为“default”

{
 "clean2dws" : <url of Clean2D webservice>
 "clean3dws" : <url of Clean3D webservice>
 "molconvertws" : <url of MolConvert webservice>
 "stereoinfows" : <url of CIP Stereo Info webservice>
 "reactionconvertws" : <url of Reaction converter webservice>
 "hydrogenizews" : <url of hydrogenize webservice>
 "automapperws" : <url of auto mapper webservice>
 "aromatizews" : {
  "url" : <url of aromatize webservice>
  "protocol" : <protocol of aromatize webservice>
  }
 }

addButton(JavaScriptObject jso, function())

将一个新按钮附加到指定的工具栏,并将其onClick事件与给定函数绑定。

参数
名称类型是否必填描述
jsoFunction所要添加的按钮相关的属性,如:名称、url、位置
{
  "name": "customButton", // JS String
  "image-url": "images/custom-button.png" // JS String
  "toolbar": "W" // JS String: "W" as West, "E" as East, "N" as North, "S" as South toolbar
 }

addTemplate(JavaScriptObject jso)

将一个新按钮附加到具有指定模板结构的模板工具栏。

参数
名称类型是否必填描述
jsoObject描述模板的JavaScript对象

配置项如下:

名称类型是否必填描述
structureStringMRV源的模板结构
nameString模板按钮的标题(可选,自动生成)
iconString24x24像素的按钮图标,base64编码的数据图像(可选,自动生成)
{
 "structure": "<cml><MDocument><MChemicalStruct><molecule molID="m1"><atomArray><atom id="a1" elementType="C" x2="-12.5625" y2="6.539048685882614"/><atom id="a2" elementType="C" x2="-13.808366329017026" y2="5.633832087370612"/><atom id="a3" elementType="C" x2="-13.332503911629807" y2="4.169284647450719"/><atom id="a4" elementType="C" x2="-11.792496088370193" y2="4.169284647450719"/><atom id="a5" elementType="C" x2="-11.316633670982972" y2="5.633832087370612"/></atomArray><bondArray><bond atomRefs2="a1 a2" order="1"/><bond atomRefs2="a1 a5" order="1"/><bond atomRefs2="a2 a3" order="1"/><bond atomRefs2="a3 a4" order="1"/><bond atomRefs2="a4 a5" order="1"/></bondArray></molecule></MChemicalStruct></MDocument></cml>",
 "name": "CycloPentane",
 "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBElEQVRIie3UK08DQRiF4UdW1q4CfgISW7kSRYIrihBEJQkKi0OiCKJQSVAEtRJD0CgkqYGAIhjEzCYFlr1Mi+ubfMlezpyZPd/ssGTBHOPwP4z7uME9HnCNbFHmG3jCSbzv4TQ+G8xrfoBX5BXvcjziKMV4DQXu4nWT7rZB940tTDFqqe9F7RTbTeJLIdv1tquZYRDHXtSt5B0rCeYlq3iLXpWcYW+OCXajx5/kQtNSKTRs3Z7QrH6CeYZnNfGUTKTF1BhPyaZwLHSlUP1D/iIlpgwfWsRTMsFOhwmGuOqg7xxTIfSgNX28YF/4kp81nKkRPiXsvHOMhZ1RV2M1x8OSRr4A1pQ2FuhcylgAAAAASUVORK5CYII="
 }

getSelection()

返回所选原子和键的索引。原子从1开始索引。

返回
 {
   "atoms" : "1,2,3",
   "bonds" : "1-2,2-3"
 }

setSelection(JavaScriptObject jso)

选择指定索引的键和原子(假设索引从1开始)。键由其原子的索引标识(用'-'分隔索引)。

参数
名称类型是否必填描述
jsoObject{"atoms" : "1,2,3","bonds" : "1-2,2-3"}描述要选择的原子和键的JavaScript对象

setHighlight(JavaScriptObject[] jsoArray)

覆盖编辑器中的突出显示定义。如果您想同时使用各种突出显示样式,则可以指定多个定义。该定义应包含有关样式(颜色,不透明度,大小)和范围(应使用此样式绘制的原子/债券)的信息。您可以指定原子和债券,以通过唯一ID(UID)或原子indece来突出显示。如果在几个定义中给出了原子或键,则将每个贴片用于所需的原子/键。因此,补丁可能会相互重叠

参数
名称类型是否必填描述
jsoArrayObjectJavaScript对象

配置项如下:

名称类型是否必填描述
uidsObject{atoms: [], // string array with UIDs of atombonds: [] // string array with UIDs of bond}
indexesObject{atoms: [], // string array of indeces of atombonds: [] // string array of pair of atom indeces to describe bond}
styleObject{color: , // CSS color (rgb, rgba, hsl, hsla, hexa or web-safe color name)opacity: // value between 0.0 and 1.0 (default value is 1.0), if color has alpha value (rgb, rgba) this field is ignored.size: // size of the patch that is relative to the selection patch, 1.0 means the same patch than the selection.}

在下面的示例中,有两个定义,第一个定义由uid指定原子和键,第二个定义使用原子索引。在第一种情况下,颜色包含alpha值,所以不透明度属性在这种情况下是不必要的。在第二种情况下,定义了粉红色,并显式指定了所需的不透明度。

sketch.setHighlight( [
   {
     uids: { atoms: ["e2ff0039baee12e2", "be3f1024c1f5e3f1"], bonds: ["3e1a21c74df9ae81"] },
     style: { color: "rgba(20,230,50, 0.5)", size: 0.8 }
   },
   {
     indexes: { atoms: ["1","2","3"], bonds: ["1-2","1-3"] },
     style: { color: "pink", opacity: 0.6, size: 0.8 }
   }
 ] );

addMolImportListener(function(String))

为mol导入事件注册侦听器。当通过用户界面(打开对话框,粘贴或拖放操作)加载分子源时触发该事件。

参数
名称类型是否必填描述
callbackFunction回调——这个函数在事件发生后执行。分子源作为字符串参数传递给函数。

off(function(String))

为mol导入事件取消注册一个或多个事件处理程序。

参数
名称类型是否必填描述
callbackFunction回调-先前附加的要删除的事件处理程序函数的引用。当值为空时,将删除所有事件处理程序。

on(String eventType, function())

将指定事件的事件处理程序函数附加到编辑器。支持事件

参数
名称类型是否必填描述
eventTypeString- "molchange": molecule change events
  • "selectionchange": selection change events
  • "undo": events when undo is performed
  • "redo": events when redo is performed | | callback | Function | 是 | | 回调-此函数在指定的事件被调用后执行。 |

off(String eventType, function())

将指定事件的一个或多个事件处理程序删除到编辑器。

参数
名称类型是否必填描述
eventTypeString事件类型(接受与on(String,function())相同的类型)
callbackFunction回调-先前附加的事件处理程序函数的引用,用于删除或null以删除指定事件的所有事件处理程序

exportStructure(String format, JavaScriptObject optionsJso)

返回一个Promise对象来访问分子源。

参数
名称类型是否必填描述
formatString输出格式,格式参数参照getSupportedFormats()方法返回的值
optionsJsoObject一个描述导出的进一步选项(可选)的JavaScript对象。- PNG或JPEG:与Marvin.imageExporter.mrvtodataurl的OptionalSettings参数相同(字符串,字符串,JavascriptObject)
  • 任何化学格式:额外:它强制使用Web服务转换,并将此属性的值分配为输出格式的参数。例如,exportsucture('mrv',{'extra':'+h'})将在Web服务请求中显示为{'parameters':'MRV:+H',...}。请咨询Web服务的Web服务文档,Web服务接受了哪些选项。多重组:它指定如何表示重复是生成分子源中的数字时的S组。如果该值为false,则将它们表示为SRU S组。- MRV:仅接受Hasuid财产。如果是正确的,则将原子/债券UID导出为原子/债券属性(_MJS :: UID)。它的默认值是错误的。 |
返回

Promise object

importStructure(String format, String source, options)

返回一个Promise对象来导入一个分子源。如果导入操作成功,旧的结构将被新的结构所取代。参见:pasteStructure(String,String)。

参数
名称类型是否必填描述
formatString输入格式getSupportedFormats()或null来自动识别格式。
sourceString分子源
optionsObject
返回

Promise object

setAutoChirality(boolean enable)

设置自动手性模式。当您激活它时,在当前结构上设置手性标志,并在以后的每个导入结构上强制它。

参数
名称类型是否必填描述
enableBooleanTrue为激活该特性,false为停用该特性(默认行为)