chem_nor 0.5.1
chem_nor: ^0.5.1 copied to clipboard
Dart package that finds relevant chemical compounds using AI(Gemini) and PubChem. Use it to level up your chemistry knowledge and chat with your Ai chemist!
example/main.dart
import 'package:chem_nor/chem_nor.dart';
void main() async {
print(ChemNOR.availableModels);
final finder = ChemNOR(genAiApiKey: "key", model: GeminiModel.gemini2_5Pro);
dynamic properties = await finder.getCompoundProperties(248);
print(properties);
dynamic list = await finder.getSubstructureCids('CC');
print(list);
final smiles = await finder.getRelevantSmiles('carboxylic acid compounds');
print(smiles);
dynamic chat = await finder.chemist('hello , please educate me about carboxymethyl(trimethyl)ammonium ');
print(chat);
dynamic propertie = await finder.findListOfCompoundsJSN('carboxylic acid compounds');
print(propertie);
final elements = parseFormula('H2SO4');
print(elements);
final iupacName = await generateIupacName('CCO');
print(iupacName);
final weight = calculateMolecularWeight('H2O');
print('Water molecular weight: $weight g/mol');
final oxygen = PeriodicTable.getBySymbol('O');
print('Oxygen: atomic number ${oxygen?.atomicNumber}, mass ${oxygen?.atomicMass}');
final metals = PeriodicTable.getByCategory('transition metal');
print('Number of transition metals: ${metals.length}');
final balanced = ReactionBalancer.balance('H2 + O2 = H2O');
print(balanced);
final safetyInfo = await getSafetyData('acetone');
print('Signal word: ${safetyInfo['signal_word']}');
print('Hazard statements: ${safetyInfo['hazard_statements']}');
final structure = parseSmiles('CCO');
print(structure);
final isValid = isSmilesValid('C1=CC=CC=C1');
print('Is benzene SMILES valid? $isValid');
final nmrData = await simulateProtonNmr('CCO');
print(nmrData['summary']);
final irData = await simulateIrSpectrum('CCO');
print('IR bands: ${irData['bands'].length}');
final url = drawMolecule('CCO');
print('Molecule visualization URL: $url');
}