Skip to content
Snippets Groups Projects
Commit 74112140 authored by Katja's avatar Katja
Browse files

so dinge halt

parent c3b30044
No related branches found
No related tags found
2 merge requests!10Output,!9Main
......@@ -11,7 +11,8 @@ var svg = d3.select("svg.graph")
.call(zoom),
width = svg.attr("width"),
height = svg.attr("height");
var textinfo='';
var textabstract='';
/**
* creates node object and associated attributes
*/
......@@ -179,7 +180,7 @@ function updateNodes(nodes) {
node.append("circle")
.attr("class", "circle")
.attr("r", function(d) {return r+d.citations*0.1})
.attr("r", function(d) {return 1.5*r+d.citations*0.05})
.style("fill", function(d){ return color(d.group)})
.on('click', clickNode);
......@@ -197,11 +198,11 @@ function updateNodes(nodes) {
* @param {string} target - target-node
*/
function updateMarker(color, target) {
var radius = r+target.citations*0.1;
svg.append('defs').append('marker') //arrowhead
var radius=1.5*r+target.citations*0.05
svg.append('defs').append('marker')//arrowhead
.attr('id',color.replace("#", "")+radius)
.attr('viewBox','-0 -5 10 10')
.attr('refX',radius+10)
.attr('refX',radius+9.5)
.attr('refY',0)
.attr('orient','auto')
.attr('markerWidth',10)
......@@ -209,7 +210,7 @@ function updateMarker(color, target) {
.attr('xoverflow','visible')
.append('svg:path')
.attr('d', 'M 0,-5 L 10 ,0 L 0,5')
.attr('fill', color) //arrowhead color
.attr('fill', color)//arrowhead color
.style('stroke','none');
return "url(" + color + radius + ")";
};
......@@ -226,6 +227,8 @@ function clickNode(node) {
d3.select(this.parentNode).selectAll(".circle").style("stroke","black")
marklink(node)
textfunc(node)
resetbuttonhighlight()
highlightbutton("overview")
}
/**
......@@ -236,6 +239,9 @@ function clickRect() {
d3.selectAll(".link")
.style("stroke", "#999")
.attr('marker-end', function(d) {return updateMarker('#999', d.target);})
textabstract='';
textinfo='';
resetbuttonhighlight()
document.getElementById('textbox').innerHTML = "Click node";
}
......@@ -294,10 +300,36 @@ function firstauthor(authors){
* @param {object} node - data of current node
*/
function textfunc(node){
document.getElementById('textbox').innerHTML = "Title:" + '</br>' + node.name +
textinfo="Title:" + '</br>' + node.name +
'</br>' +'</br>'+"Author:"+ '</br>' +node.author+'</br>'+'</br>'+"Year:"+'</br>'
+node.year+'</br>'+'</br>'+"doi:"+'</br>'+'<a href="'+node.doi+ '">'+node.doi
+'</a>'+'</br>'+'</br>'+"Citations:"+'</br>'+node.citations;
textabstract=node.abstract;
document.getElementById('textbox').innerHTML = textinfo;
}
function highlightbutton(btn){
resetbuttonhighlight();
document.getElementById(btn).style.background="#DCDCDC";
}
function resetbuttonhighlight(){
document.getElementById("overview").style.background='';
document.getElementById("abstract").style.background='';
}
function displayabstract(a){
if(textabstract=='' && textinfo==''){
document.getElementById('textbox').innerHTML="Click node";
}
else{
if (a==true){
document.getElementById('textbox').innerHTML =textabstract;
}
else{
document.getElementById('textbox').innerHTML =textinfo;
}
}
}
/**
......
......@@ -27,6 +27,23 @@
button.save{
margin-left: 330px;
}
button.abstract{
width:146px;
position:absolute;
top: 181px;
left: 1114px;
border-radius:0;
border:1px solid #909090;
}
button.overview{
width:147px;
position:absolute;
display:inline-block;
top: 181px;
left: 968px;
border-radius:0;
border:1px solid #909090;
}
div.legendbox {
width:270px;
......@@ -75,6 +92,9 @@
<button class="resetZoom" onclick="resetZoom()">Reset zoom</button>
<button class="center" onclick="center()">Center</button>
<button class="save" onclick="savesvg()">Save</button>
<button id="overview" class="overview" onclick='displayabstract(false),highlightbutton("overview")'>Overview</button>
<button id="abstract" class="abstract" onclick='displayabstract(true),highlightbutton("abstract")'>Abstract</button>
<!-- link D3 (version 5) -->
<script src="https://d3js.org/d3.v5.min.js"></script>
......
......@@ -6,7 +6,8 @@
"year":"1997",
"doi": "https://doi.org/10.1021/acs.jcim.9b00249",
"group": "input",
"citations": 0
"citations": 0,
"abstract":"Ehmki ein langer text"
},
{
"name": "Combining Machine Learning and Computational Chemistry for Predictive Insights Into Chemical Systems ",
......@@ -14,7 +15,8 @@
"year":"1937",
"doi": "https://doi.org/10.1021/acs.chemrev.1c00107",
"group": "citing",
"citations": 140
"citations": 140,
"abstract":"Keit ein langer text"
},
{
"name": "Disconnected Maximum Common Substructures under Constraints ",
......@@ -22,7 +24,8 @@
"year":"1991",
"doi": "https://doi.org/10.1021/acs.jcim.0c00741",
"group": "citing",
"citations": 300
"citations": 300,
"abstract":"Schmidt ein langer text"
},
{
"name": "Evolution of Novartis\u2019 Small Molecule Screening Deck Design ",
......@@ -30,7 +33,8 @@
"year":"2001",
"doi": "https://doi.org/10.1021/acs.jmedchem.0c01332",
"group": "input",
"citations": 250
"citations": 250,
"abstract":"Schuffenhauer ein langer text"
},
{
"name": "Comparing Molecular Patterns Using the Example of SMARTS: Theory and Algorithms ",
......@@ -38,7 +42,8 @@
"year":"2021",
"doi": "https://doi.org/10.1021/acs.jcim.9b00250",
"group": "cited",
"citations": 130
"citations": 130,
"abstract":"Schmidt ein langer text"
},
{
"name": "Machine learning accelerates quantum mechanics predictions of molecular crystals ",
......@@ -46,7 +51,8 @@
"year":"2011",
"doi": "https://doi.org/10.1016/j.physrep.2021.08.002",
"group": "cited",
"citations": 170
"citations": 170,
"abstract":"Han ein langer text"
},
{
"name": "The Growing Importance of Chirality in 3D Chemical Space Exploration and Modern Drug Discovery Approaches for Hit-ID ",
......@@ -54,7 +60,8 @@
"year":"2001",
"doi": "https://doi.org/10.1021/acsmedchemlett.1c00251",
"group": "cited",
"citations": 210
"citations": 210,
"abstract":"Silvestri ein langer text"
},
{
"name": "Target-Based Evaluation of \u201cDrug-Like\u201d Properties and Ligand Efficiencies ",
......@@ -62,7 +69,8 @@
"year":"2003",
"doi": "https://doi.org/10.1021/acs.jmedchem.1c00416",
"group": "cited",
"citations": 10
"citations": 10,
"abstract":"Leeson ein langer text"
},
{
"name": "BonMOLi\u00e8re: Small-Sized Libraries of Readily Purchasable Compounds, Optimized to Produce Genuine Hits in Biological Screens across the Protein Space ",
......@@ -70,7 +78,8 @@
"year":"2003",
"doi": "https://doi.org/10.3390/ijms22157773",
"group": "cited",
"citations": 80
"citations": 80,
"abstract":"Mathai ein langer text"
},
{
"name": "Accelerating high-throughput virtual screening through molecular pool-based active learning ",
......@@ -78,7 +87,8 @@
"year":"2013",
"doi": "https://doi.org/10.1039/D0SC06805E",
"group": "cited",
"citations": 60
"citations": 60,
"abstract":"Graff ein langer text"
},
{
"name": "Compound Screening ",
......@@ -86,7 +96,8 @@
"year":"2009",
"doi": "https://doi.org/10.1016/B978-0-12-820472-6.00078-5",
"group": "citing",
"citations": 280
"citations": 280,
"abstract":"Numao ein langer text"
}
],
"links": [
......
......@@ -11,6 +11,8 @@ var svg = d3.select("svg")
.call(zoom),
width = svg.attr("width"),
height = svg.attr("height");
var textinfo='';
var textabstract='';
/**
* creates node object and associated attributes
......@@ -22,7 +24,10 @@ color = d3.scaleOrdinal()
.range([' #01d7c0', ' #8b90fe ', ' #a15eb2 ']),
yscale = d3.scaleOrdinal()
.domain(["citing", "input", "cited"])
.range([50, height/2, height-50]),
.range([0, 200, 400]),
linetype=d3.scaleOrdinal()
.domain(["line","dotted"])
.range([("8,0"),("8,8")]),
toRemove;
/**
......@@ -42,6 +47,59 @@ var rect = svg.append("rect")
.style("fill", 'white')
.on('click', clickRect);
/**
* creates svg object (legend) and associated attributes
*/
var svglegend = d3.select("svg.legendsvg"),
legendposition = [65,95,125],
arrowlegendposition = [0,25],
arrowgroupnames = ["citation","self-citation"],
groupnames = ["citing","input","cited"];
var legend = svglegend.selectAll(".legend")
.data(legendposition)
.enter()
.append("g")
.attr("class","legend")
.attr("transform", function(d,i) {return "translate(0," + d + ")"; });
legend.append("text")
.attr("x", 80)
.attr("y", 0)
.attr("dy", ".35em")
.style("text-anchor", "start")
.text(function(d,i){return groupnames[i]});
legend.append("circle")
.attr("r", r)
.attr("cx",30-r)
.style("fill", color);
var legendarrow = svglegend.selectAll(".legendarr")
.data(arrowlegendposition)
.enter()
.append("g")
.attr("class","legendarr")
.attr("transform", function(d) { return "translate(0," + d + ")"; });
legendarrow.append("line")
.attr("x1", 10)
.attr("x2", 50)
.attr("y1", 10)
.attr("y2", 10)
.style("stroke-dasharray",linetype)
.style("stroke", '#999')
.style("stroke-width", "1px")
.style('pointer-events', 'none')
.attr('marker-end',updateMarker('#999',this));
legendarrow.append("text")
.attr("x", 80)
.attr("y", 10)
.attr("dy", ".35em")
.style("text-anchor", "start")
.text(function(d,i){return arrowgroupnames[i]});
/**
* creates a new simulation
* arranges the nodes according to their group on the y-axis
......@@ -95,7 +153,7 @@ d3.json("json_text.json").then(function(graph) {
* @param {object} nodes - nodes
* @param {object} links - links
*/
function update(links, nodes) {
function update(links, nodes) { //THISS
updateXAxis(nodes);
updateLinks(links);
updateNodes(nodes);
......@@ -106,12 +164,13 @@ function update(links, nodes) {
simulation.force("link")
.links(links);
d3.selectAll(".link")
.attr('marker-end', function(d) {return updateMarker("#999", d.target);});
link
.attr('marker-end', function(d) {return updateMarker("#999", d.target);})
.style("stroke-dasharray",function(d){return self_cit(d.source,d.target)? ("8,8"): ("1,0")});
}
/**
* initializes and shows xAxis
* initializes and shows xAxis THISS
* @param {object} nodes - nodes
*/
function updateXAxis(nodes) {
......@@ -166,7 +225,7 @@ function updateNodes(nodes) {
node.append("circle")
.attr("class", "circle")
.attr("r", function(d) {return r+d.citations*0.1})
.attr("r", function(d) {return 1.5*r+d.citations*0.05})
.style("fill", function(d){ return color(d.group)})
.on('click', clickNode);
......@@ -184,11 +243,11 @@ function updateNodes(nodes) {
* @param {string} target - target-node
*/
function updateMarker(color, target) {
var radius = r+target.citations*0.1;
var radius=1.5*r+target.citations*0.05
svg.append('defs').append('marker')//arrowhead
.attr('id',color.replace("#", "")+radius)
.attr('viewBox','-0 -5 10 10')
.attr('refX',radius+10)
.attr('refX',radius+9.5)
.attr('refY',0)
.attr('orient','auto')
.attr('markerWidth',10)
......@@ -213,6 +272,8 @@ function clickNode(node) {
d3.select(this.parentNode).selectAll(".circle").style("stroke","black")
marklink(node)
textfunc(node)
resetbuttonhighlight()
highlightbutton("overview")
}
/**
......@@ -226,6 +287,19 @@ function clickRect() {
document.getElementById('textbox').innerHTML = "Click node";
}
function create_author_array(authors){
authorarray = authors.split(",")
authorarray = authorarray.map(elem =>{return elem.trim();})
return authorarray
}
function self_cit(source,target){
sourceauthors = create_author_array(source.author)
targetauthors = create_author_array(target.author)
return sourceauthors.some(item=>targetauthors.includes(item))
}
/**
* sets color of link (line and arrowhead) to black if it is directly connected to node
* and to grey otherwise
......@@ -248,6 +322,7 @@ function isLinkForNode(node, link){
return link.source.index == node.index || link.target.index == node.index;
}
/**
* returns last name of first author
* @param {string} authors - the comma-separated string of authors
......@@ -267,12 +342,39 @@ function firstauthor(authors){
* @param {object} node - data of current node
*/
function textfunc(node){
document.getElementById('textbox').innerHTML = "Title:" + '</br>' + node.name +
textinfo="Title:" + '</br>' + node.name +
'</br>' +'</br>'+"Author:"+ '</br>' +node.author+'</br>'+'</br>'+"Year:"+'</br>'
+node.year+'</br>'+'</br>'+"doi:"+'</br>'+'<a href="'+node.doi+ '">'+node.doi
+'</a>'+'</br>'+'</br>'+"Citations:"+'</br>'+node.citations;
textabstract=node.abstract;
document.getElementById('textbox').innerHTML = textinfo;
}
function highlightbutton(btn){
resetbuttonhighlight();
document.getElementById(btn).style.background="#DCDCDC";
}
function resetbuttonhighlight(){
document.getElementById("overview").style.background='';
document.getElementById("abstract").style.background='';
}
function displayabstract(a){
if(textabstract=='' && textinfo==''){
document.getElementById('textbox').innerHTML="Click node";
}
else{
if (a==true){
document.getElementById('textbox').innerHTML =textabstract;
}
else{
document.getElementById('textbox').innerHTML =textinfo;
}
}
}
/**
* updates the positions of the links and nodes
*/
......@@ -347,4 +449,115 @@ function resetZoom() {
function center() {
d3.select('svg')
.call(zoom.translateTo, 0.5 * width, 0.5 * height);
}
function savesvg(){
var svgString = getSVGString(d3.select("svg.legendsvg").node());
svgString2Image( svgString, 2*width, 2*height, 'png', save ); // passes Blob and filesize String to the callback
function save( dataBlob, filesize ){
saveAs( dataBlob, 'D3 vis exported to PNG.png' ); // FileSaver.js function
}
};
// Below are the functions that handle actual exporting:
// getSVGString ( svgNode ) and svgString2Image( svgString, width, height, format, callback )
function getSVGString( svgNode ) {
svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink');
var cssStyleText = getCSSStyles( svgNode );
appendCSS( cssStyleText, svgNode );
var serializer = new XMLSerializer();
var svgString = serializer.serializeToString(svgNode);
svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace
svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix
return svgString;
function getCSSStyles( parentElement ) {
var selectorTextArr = [];
// Add Parent element Id and Classes to the list
selectorTextArr.push( '#'+parentElement.id );
for (var c = 0; c < parentElement.classList.length; c++)
if ( !contains('.'+parentElement.classList[c], selectorTextArr) )
selectorTextArr.push( '.'+parentElement.classList[c] );
// Add Children element Ids and Classes to the list
var nodes = parentElement.getElementsByTagName("*");
for (var i = 0; i < nodes.length; i++) {
var id = nodes[i].id;
if ( !contains('#'+id, selectorTextArr) )
selectorTextArr.push( '#'+id );
var classes = nodes[i].classList;
for (var c = 0; c < classes.length; c++)
if ( !contains('.'+classes[c], selectorTextArr) )
selectorTextArr.push( '.'+classes[c] );
}
// Extract CSS Rules
var extractedCSSText = "";
for (var i = 0; i < document.styleSheets.length; i++) {
var s = document.styleSheets[i];
try {
if(!s.cssRules) continue;
} catch( e ) {
if(e.name !== 'SecurityError') throw e; // for Firefox
continue;
}
var cssRules = s.cssRules;
for (var r = 0; r < cssRules.length; r++) {
if ( contains( cssRules[r].selectorText, selectorTextArr ) )
extractedCSSText += cssRules[r].cssText;
}
}
return extractedCSSText;
function contains(str,arr) {
return arr.indexOf( str ) === -1 ? false : true;
}
}
function appendCSS( cssText, element ) {
var styleElement = document.createElement("style");
styleElement.setAttribute("type","text/css");
styleElement.innerHTML = cssText;
var refNode = element.hasChildNodes() ? element.children[0] : null;
element.insertBefore( styleElement, refNode );
}
}
function svgString2Image( svgString, width, height, format, callback ) {
var format = format ? format : 'png';
var imgsrc = 'data:image/svg+xml;base64,'+ btoa( unescape( encodeURIComponent( svgString ) ) ); // Convert SVG string to data URL
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
canvas.width = width;
canvas.height = height;
var image = new Image();
image.onload = function() {
context.clearRect ( 0, 0, width, height );
context.drawImage(image, 0, 0, width, height);
canvas.toBlob( function(blob) {
var filesize = Math.round( blob.length/1024 ) + ' KB';
if ( callback ) callback( blob, filesize );
});
};
image.src = imgsrc;
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style type="text/css">
button {
width: 100px;
height:20px;
display: flex;
justify-content: center;
position: absolute;
left: 430px;
top: 575px;
}
button.resetGraph {}
button.resetZoom {
margin-left: 110px;
}
button.center {
margin-left: 220px;
}
button.save{
margin-left: 330px;
}
button.abstract{
width:146px;
position:absolute;
top: 181px;
left: 1114px;
border-radius:0;
border:1px solid #909090;
}
button.overview{
width:147px;
position:absolute;
display:inline-block;
top: 181px;
left: 968px;
border-radius:0;
border:1px solid #909090;
}
div.legendbox {
width:270px;
height:170px;
padding: 10px;
/*border: 1px solid #999;*/
position: absolute;
top: 10px;
left: 968px;
display: inline-block;
margin: 0;
}
div.textbox{
width:270px;
min-height:200px;
max-height:370px;
padding: 10px;
border: 1px solid #999;
position: absolute;
top: 200px;
left: 968px;
display: inline-block;
overflow-y: scroll;
margin: 0;
}
</style>
</head>
<body>
<!-- for testing -->
<p id="id"></p> <!--for commenting with document.getElementById("id").innerHTML = "text"; -->
<!-- graph -->
<svg class="graph" width="960" height="560"></svg>
<!-- legend -->
<div class="legendbox"> <svg class="legendsvg"></svg></div>
<!-- textbox -->
<div class="textbox" id = "textbox">Click node</div>
<!-- reset buttons -->
<!-- <button onclick="javascript:location.reload();">Reload</button>-->
<button class="resetGraph" onclick="resetGraph()">Reset graph</button>
<button class="resetZoom" onclick="resetZoom()">Reset zoom</button>
<button class="center" onclick="center()">Center</button>
<button class="save" onclick="savesvg()">Save</button>
<button id="overview" class="overview" onclick='displayabstract(false),highlightbutton("overview")'>Overview</button>
<button id="abstract" class="abstract" onclick='displayabstract(true),highlightbutton("abstract")'>Abstract</button>
<!-- link D3 (version 5) -->
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.13.0/d3-legend.js"></script>
<script src="https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js"></script>
<script src="https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js"></script>
<script type="text/javascript" src="cn_Zeitstrahl.js"></script>
</body>
</html>
\ No newline at end of file
......@@ -2,91 +2,102 @@
"nodes": [
{
"name": "Comparing Molecular Patterns Using the Example of SMARTS: Applications and Filter Collection Analysis",
"author":"Emanuel S. R. Ehmki,Robert Schmidt, Farina Ohm, Matthias Rarey",
"year":"2001",
"author":"Emanuel S. R. Ehmki,Robert Schmidt, Farina Ohm, Matthias Rarey",
"year":"1997",
"doi": "https://doi.org/10.1021/acs.jcim.9b00249",
"group": "input",
"citations": 0
"citations": 0,
"abstract":"Ehmki ein langer text"
},
{
"name": "Combining Machine Learning and Computational Chemistry for Predictive Insights Into Chemical Systems ",
"author": "John A. Keith, Valentin Vassilev-Galindo, Bingqing Cheng, Stefan Chmiela, Michael Gastegger, Klaus-Robert M\u00fcller, Alexandre Tkatchenko. ",
"year":"1967",
"author": "John A. Keith, Valentin Vassilev-Galindo, Bingqing Cheng, Stefan Chmiela, Michael Gastegger, Klaus-Robert M\u00fcller, Alexandre Tkatchenko ",
"year":"1937",
"doi": "https://doi.org/10.1021/acs.chemrev.1c00107",
"group": "citing",
"citations": 140
"citations": 140,
"abstract":"Keit ein langer text"
},
{
"name": "Disconnected Maximum Common Substructures under Constraints ",
"author": "Robert Schmidt, Florian Krull, Anna Lina Heinzke, Matthias Rarey. ",
"author": "Robert Schmidt, Florian Krull, Anna Lina Heinzke,Emanuel S. R. Ehmki, Matthias Rarey ",
"year":"1991",
"doi": "https://doi.org/10.1021/acs.jcim.0c00741",
"group": "citing",
"citations": 300
"citations": 300,
"abstract":"Schmidt ein langer text"
},
{
"name": "Evolution of Novartis\u2019 Small Molecule Screening Deck Design ",
"author": "Ansgar Schuffenhauer, Nadine Schneider, Samuel Hintermann, Douglas Auld, Jutta Blank, Simona Cotesta, Caroline Engeloch, Nikolas Fechner, Christoph Gaul, Jerome Giovannoni, Johanna Jansen, John Joslin, Philipp Krastel, Eugen Lounkine, John Manchester, Lauren G. Monovich, Anna Paola Pelliccioli, Manuel Schwarze, Michael D. Shultz, Nikolaus Stiefl, Daniel K. Baeschlin. ",
"year":"1990",
"author": "Ansgar Schuffenhauer, Nadine Schneider, Samuel Hintermann, Douglas Auld, Jutta Blank, Simona Cotesta, Caroline Engeloch, Nikolas Fechner, Christoph Gaul, Jerome Giovannoni, Johanna Jansen, John Joslin, Philipp Krastel, Eugen Lounkine, John Manchester, Lauren G. Monovich, Anna Paola Pelliccioli, Manuel Schwarze, Michael D. Shultz, Nikolaus Stiefl, Daniel K. Baeschlin ",
"year":"2001",
"doi": "https://doi.org/10.1021/acs.jmedchem.0c01332",
"group": "input",
"citations": 250
"citations": 250,
"abstract":"Schuffenhauer ein langer text"
},
{
"name": "Comparing Molecular Patterns Using the Example of SMARTS: Theory and Algorithms ",
"author": "Robert Schmidt, Emanuel S. R. Ehmki, Farina Ohm, Hans-Christian Ehrlich, Andriy Mashychev, Matthias Rarey. ",
"author": "Robert Schmidt, Emanuel S. R. Ehmki, Farina Ohm, Hans-Christian Ehrlich, Andriy Mashychev, Matthias Rarey ",
"year":"2021",
"doi": "https://doi.org/10.1021/acs.jcim.9b00250",
"group": "cited",
"citations": 130
"citations": 130,
"abstract":"Schmidt ein langer text"
},
{
"name": "Machine learning accelerates quantum mechanics predictions of molecular crystals ",
"author": "Yanqiang Han, Imran Ali, Zhilong Wang, Junfei Cai, Sicheng Wu, Jiequn Tang, Lin Zhang, Jiahao Ren, Rui Xiao, Qianqian Lu, Lei Hang, Hongyuan Luo, Jinjin Li. ",
"author": "Yanqiang Han, Imran Ali, Zhilong Wang, Junfei Cai, Sicheng Wu, Jiequn Tang, Lin Zhang, Jiahao Ren, Rui Xiao, Qianqian Lu, Lei Hang, Hongyuan Luo, Jinjin Li ",
"year":"2011",
"doi": "https://doi.org/10.1016/j.physrep.2021.08.002",
"group": "cited",
"citations": 170
"citations": 170,
"abstract":"Han ein langer text"
},
{
"name": "The Growing Importance of Chirality in 3D Chemical Space Exploration and Modern Drug Discovery Approaches for Hit-ID ",
"author": "Ilaria Proietti Silvestri, Paul J. J. Colbon. ",
"author": "Ilaria Proietti Silvestri, Robert Schmidt,Nadine Schneider ,Paul J. J. Colbon ",
"year":"2001",
"doi": "https://doi.org/10.1021/acsmedchemlett.1c00251",
"group": "cited",
"citations": 210
"citations": 210,
"abstract":"Silvestri ein langer text"
},
{
"name": "Target-Based Evaluation of \u201cDrug-Like\u201d Properties and Ligand Efficiencies ",
"author": "Paul D. Leeson, A. Patricia Bento, Anna Gaulton, Anne Hersey, Emma J. Manners, Chris J. Radoux, Andrew R. Leach. ",
"author": "Paul D. Leeson,Ansgar Schuffenhauer, A. Patricia Bento, Anna Gaulton, Anne Hersey, Emma J. Manners, Chris J. Radoux, Andrew R. Leach ",
"year":"2003",
"doi": "https://doi.org/10.1021/acs.jmedchem.1c00416",
"group": "cited",
"citations": 10
"citations": 10,
"abstract":"Leeson ein langer text"
},
{
"name": "BonMOLi\u00e8re: Small-Sized Libraries of Readily Purchasable Compounds, Optimized to Produce Genuine Hits in Biological Screens across the Protein Space ",
"author": "Neann Mathai, Conrad Stork, Johannes Kirchmair. ",
"author": "Neann Mathai, Conrad Stork, Johannes Kirchmair ",
"year":"2003",
"doi": "https://doi.org/10.3390/ijms22157773",
"group": "cited",
"citations": 80
"citations": 80,
"abstract":"Mathai ein langer text"
},
{
"name": "Accelerating high-throughput virtual screening through molecular pool-based active learning ",
"author": "David E. Graff, Eugene I. Shakhnovich, Connor W. Coley. ",
"author": "David E. Graff, Eugene I. Shakhnovich, Connor W. Coley ",
"year":"2013",
"doi": "https://doi.org/10.1039/D0SC06805E",
"group": "cited",
"citations": 60
"citations": 60,
"abstract":"Graff ein langer text"
},
{
"name": "Compound Screening ",
"author": "Shin Numao.",
"author": "Shin Numao",
"year":"2009",
"doi": "https://doi.org/10.1016/B978-0-12-820472-6.00078-5",
"group": "citing",
"citations": 280
"citations": 280,
"abstract":"Numao ein langer text"
}
],
"links": [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment