public static void AmbitTest() { //string smirks = "[*:1][N:2](=[O:3])=[O:4]>>[*:1][N+:2](=[O:3])[O-:4]"; //string smirks = "[N:1]1[C:2][C:3]=[C:4][C:5]1>>[N:1]1[C:2]=[C:3][C:4]=[C:5]1"; string smirks = "[#16:1]>>[#16:1](=[O])"; //string targetSmiles = "O=S(c2nc1ccc(OC)cc1n2)Cc3ncc(c(OC)c3C)C"; string targetSmiles = "CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC"; // Omeprazole string productSmiles = ""; IAtomContainer target = new AtomContainer(); IChemObjectBuilder icob = org.openscience.cdk.silent.SilentChemObjectBuilder.getInstance(); SMIRKSManager smrkMan = new SMIRKSManager(icob); //SMIRKSManager smrkMan = SMIRKSManager.getDefaultSMIRKSManager(); SMIRKSReaction reaction = smrkMan.parse(smirks); if (!smrkMan.getErrors().Equals("")) { throw (new Exception("Smirks Parser errors:\n" + smrkMan.getErrors())); } target = CdkUtil.SmilesToAtomContainer(targetSmiles); if (smrkMan.applyTransformation(target, reaction)) { IAtomContainer product = target; productSmiles = CdkUtil.AtomContainerToSmiles(product); return; // all products inside the same atomcontainer (target), could be disconnected } else { return; } //Generate separate products for every possible reaction(used in Toxtree) //SMIRKSManager smrkMan = new SMIRKSManager(); //SMIRKSReaction smr = smrkMan.parse(reaction.getSMIRKS()); //IAtomContainer product = reactant; //(IAtomContainer) reactant.clone(); //IAtomContainerSet rproducts = smrkMan.applyTransformationWithSingleCopyForEachPos(product, null, smr); //products returned in a separate atom sontainer set }
public PipelineStack(Construct parent, string id, IPipelineStackProps props) : base(parent, id, props) { EcrRepository = new Repository( this, "EcrRepository", new RepositoryProps { RepositoryName = "cdk-dotnet-example", RemovalPolicy = RemovalPolicy.DESTROY, }); var cdkBuild = new PipelineProject( this, "CdkBuild", new PipelineProjectProps { BuildSpec = BuildSpec.FromSourceFilename("Infrastructure/Resources/cdk_buildspec.yml"), Environment = new BuildEnvironment { BuildImage = LinuxBuildImage.AMAZON_LINUX_2, }, }); var apiBuildTaskRole = new Role( this, "ApiBuildRole", new RoleProps { ManagedPolicies = new[] { ManagedPolicy.FromAwsManagedPolicyName("AmazonEC2ContainerRegistryPowerUser"), }, AssumedBy = new ServicePrincipal("codebuild.amazonaws.com") }); var apiBuild = new PipelineProject( this, "ApiBuild", new PipelineProjectProps { BuildSpec = BuildSpec.FromSourceFilename("Infrastructure/Resources/api_buildspec.yml"), Role = apiBuildTaskRole, Environment = new BuildEnvironment { BuildImage = LinuxBuildImage.AMAZON_LINUX_2, Privileged = true, EnvironmentVariables = new Dictionary <string, IBuildEnvironmentVariable> { ["AWS_ACCOUNT_ID"] = CdkUtil.PlainTextBuildEnvironmentVariable(Of(this).Account), ["AWS_DEFAULT_REGION"] = CdkUtil.PlainTextBuildEnvironmentVariable(Of(this).Region), }, }, }); var apiTest = new PipelineProject( this, "ApiTest", new PipelineProjectProps { BuildSpec = BuildSpec.FromSourceFilename("Infrastructure/Resources/ci_buildspec.yml"), Environment = new BuildEnvironment { BuildImage = LinuxBuildImage.AMAZON_LINUX_2, Privileged = true, }, }); var sourceOutput = new Artifact_(); var cdkBuildOutput = new Artifact_("CdkBuildOutput"); var apiBuildOutput = new Artifact_("ApiBuildOutput"); new Pipeline( this, "Api", new PipelineProps { Stages = new IStageProps[] { new StageProps { StageName = "Source", Actions = new IAction[] { new GitHubSourceAction(new GitHubSourceActionProps { ActionName = "GitHub", OauthToken = SecretValue.SecretsManager(props.GitHubSecretName), Repo = props.GitHubRepo, Owner = props.GitHubOwner, Output = sourceOutput, Trigger = GitHubTrigger.WEBHOOK, }), }, }, new StageProps { StageName = "Build", Actions = new IAction[] { new CodeBuildAction(new CodeBuildActionProps { ActionName = "ApiTest", Project = apiTest, Input = sourceOutput, RunOrder = 1, }), new CodeBuildAction(new CodeBuildActionProps { ActionName = "ApiBuild", Project = apiBuild, Input = sourceOutput, Outputs = new[] { apiBuildOutput }, RunOrder = 2, }), new CodeBuildAction(new CodeBuildActionProps { ActionName = "CdkBuild", Project = cdkBuild, Input = sourceOutput, Outputs = new[] { cdkBuildOutput }, RunOrder = 3, }), }, }, new StageProps { StageName = "Deploy", Actions = new IAction[] { new CloudFormationCreateUpdateStackAction(new CloudFormationCreateUpdateStackActionProps { ActionName = "ApiStack", TemplatePath = cdkBuildOutput.AtPath($"{props.ApiStackName}.template.json"), StackName = "Api", AdminPermissions = true, ParameterOverrides = new Dictionary <string, object> { [props.ApiImageTag] = apiBuildOutput.GetParam("metadata.json", "imageTag"), }, ExtraInputs = new[] { apiBuildOutput, }, }), }, }, }, }); }