当前位置: 首页>>代码示例>>Java>>正文


Java AtomContainerManipulator类代码示例

本文整理汇总了Java中org.openscience.cdk.tools.manipulator.AtomContainerManipulator的典型用法代码示例。如果您正苦于以下问题:Java AtomContainerManipulator类的具体用法?Java AtomContainerManipulator怎么用?Java AtomContainerManipulator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


AtomContainerManipulator类属于org.openscience.cdk.tools.manipulator包,在下文中一共展示了AtomContainerManipulator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: prepareAtomContainer

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * 
 * @param container
 * @throws CDKException 
 */
protected void prepareAtomContainer(IAtomContainer container) throws CDKException {
	while(true) {
   		try {
       		AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(container);
			Aromaticity arom = new Aromaticity(ElectronDonation.cdk(), Cycles.cdkAromaticSet());
			arom.apply(container);
   		} catch (java.lang.NullPointerException e) { 
   			//bad workaround for cdk bug?! but what shall I do...
   			//sometimes NullPointerException occurs but not in one of the further trials?!
       		continue;
       	}
   		break;
       }
       CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(container.getBuilder());
       for(int i = 0; i < container.getAtomCount(); i++) {
      		hAdder.addImplicitHydrogens(container, container.getAtom(i));
       }
       AtomContainerManipulator.convertImplicitToExplicitHydrogens(container);
       hAdder = null;
}
 
开发者ID:c-ruttkies,项目名称:MetFragRelaunched,代码行数:26,代码来源:OnlinePubChemDatabaseMicha.java

示例2: getAromaticAtoms

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * 
 * @param molecule
 * @return
 */
public static BitArray getAromaticAtoms(IAtomContainer molecule) {
	Aromaticity arom = new Aromaticity(ElectronDonation.cdk(),
	Cycles.cdkAromaticSet());
	BitArray aromaticAtoms = new BitArray(molecule.getAtomCount());
	try {
		AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
		arom.apply(molecule);
		Set<IBond> aromaticBonds = arom.findBonds(molecule);
		Iterator<IBond> it = aromaticBonds.iterator();
		while(it.hasNext()) {
			IBond bond = it.next();
			for(int k = 0; k < bond.getAtomCount(); k++)
				aromaticAtoms.set(molecule.getAtomNumber(bond.getAtom(k)));
		}
	} catch (CDKException e) {
		e.printStackTrace();
	}
	return aromaticAtoms;
}
 
开发者ID:c-ruttkies,项目名称:MetFragRelaunched,代码行数:25,代码来源:InChIDeuteriumGeneration.java

示例3: calculateInchiKey

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * 
 * @param con
 * @return
 * @throws CDKException
 */
public static String calculateInchiKey(IAtomContainer con) throws CDKException {
	AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(con);
       CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(con.getBuilder());
       for(int i = 0; i < con.getAtomCount(); i++) {
       	try {
       		hAdder.addImplicitHydrogens(con, con.getAtom(i));
       	} 
       	catch(CDKException e) {
       		continue;
       	}
       }
       AtomContainerManipulator.convertImplicitToExplicitHydrogens(con);
	InChIGeneratorFactory factory = InChIGeneratorFactory.getInstance();
	InChIGenerator gen = factory.getInChIGenerator(con);
	return gen.getInchiKey().split("-")[0];
}
 
开发者ID:c-ruttkies,项目名称:MetFragRelaunched,代码行数:23,代码来源:GetRankOfCandidateCSV.java

示例4: getAtomContainerFromSMILES

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
public static IAtomContainer getAtomContainerFromSMILES(String smiles) throws Exception {
	IAtomContainer molecule = sp.parseSmiles(smiles);
	for(int i = 0; i < molecule.getAtomCount(); i++) {
		if(molecule.getAtom(i).getSymbol().equals("H")) continue;
		else {
			java.util.List<IAtom> atoms = molecule.getConnectedAtomsList(molecule.getAtom(i));
			short numDs = 0;
			for(IAtom atom : atoms)
				if(atom.getSymbol().equals("H") && (atom.getMassNumber() != null && atom.getMassNumber() == 2))
					numDs++;
			molecule.getAtom(i).setProperty(VariableNames.DEUTERIUM_COUNT_NAME, numDs);
		}
	}
	try {
		AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
		Aromaticity arom = new Aromaticity(ElectronDonation.cdk(), Cycles.cdkAromaticSet());
		arom.apply(molecule);
	} catch (CDKException e) {
		e.printStackTrace();
	}
	return molecule;
}
 
开发者ID:c-ruttkies,项目名称:MetFragRelaunched,代码行数:23,代码来源:MoleculeFunctions.java

示例5: getAtomContainerFromInChI

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * 
 * @param inchi
 * @return
 * @throws Exception 
 */
public static IAtomContainer getAtomContainerFromInChI(String inchi) throws Exception {
	de.ipbhalle.metfraglib.inchi.InChIToStructure its = inchiFactory.getInChIToStructure(inchi, DefaultChemObjectBuilder.getInstance());
	if(its == null) {
		throw new Exception("InChI problem: " + inchi);
	}
	INCHI_RET ret = its.getReturnStatus();
	if (ret == INCHI_RET.WARNING) {
	//	logger.warn("InChI warning: " + its.getMessage());
	} else if (ret != INCHI_RET.OKAY) {
		throw new Exception("InChI problem: " + inchi);
	}
	IAtomContainer molecule = its.getAtomContainer();
	try {
		AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
		Aromaticity arom = new Aromaticity(ElectronDonation.cdk(), Cycles.cdkAromaticSet());
		arom.apply(molecule);
	} catch (CDKException e) {
		e.printStackTrace();
	}
	return molecule;
}
 
开发者ID:c-ruttkies,项目名称:MetFragRelaunched,代码行数:28,代码来源:MoleculeFunctions.java

示例6: prepareMoleculeRemoveHydrogens

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * standard preparation protocol: remove hydrogens, types, ring detection. Uses specified errorHandler
 *
 * @param mol
 * @throws Exception
 */
public static IAtomContainer prepareMoleculeRemoveHydrogens(IAtomContainer mol, IChemObjectReaderErrorHandler errorHandler)
{
    boolean errorFlag=false;
    IAtomContainer molOrig=mol;
    try {
        AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);
        Aromaticity.cdkLegacy().apply(mol);
        mol = addExplicitHydrogens(mol);

    } catch (final Exception e) {
        errorFlag=true;

        if (errorHandler != null)
            errorHandler.handleError("An error occurred while typing structure. " + e.getMessage(), e);
        else{
            System.out.println("An error occurred while typing structure, using unprocessed molecule. "+e.getMessage());
            e.printStackTrace();
        }
    }
    mol = removeHydrogens(mol);
    if(errorFlag){
        mol=molOrig;
    }
    return mol;
}
 
开发者ID:fortiema,项目名称:jCompoundMapper,代码行数:32,代码来源:MoleculePreprocessor.java

示例7: addExplicitHydrogens

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * add hydrogens
 * 
 * @param mol
 * @throws CDKException
 */
private static IAtomContainer addExplicitHydrogens(IAtomContainer mol) throws CDKException{

	CDKAtomTypeMatcher matcher = CDKAtomTypeMatcher.getInstance(mol.getBuilder());
	for (IAtom atom : mol.atoms()) {
	     IAtomType type = matcher.findMatchingAtomType(mol, atom);
	     try{
	    	 AtomTypeManipulator.configure(atom, type);
	     }
	     catch(IllegalArgumentException e){
	    	 throw new CDKException(e.toString()+" for atom "+atom.getAtomicNumber()+" "+atom.getSymbol());
	     }
	   }
	CDKHydrogenAdder hydrogenAdder = CDKHydrogenAdder.getInstance(mol.getBuilder());
	hydrogenAdder.addImplicitHydrogens(mol);
	AtomContainerManipulator.convertImplicitToExplicitHydrogens(mol);

	return mol;

}
 
