Welcome To Support Community

Materials Studio

Advanced Search
Ask Search:
DaveMDaveM 

Homopolymer with 2 head and 2 tail atoms (PIM-1) not possible to construct

Hello,

I try to construct PIM-1, which is connected via a dioxane-ring. The endgroups are two oxygen-atoms that are bonded to a benzene ring (see attached picture). I can only define one oxygen-bonded hydrogen atom as the head atom and one aromatic hydrogen-atom as the tail atom. The result is a single-bonded polymer. Does anyone knows how I might construct the homopolymer properly? Thank you for your help !! 

 

User-added image

CarstenCarsten (Accelrys) 
This is not possible out of the box.

The only idea I have is to name the atoms which from the bond accordingly and to make a bond between them when they are close enough to each other. I think then I would already start with monomers which do not have protons at this positions.

Or do this manually.
reinierreinier
Hi DaveM,

The topic Building polymers with two head and tail atoms has a script to create ladder-like polymers.
Unfortunately when I tried it for PIM-1 the bonding wasn’t right. I think it expects the connection points to be further apart.

A quicker option might be to build it using a single head/tail pair first, and then fix it up with a script. For example if you name the connecting atoms R1 and R2 this should do it:
Tools->BondCalculation->ChangeSettings([
       DistanceCriterionMode => "Absolute",
       MaxAbsoluteDistance => 5,
       PathLength => 4,
       ExclusionMode => "Bonded"]);
 
my $doc = $Documents{"PolyPIM-1.xsd"};
my $atoms = $doc->Atoms;
foreach my $atom (@$atoms)
{
       next if $atom->Name ne "R1";
      
       my $contacts = $atom->CalculateCloseContacts();
       foreach my $contact (@$contacts)
       {
              my $atom1 = $contact->Atom1;
              my $atom2 = $contact->Atom2;
              if($atom1->Name eq "R2" or $atom2->Name eq "R2")
              {
                     $doc->CreateBond($atom1, $atom2, "Single");
                     for(1..10){$doc->Clean;}
              }
       }
       $contacts->Delete;
}
$doc->AdjustHydrogen;
for(1..10){$doc->Clean;}
 
Bye,
Reinier
Jason DeJoannisJason DeJoannis
Hi DaveM,

Here is a script you can use. It seems to work well on a 10mer. I was hoping that it would not introduce any ring spearing and it looks ok.
 
Jason DeJoannisJason DeJoannis
Oops, looks like Reinier already solved it using a very similar approach. The main difference is his method uses the CloseContacts feature with a path length included, which is nice.