isValid static method
- String smiles
Validate if a SMILES string is valid
Implementation
static bool isValid(String smiles) {
// Very basic validation
if (smiles.isEmpty) return false;
// Check for balanced parentheses
int openParens = 0;
for (int i = 0; i < smiles.length; i++) {
if (smiles[i] == '(') openParens++;
if (smiles[i] == ')') {
openParens--;
if (openParens < 0) return false;
}
}
if (openParens != 0) return false;
// Check for balanced square brackets
int openBrackets = 0;
for (int i = 0; i < smiles.length; i++) {
if (smiles[i] == '[') openBrackets++;
if (smiles[i] == ']') {
openBrackets--;
if (openBrackets < 0) return false;
}
}
if (openBrackets != 0) return false;
// Check that the SMILES contains at least one atom
final atomRegex = RegExp(r'Br|Cl|[BCNOPSFIbcnopsi]|(\[[^\]]+\])');
if (!atomRegex.hasMatch(smiles)) return false;
return true;
}