Exemplo n.º 1
0
                public static void WriteBlank(string pmlpath
                                              , bool append
                                              )
                {
                    StreamWriter file;

                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    file.Close();
                }
Exemplo n.º 2
0
                public static void WriteImport(string pypath, bool append = false)
                {
                    StreamWriter file;

                    if (append)
                    {
                        file = HFile.AppendText(pypath);
                    }
                    else
                    {
                        file = HFile.CreateText(pypath);
                    }
                    file.WriteLine("from pymol.cgo import *");
                    file.WriteLine("from pymol import cmd");
                    file.Close();
                }
Exemplo n.º 3
0
                public static void WriteLineStrips(string pmlpath
                                                   , string objname
                                                   , IList <LineStrip> linestrips
                                                   , bool append = false
                                                   )
                {
                    StreamWriter file;

                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    {
                        //StreamWriter file = File.AppendText(pypath);
                        file.WriteLine("from pymol.cgo import *");
                        file.WriteLine("from pymol import cmd");
                        file.WriteLine("obj = [");
                        foreach (var linestrip in linestrips)
                        {
                            file.WriteLine("BEGIN, LINE_STRIP,");
                            if (linestrip.linewidth != null)
                            {
                                file.WriteLine("       LINEWIDTH, {0:0.000},", linestrip.linewidth);
                            }
                            file.WriteLine("       ALPHA,    {0:0.000}, COLOR,   {1:0.000},   {2:0.000},   {3:0.000}, ", linestrip.alpha, linestrip.red, linestrip.green, linestrip.blue);
                            for (int i = 0; i < linestrip.coords.Count; i++)
                            {
                                Vector vert = linestrip.coords[i];
                                file.Write("       VERTEX,   {0:0.000},  {1:0.000},   {2:0.000}, ", vert[0], vert[1], vert[2]);
                            }
                            file.WriteLine();
                            file.WriteLine("       END,");
                        }
                        file.WriteLine("]");
                        // file.WriteLine("cmd.load_cgo(obj,\"channel_path\")");
                        file.WriteLine("cmd.load_cgo(obj,\"" + objname + "\")");
                        file.WriteLine();
                    }
                    file.Close();
                }
Exemplo n.º 4
0
                public static void WriteLineStrip(string pmlpath
                                                  , string objname
                                                  , IList <Vector> pathcoords
                                                  , double?linewidth = null
                                                  , double alpha     = 1.0, double red = 1.0, double green = 1.0, double blue = 1.0
                                                  , bool append      = false
                                                  )
                {
                    StreamWriter file;

                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    {
                        //StreamWriter file = File.AppendText(pypath);
                        file.WriteLine("from pymol.cgo import *");
                        file.WriteLine("from pymol import cmd");
                        file.WriteLine("obj = [");
                        file.WriteLine("BEGIN, LINE_STRIP,");
                        if (linewidth != null)
                        {
                            file.WriteLine("LINEWIDTH, {0:0.000},", linewidth);
                        }
                        file.WriteLine("ALPHA,    {0:0.000}, COLOR,   {1:0.000},   {2:0.000},   {3:0.000}, ", alpha, red, green, blue);
                        for (int i = 0; i < pathcoords.Count; i++)
                        {
                            Vector vert = pathcoords[i];
                            file.Write("VERTEX,   {0:0.000},  {1:0.000},   {2:0.000}, ", vert[0], vert[1], vert[2]);
                        }
                        file.WriteLine();
                        file.WriteLine("END");
                        file.WriteLine("]");
                        // file.WriteLine("cmd.load_cgo(obj,\"channel_path\")");
                        file.WriteLine("cmd.load_cgo(obj,\"" + objname + "\")");
                        file.WriteLine();
                    }
                    file.Close();
                }
Exemplo n.º 5
0
                public static void WriteSphere(string pmlpath
                                               , string objname
                                               , IList <Tuple <Vector, double, Tuple <double, double, double, double> > > lst_centercoord_radii_color
                                               , double?linewidth = null
                                               , bool append      = true
                                               )
                {
                    #region python source
                    //def writeChannelPathAndForcedAtoms(pypath, pathcoords, atomcoords, constfrc):
                    //    writeChannelPath(pypath, pathcoords);
                    //    file = open(pypath, 'a');
                    //    file.write('\n');
                    //    file.write('sphobj = ['+'\n');
                    //    for idx in range(constfrc['count']):
                    //        atm0 = constfrc['key0' ][idx]; atm0 = atomcoords[atm0, :];
                    //        atm1 = constfrc['key1' ][idx]; atm1 = atomcoords[atm1, :];
                    //        frc  = constfrc['value'][idx];
                    //        file.write('ALPHA,    0.500, COLOR,   1.000,   0.000,   0.000, ');
                    //        file.write('SPHERE,   %6.3f,  %6.3f,   %6.3f,  %6.3f,  ' % (atm0[0]*10, atm0[1]*10, atm0[2]*10, 0.3));
                    //        file.write('SPHERE,   %6.3f,  %6.3f,   %6.3f,  %6.3f,  ' % (atm1[0]*10, atm1[1]*10, atm1[2]*10, 0.3));
                    //        file.write('\n');
                    //        pass
                    //    file.write(']'+'\n');
                    //    file.write('cmd.load_cgo(sphobj,"forced_atoms")'+'\n');
                    //    file.close();
                    //    return
                    #endregion
                    StreamWriter file;
                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    {
                        file.WriteLine("from pymol.cgo import *");
                        file.WriteLine("from pymol import cmd");
                        file.WriteLine("obj = [");
                        file.Write("BEGIN, ");
                        if (linewidth != null)
                        {
                            file.WriteLine("LINEWIDTH, {0:0.000},", linewidth);
                        }
                        {
                            foreach (var centercoord_radii_color in lst_centercoord_radii_color)
                            {
                                Vector coord = centercoord_radii_color.Item1;
                                double radii = centercoord_radii_color.Item2;
                                double alpha = centercoord_radii_color.Item3.Item1;
                                double red   = centercoord_radii_color.Item3.Item2;
                                double green = centercoord_radii_color.Item3.Item3;
                                double blue  = centercoord_radii_color.Item3.Item4;

                                file.Write("ALPHA,    {0:0.000}, COLOR,   {1:0.000},   {2:0.000},   {3:0.000}, ", alpha, red, green, blue);
                                file.Write("SPHERE,   {0:0.000},  {1:0.000},   {2:0.000},  {3:0.000},  ", coord[0], coord[1], coord[2], radii);
                                file.WriteLine();
                            }
                        }
                        file.Write("END, ");
                        file.WriteLine("]");
                        // file.WriteLine("cmd.load_cgo(sphobj,\"forced_atoms\")");
                        file.WriteLine("cmd.load_cgo(obj,\"" + objname + "\")");
                        file.WriteLine();
                    }
                    file.Close();
                }
Exemplo n.º 6
0
                public static void WriteLines(string pmlpath
                                              , string objname
                                              , IList <Vector> pathcoords
                                              , double?linewidth = null
                                              , double alpha     = 1.0, double red = 1.0, double green = 1.0, double blue = 1.0
                                              , bool append      = false
                                              )
                {
                    #region python source
                    //def writeChannelPath(pypath, pathcoords):
                    //    file = open(pypath, 'w');
                    //    file.write('from pymol.cgo import *'+'\n');
                    //    file.write('from pymol import cmd'+'\n');
                    //    file.write('obj = ['+'\n');
                    //    file.write('BEGIN, LINES,'+'\n');
                    //    for idx in range(pathcoords.shape[0]-1):
                    //        vert1 = pathcoords[idx,:];
                    //        vert2 = pathcoords[idx+1,:];
                    //        file.write('ALPHA,    1.000, COLOR,   1.000,   0.000,   0.000, ');
                    //        file.write('VERTEX,   %6.3f,  %6.3f,   %6.3f, ' % (vert1[0], vert1[1], vert1[2]));
                    //        file.write('VERTEX,   %6.3f,  %6.3f,   %6.3f, ' % (vert2[0], vert2[1], vert2[2]));
                    //        file.write('\n');
                    //        pass
                    //    file.write('END'+'\n');
                    //    file.write(']'+'\n');
                    //    file.write('cmd.load_cgo(obj,"channel_path")'+'\n');
                    //    file.close();
                    //    return
                    #endregion

                    StreamWriter file;
                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    {
                        //StreamWriter file = File.AppendText(pypath);
                        file.WriteLine("from pymol.cgo import *");
                        file.WriteLine("from pymol import cmd");
                        file.WriteLine("obj = [");
                        file.WriteLine("BEGIN, LINES,");
                        if (linewidth != null)
                        {
                            file.WriteLine("LINEWIDTH, {0:0.000},", linewidth);
                        }
                        for (int i = 0; i < pathcoords.Count / 2; i++)
                        {
                            Vector vert1 = pathcoords[i * 2 + 0];
                            Vector vert2 = pathcoords[i * 2 + 1];
                            file.Write("ALPHA,    {0:0.000}, COLOR,   {1:0.000},   {2:0.000},   {3:0.000}, ", alpha, red, green, blue);
                            file.Write("VERTEX,   {0:0.000},  {1:0.000},   {2:0.000}, ", vert1[0], vert1[1], vert1[2]);
                            file.Write("VERTEX,   {0:0.000},  {1:0.000},   {2:0.000}, ", vert2[0], vert2[1], vert2[2]);
                            file.WriteLine();
                        }
                        file.WriteLine("END");
                        file.WriteLine("]");
                        // file.WriteLine("cmd.load_cgo(obj,\"channel_path\")");
                        file.WriteLine("cmd.load_cgo(obj,\"" + objname + "\")");
                        file.WriteLine();
                    }
                    file.Close();
                }
Exemplo n.º 7
0
                public static void WriteCircles(string pmlpath
                                                , string objname
                                                , IList <Circle> lst_circle
                                                //, int numLinesInCircle = 50
                                                //, double? linewidth = null
                                                //, double alpha=1.0, double red=1.0, double green=1.0, double blue=1.0
                                                , bool append = false
                                                )
                {
                    StreamWriter file;

                    if (append)
                    {
                        file = HFile.AppendText(pmlpath);
                    }
                    else
                    {
                        file = HFile.CreateText(pmlpath);
                    }
                    {
                        //StreamWriter file = File.AppendText(pypath);
                        file.WriteLine("from pymol.cgo import *");
                        file.WriteLine("from pymol import cmd");
                        file.WriteLine("obj = [");
                        foreach (var circle in lst_circle)
                        {
                            //Vector center        = center_normal_radii_numseg_color_width.Item1;
                            //Vector normal        = center_normal_radii_numseg_color_width.Item2;
                            //double radii         = center_normal_radii_numseg_color_width.Item3;
                            //int numLinesInCircle = center_normal_radii_numseg_color_width.Item4;
                            //double? alpha        = center_normal_radii_numseg_color_width.Item5.Item1;
                            //double? red          = center_normal_radii_numseg_color_width.Item5.Item2;
                            //double? green        = center_normal_radii_numseg_color_width.Item5.Item3;
                            //double? blue         = center_normal_radii_numseg_color_width.Item5.Item4;
                            //double? linewidth    = center_normal_radii_numseg_color_width.Item6;

                            Trans3 trans = Trans3.GetTransformNoScale(new double[3] {
                                0, 0, 0
                            }
                                                                      , new double[3] {
                                0, 0, 1
                            }
                                                                      , circle.center
                                                                      , circle.center + circle.normal.UnitVector()
                                                                      );
                            Vector[] pts = new Vector[circle.numLinesInCircle + 1];
                            double   di  = (2 * Math.PI) / circle.numLinesInCircle;
                            for (int i = 0; i < circle.numLinesInCircle; i++)
                            {
                                Vector lpt = new double[3] {
                                    circle.radii *Math.Cos(di * i), circle.radii *Math.Sin(di * i), 0
                                };
                                pts[i] = trans.DoTransform(lpt);
                            }
                            pts[circle.numLinesInCircle] = pts[0];

                            file.Write("BEGIN, LINE_STRIP, ");
                            if (circle.linewidth != null)
                            {
                                file.Write("LINEWIDTH, {0:0.000}, ", circle.linewidth);
                            }
                            if (circle.alpha != null)
                            {
                                file.Write("ALPHA, {0:0.000},", circle.alpha);
                            }
                            if (circle.color != null)
                            {
                                file.Write("COLOR, {0:0.000}, {1:0.000}, {2:0.000}, ", circle.color.Item1, circle.color.Item2, circle.color.Item3);
                            }
                            for (int i = 0; i < pts.Length; i++)
                            {
                                if (i % 10 == 0)
                                {
                                    file.WriteLine();
                                    file.Write("       ");
                                }
                                file.Write("VERTEX,   {0:0.000},  {1:0.000},   {2:0.000}, ", pts[i][0] + 0.000001, pts[i][1] + 0.000001, pts[i][2] + 0.000001);
                            }
                            file.WriteLine();
                            file.WriteLine("       END, ");
                        }
                        file.WriteLine("]");
                        // file.WriteLine("cmd.load_cgo(obj,\"channel_path\")");
                        file.WriteLine("cmd.load_cgo(obj,\"" + objname + "\")");
                        file.WriteLine();
                    }
                    file.Close();
                }