开发者ID:fortiema,项目名称:jCompoundMapper,代码行数:26,代码来源:MoleculePreprocessor.java

示例8: fillLinksJSO

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private String fillLinksJSO(JSONArray links, Residue res) {
	IMolecule mol = res.getMolecule();
	AtomContainerManipulator.convertImplicitToExplicitHydrogens(mol);
	String smiles = SmilesConverter.conv.mol2Smiles(mol, false);
	List<IAtom> order = SmilesConverter.conv.getOrder();
	
	for (IAtom a : res.getAtomicLinks().keySet()) {
		JSONObject jso = new JSONObject();
		Rule rule = res.getAtomicLinks().get(a);
		jso.put("name", rule.getName());
		jso.put("atom", order.indexOf(a));
		links.add(jso);
	}
	AtomContainerManipulator.removeHydrogens(mol);

	return smiles;
}
 
开发者ID:yoann-dufresne,项目名称:Smiles2Monomers,代码行数:19,代码来源:ResidueJsonLoader.java

示例9: add

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
void add(IAtomContainer container) {

        // remove explicit hydrogens and all stereochemistry
        AtomContainerManipulator.suppressHydrogens(container);
        container.setStereoElements(new ArrayList<IStereoElement>());

        RingSearch ringSearch = new RingSearch(container);

        List<IAtomContainer> fused = ringSearch.fusedRingFragments();
        List<IAtomContainer> isolated = ringSearch.isolatedRingFragments();

        // only use compounds with a single ring system
        if (fused.size() == 1 && isolated.isEmpty()) {
            add(fused.get(0), container);
        }
        else if (isolated.size() == 1 && fused.isEmpty()) {
            add(isolated.get(0), container);
        }
    }
 
开发者ID:cdk,项目名称:cdk-build-util,代码行数:20,代码来源:RingTemplateExtractor.java

示例10: hydrogenHandling

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
private IAtomContainer hydrogenHandling(IAtomContainer container, String id) {
	if(container == null)
		return null;
	
	// create deep copy
	IAtomContainer copy = null;
	try {
		 copy = container.clone();
	} catch (CloneNotSupportedException e1) {
		System.err.println("Could not clone IAtomContainer - no hydrogen handling!");
		return container;
	}
	
	//add hydrogens
       try {
		AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(copy);
		CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(copy.getBuilder());
	    hAdder.addImplicitHydrogens(copy);
	    AtomContainerManipulator.convertImplicitToExplicitHydrogens(copy);
	} catch (CDKException e) {		// return original if adding H's fails
		System.err.println("Error adding explict H's - no hydrogen handling for ID [" + id + "]!");
		return container;
	}
       
       return copy;
}
 
开发者ID:mgerlich,项目名称:MetFusion,代码行数:27,代码来源:SDFDatabase.java

示例11: hydrogenHandling

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
private IAtomContainer hydrogenHandling(IAtomContainer container) {
		if(container == null)
			return container;
		
		/**
		 *  hydrogen handling
		 */
		try {
			AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(container);
			CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(container.getBuilder());
	        hAdder.addImplicitHydrogens(container);
	        AtomContainerManipulator.convertImplicitToExplicitHydrogens(container);
		} catch (CDKException e) {
			return container;
		}
		return container;
		
//		return AtomContainerManipulator.removeHydrogens(container);
	}
 
开发者ID:mgerlich,项目名称:MetFusion,代码行数:20,代码来源:MassBankUtilities.java

