Commit 1e02b130 by Jaime RG

Force cubic geometry by default

parent 24e8991d
...@@ -26,10 +26,18 @@ function validateForm() { ...@@ -26,10 +26,18 @@ function validateForm() {
function applyPaddingToWaterBox(padding) { function applyPaddingToWaterBox(padding) {
padding = parseFloat(padding); padding = parseFloat(padding);
if(!padding || padding<0) padding = 0; if(!padding || padding<0) padding = 0;
for (var i = pbcxyz.length; i--;) { if (document.getElementById('cubicPaddingCheckBox').checked){
pbcxyz[i].value = Math.ceil((padding+molxyz[i])*1000) / 1000; var maxAxis = Math.max.apply(Math, molxyz);
for (var i = pbcxyz.length; i--;) {
pbcxyz[i].value = Math.ceil((padding+maxAxis)*1000) / 1000;
}
}
else {
for (var i = pbcxyz.length; i--;) {
pbcxyz[i].value = Math.ceil((padding+molxyz[i])*1000) / 1000;
}
} }
} }
</script> </script>
<form id="mainform" method="post" action="/"> <form id="mainform" method="post" action="/">
<h1>Delete Heterogens</h1> <h1>Delete Heterogens</h1>
...@@ -51,12 +59,15 @@ Add a water box surrounding the model? ...@@ -51,12 +59,15 @@ Add a water box surrounding the model?
<div id="waterInputs" style="margin-left:50px"> <div id="waterInputs" style="margin-left:50px">
<table style="text-align:right"> <table style="text-align:right">
<tr> <tr>
<td>Box dimensions (in nm):</td> <td>Type box dimensions (in nm):</td>
<td><input type="text" id="boxxfield" name="boxx" size="8"></td> <td><input type="text" id="boxxfield" name="boxx" size="8"></td>
<td><input type="text" id="boxyfield" name="boxy" size="8"></td> <td><input type="text" id="boxyfield" name="boxy" size="8"></td>
<td><input type="text" id="boxzfield" name="boxz" size="8"></td> <td><input type="text" id="boxzfield" name="boxz" size="8"></td>
<td>Padding:</td> </tr>
<tr>
<td>... or set them from padding:</td>
<td><input type="text" id="xyzpadding" name="xyzpad" size="8" oninput="applyPaddingToWaterBox(this.value)"></td> <td><input type="text" id="xyzpadding" name="xyzpad" size="8" oninput="applyPaddingToWaterBox(this.value)"></td>
<td colspan="2"><input type="checkbox" id="cubicPaddingCheckBox" name="cubicPaddingCheckBox" checked>Force cubic geometry <span title="All sides are equal to the biggest dimension plus padding" style="border-bottom: 1px dotted black; cursor: help">?</span></td>
</tr> </tr>
%s %s
</table> </table>
...@@ -75,7 +86,7 @@ Add a water box surrounding the model? ...@@ -75,7 +86,7 @@ Add a water box surrounding the model?
<script> <script>
setCurrentStep(6); setCurrentStep(6);
enableControls(document.getElementById('waterInputs'), false); enableControls(document.getElementById('waterInputs'), false);
var molxyz = [].slice.call(document.getElementById('waterInputs').getElementsByTagName('tr')[1].getElementsByTagName('td')).splice(1,3).map(function(td){ return parseFloat(td.textContent)}); var molxyz = [].slice.call(document.getElementById('boxContainingAllAtoms').getElementsByTagName('td')).splice(1,3).map(function(td){ return parseFloat(td.textContent)});
var pbcxyz = [document.getElementById('boxxfield'), document.getElementById('boxyfield'), document.getElementById('boxzfield')]; var pbcxyz = [document.getElementById('boxxfield'), document.getElementById('boxyfield'), document.getElementById('boxzfield')];
</script> </script>
</body> </body>
......
...@@ -219,7 +219,7 @@ def displayAddHydrogensPage(): ...@@ -219,7 +219,7 @@ def displayAddHydrogensPage():
if fixer.topology.getUnitCellDimensions() is not None: if fixer.topology.getUnitCellDimensions() is not None:
dimensions = "<tr><td>Crystallographic unit cell:</td><td>%.3f</td><td>%.3f</td><td>%.3f</td></tr>" % fixer.topology.getUnitCellDimensions().value_in_unit(unit.nanometer) dimensions = "<tr><td>Crystallographic unit cell:</td><td>%.3f</td><td>%.3f</td><td>%.3f</td></tr>" % fixer.topology.getUnitCellDimensions().value_in_unit(unit.nanometer)
sizeRange = tuple(max((pos[i] for pos in fixer.positions))-min((pos[i] for pos in fixer.positions)) for i in range(3)) sizeRange = tuple(max((pos[i] for pos in fixer.positions))-min((pos[i] for pos in fixer.positions)) for i in range(3))
dimensions += "<tr><td>Box containing all atoms:</td><td>%.3f</td><td>%.3f</td><td>%.3f</td></tr>" % tuple(x.value_in_unit(unit.nanometer) for x in sizeRange) dimensions += "<tr id='boxContainingAllAtoms'><td>Box containing all atoms:</td><td>%.3f</td><td>%.3f</td><td>%.3f</td></tr>" % tuple(x.value_in_unit(unit.nanometer) for x in sizeRange)
uiserver.setContent(header+loadHtmlFile("addHydrogens.html") % dimensions) uiserver.setContent(header+loadHtmlFile("addHydrogens.html") % dimensions)
def displaySaveFilePage(): def displaySaveFilePage():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment