【问题标题】:humpy.genfromtxt input fname argument from listhumpy.genfromtxt 从列表中输入 fname 参数
【发布时间】:2019-10-11 10:31:23
【问题描述】:

我有许多文本文件作为我希望从中提取数据的计算的输出:

(注意:因为有些文件比较乱,所以我在我的 Dropbox 里放了副本。网址是https://www.dropbox.com/sh/h774f8jzjb5l0wx/AAAqhvHsmPAhK_svdQG2Ou9Ha?dl=0

=======================================================================
PSOVina version 2.0                                                    
Giotto H. K. Tai & Shirley W. I. Siu                                   

Computational Biology and Bioinformatics Lab                           
University of Macau                                                    

Visit http://cbbio.cis.umac.mo for more information.                   

PSOVina was developed based on the framework of AutoDock Vina.         

For more information about Vina, please visit http://vina.scripps.edu. 

=======================================================================

Output will be 14-7_out.pdbqt
Reading input ... done.
Setting up the scoring function ... done.
Analyzing the binding site ... done.
Using random seed: 768314908
Performing search ... done.

Refining results ... done.

mode |   affinity | dist from best mode
     | (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
   1    -9.960902669      0.000      0.000
   2    -8.979504781      1.651      2.137
   3    -8.942611364      3.051      6.898
   4    -8.915523010      2.146      2.875
   5    -8.736508831      2.908      7.449
   6    -8.663387139      2.188      2.863
   7    -8.410739711      5.118      7.281
   8    -8.389146347      2.728      3.873
   9    -8.296798909      2.416      3.846
  10    -8.168454106      3.809      8.143
  11    -8.127990818      3.712      8.109
  12    -8.127103774      3.084      4.097
  13    -7.979090739      3.798      4.959
  14    -7.941872682      4.590      8.294
  15    -7.900766215      3.300      8.204
  16    -7.881485228      2.953      4.224
  17    -7.837826485      3.005      4.125
  18    -7.815909505      4.390      8.782
  19    -7.722540286      5.695      9.851
  20    -7.720346742      3.362      4.593
Writing output ... done.

这行得通:

 import numpy as np

    print('${d}')

    data = np.genfromtxt("14-7.log", usecols=(1), skip_header=27, 
    skip_footer=1, encoding=None)

    print(data)

    np.savetxt('14-7.dG', data, fmt='%12.9f', header='14-7')
    print(data)

产生:

runfile('/home/comp/Apps/Python/PsoVina/DeltaGTable_V_s.py', 
 wdir='/home/comp/Apps/Python/PsoVina', current_namespace=True)
 ${d}
 [-9.96090267 -8.97950478 -8.94261136 -8.91552301 -8.73650883 -8.66338714
  -8.41073971 -8.38914635 -8.29679891 -8.16845411 -8.12799082 -8.12710377
  -7.97909074 -7.94187268 -7.90076621 -7.88148523 -7.83782648 -7.8159095
  -7.72254029 -7.72034674]
 [-9.96090267 -8.97950478 -8.94261136 -8.91552301 -8.73650883 -8.66338714
  -8.41073971 -8.38914635 -8.29679891 -8.16845411 -8.12799082 -8.12710377
  -7.97909074 -7.94187268 -7.90076621 -7.88148523 -7.83782648 -7.8159095
  -7.72254029 -7.72034674]

注意;打印语句用于快速检查输出,即:

# 14-7
 -9.960902669
 -8.979504781
 -8.942611364
 -8.915523010
 -8.736508831
 -8.663387139
 -8.410739711
 -8.389146347
 -8.296798909
 -8.168454106
 -8.127990818
 -8.127103774
 -7.979090739
 -7.941872682
 -7.900766215
 -7.881485228
 -7.837826485
 -7.815909505
 -7.722540286
 -7.720346742

另外,这个 bash 脚本可以工作:

    #!/bin/bash

    # Run.dG.list_1

    while IFS= read -r d
    do
        echo "${d}.log"

   done <ligand.list

返回三个日志文件名:

 14-7.log
 15-7.log
 18-7.log

但是,如果我运行这个 bash 脚本:

#!/bin/bash

 # Run.dG.list_1

 while IFS= read -r d
 do
     echo "${d}.log"
     python3 DeltaGTable_V_sl.py
 done <ligand.list

DeltaGTable_V_sl.py 在哪里:

 import numpy as np

    print('${d}')

    data = np.genfromtxt('${d}.log', usecols=(1), skip_header=27, 
    skip_footer=1, encoding=None)
    print(data)

    np.savetxt('${d}.dG', data, fmt='%12.9f', header='${d}')
    print(data.dG)

我明白了:

 (base) comp@AbNormal:~/Apps/Python/PsoVina$ sh ./Run.dG.list_1.sh
     14-7.log
     python3: can't open file 'DeltaGTable_V_sl.py': [Errno 2] No such file 
     or directory
     15-7.log
     python3: can't open file 'DeltaGTable_V_sl.py': [Errno 2] No such file 
     or directory
     18-7.log
     python3: can't open file 'DeltaGTable_V_sl.py': [Errno 2] No such file 
     or directory
     C-VX3.log
     python3: can't open file 'DeltaGTable_V_sl.py': [Errno 2] No such file 
     or directory

因此,日志文件标签似乎在工作区中,但是 '${d}.log' 未被 genfromtxt 识别为 fname。虽然我 用谷歌搜索了我能想到的所有术语组合 缺少一些东西。

由于我可能有数百个文件需要处理,我将不胜感激 指向解决问题的方法。

提前致谢。

【问题讨论】:

  • 无法打开错误意味着python脚本不在python的路径上。它甚至还没有开始运行脚本。是的,'${d}' 不是将变量添加到脚本的方式,但这不是直接的方法。

标签: numpy genfromtxt


【解决方案1】:

Python 现在不知道 shell 脚本中使用的 ${d}

如果您想使用传递给 Python 脚本的命令行参数,您可以使用 argparsesys 模块。 argparse比较厉害,可以先试试sys

sys.argv[0] # name of the Python script.
sys.argv[1] # command line arguments 1
sys.argv[n] # command line arguments n

here

【讨论】:

    【解决方案2】:

    我可以创建您的错误消息:

    0029:~/mypy$ python3 foobar
    python3: can't open file 'foobar': [Errno 2] No such file or directory
    

    foobar 是一个随机名称,显然不存在于 Python 路径中。

    所以你甚至还没有开始DeltaGTable_V_sl.py,更不用说遇到genfromtxt 的问题了。所以你的大部分问题都不相关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-15
      • 2014-08-24
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2020-07-29
      相关资源
      最近更新 更多