示例12: MolStruct

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
public MolStruct( IAtomContainer base )
{	
	super( new AtomContainer(AtomContainerManipulator.removeHydrogens(base)) );
	mol_ids = new HashSet<PubchemID>();
	
	Iterator<IAtom> atoms = this.atoms().iterator();
	while( atoms.hasNext() ){
		IAtom atom = atoms.next();
		atom.setAtomTypeName("S");
		atom.setSymbol("C");
	}
	Iterator<IBond> bonds = this.bonds().iterator();
	while( bonds.hasNext() ){
		IBond bond = bonds.next();
		bond.setOrder(IBond.Order.SINGLE);
	}
	
	makeGraph(this);

	setFingerprint();
	
	PubchemID pubID = MolUtils.getPubID(base);
	this.mol_ids.add( pubID);
	this.setProperty("PUBCHEM_COMPOUND_CID", pubID.toString());
}
 
开发者ID:ndaniels,项目名称:Ammolite,代码行数:26,代码来源:MolStruct.java

示例13: LabeledMolStruct

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
public LabeledMolStruct(IAtomContainer base){
    super( new AtomContainer(AtomContainerManipulator.removeHydrogens(base)) );
    mol_ids = new HashSet<PubchemID>();
    
    Iterator<IBond> bonds = this.bonds().iterator();
    while( bonds.hasNext() ){
        IBond bond = bonds.next();
        bond.setOrder(IBond.Order.SINGLE);
    }
    
    makeGraph();

    setFingerprint();
    
    PubchemID pubID = MolUtils.getPubID(base);
    this.mol_ids.add( pubID);
    this.setProperty("PUBCHEM_COMPOUND_CID", pubID.toString());
}
 
开发者ID:ndaniels,项目名称:Ammolite,代码行数:19,代码来源:LabeledMolStruct.java

示例14: ChemicalCompound

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
/**
 * SIDE EFFECT: converts implicit to explicit hydrogens in molecule, then converts them /back/
 * @param name
 * @param molecule
 */
public ChemicalCompound(String name, IMolecule molecule)
        throws CDKException
{
    this.name = name;
    this.cdkMolecule = molecule;

    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(cdkMolecule);


    //When SmilesParser gives us a molecule, the hydrogens are implicit.  If you,
    //e.g., create a MolecularFormula object from the Molecule and ask it for its mass
    //and its formula string, they will be wrong, because they have no H's.
    //So I add the hydrogens, create the formula with the hydrogens, and then remove them
    AtomContainerManipulator.convertImplicitToExplicitHydrogens(cdkMolecule);

    formula = ChemCalcs.CDKMolForm2ChemForm(MolecularFormulaManipulator.getMolecularFormula(cdkMolecule));
    //This doesn't actually remove hydrogens in the argument, just returns a new IMolecule
    cdkMolecule = (IMolecule) AtomContainerManipulator.removeHydrogens(cdkMolecule);
    try
    {
        new LonePairElectronChecker().saturate(cdkMolecule);
    }
    catch (Exception e) //failed to saturate.  Not sure why this happens sometimes on valid SMILES strings
    {}
}
 
开发者ID:dhmay,项目名称:msInspect,代码行数:31,代码来源:ChemicalCompound.java

示例15: createCOOH

import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; //导入依赖的package包/类
public IMolecule createCOOH()
    {
        IChemObjectBuilder builder = NoNotificationChemObjectBuilder.getInstance();
        IMolecule molecule = builder.newMolecule();
        molecule.addAtom(builder.newAtom("C"));
        molecule.addAtom(builder.newAtom("O"));
        molecule.addBond(0, 1, IBond.Order.DOUBLE);
        molecule.addAtom(builder.newAtom("O"));
        molecule.addBond(0, 2, IBond.Order.SINGLE);

        try {

            AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
            LonePairElectronChecker lpcheck = new LonePairElectronChecker();
            lpcheck.saturate(molecule);

        }
        catch (CDKException e)
        {
            e.printStackTrace();
        }
//        Image image = MoleculeRenderer2D.renderMolecule(molecule, width, height);
//        new PanelWithBlindImageChart((BufferedImage) image, "0=C-OH").displayInTab();
        return molecule;
    }
 
开发者ID:dhmay,项目名称:msInspect,代码行数:26,代码来源:MetaboliteDBMatcherCLM.java


注:本文中的org.openscience.cdk.tools.manipulator.AtomContainerManipulator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。