IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于人工智能的多肽药物分析问题(一) -> 正文阅读

[人工智能]基于人工智能的多肽药物分析问题(一)

2021SC@SDUSC

基于人工智能的多肽药物分析问题(一)

2021SC@SDUSC

1、本周工作

分析rosettaFold的源码中前期准备部分

2、源码分析

2.1 Parsing arguments

利用python的argparse模块编写与程序运行相关的命令行选项、参数和子命令解析器。

argparse 模块可以让使用者轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

	parser = argparse.ArgumentParser(description="Error predictor network with predicted distogram",
                                     epilog="v0.0.1")
    parser.add_argument("distogram",
                        action="store",
                        help="predicted distogram (npz format, key for distogram should be 'dist')")
    parser.add_argument("infolder",
                        action="store",
                        help="input folder name full of decoy pdbs having same sequence or path to a single pdb")
    parser.add_argument("outfolder",
                        action="store", nargs=argparse.REMAINDER,
                        help="output folder name. If a pdb path is passed this needs to be a .npz file. Can also be empty. Default is current folder or pdbname.npz")
    parser.add_argument('-prefix', default=None, help='prefix for input pdbs')
    parser.add_argument('--roll', action="store_true", default=False, help="Roll predicted distogram or not [False], should be added if you use distogram from Trunk")
    parser.add_argument("--pdb",
                        "-pdb",
                        action="store_true",
                        default=False,
                        help="Running on a single pdb file instead of a folder (Default: False)")
    parser.add_argument("--leavetemp",
                        "-lt",
                        action="store_true",
                        default=False,
                        help="leaving temporary files (Default: False)")

argparse 模块使用流程

  1. 创建解析器,使用 argparse 的第一步是创建一个 ArgumentParser 对象。
ap= argparse.ArgumentParser(description='Process some integers.')
  1. 添加参数
ap.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')
  1. 解析参数
ap.parse_args()
  1. 命令行调用py文件
# 例子
import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

命令行调用方式:

python argparseU.py 1 2 3
输出 3 
python argparseU.py --sum 1 2 3
输出 6

经统计,该源码共添加了12个命令行参数,分别是:

distogram 
infolder 
outfolder 
-prefix
--roll 
-pdb 
--leavetemp 
--verbose
--process 
--gpu 
--featurize 
--reprocess 

各个参数的作用分别是:

  • distogram # 使用柱状图模式预测
  • infolder # 输入pdb数据集所在文件夹
  • outfolder # 设置输出文件夹的名字 若pdb路径,则需要 .npz文件
  • -prefix # 输入PDBS的前缀
  • –roll # 在使用Trunk的统计图时,添加Roll预测的统计图
  • -pdb # 单个pdb
  • –leavetemp # 删除临时文件 默认为False
  • –verbose # 详细标志
  • –process # 使用的cpu个数
  • –gpu # 使用gpu个数
  • –featurize # 只运行featurization
  • –reprocess # 重新处理特征文件

以上命令行参数作为前提,有助于后期命令行直接调用模型对蛋白质的结构进行预测

2.2 Checking file availabilities

该部分代码是用于检查文件的可用性

  1. 检查 --outfolder 参数所标识的文件的可用性
    if len(args.outfolder)>1:
        print(f"Only one output folder can be specified, but got {args.outfolder}", file=sys.stderr)
        return -1

    if len(args.outfolder)==0:
        args.outfolder = ""
    else:
        args.outfolder = args.outfolder[0]
  • 当输出文件夹数目大于1的时候抛出异常

  • 当文件数目为0的时候则为默认情况

  • 其余情况则采用第一个参数所示的值

  1. 检查 infolder参数
    if args.infolder.endswith('.pdb'):
        args.pdb = True
    
    if not args.pdb:
        if not isdir(args.infolder):
            print("Input folder does not exist.", file=sys.stderr)
            return -1
        
        #default is current folder
        if args.outfolder == "":
            args.outfolder='.'
        if not isdir(args.outfolder):
            print("Creating output folder:", args.outfolder)
            os.mkdir(args.outfolder)
    else:
        if not isfile(args.infolder):
            print("Input file does not exist.", file=sys.stderr)
            return -1
        
        #default is output name with extension changed to npz
        if args.outfolder == "":
            args.outfolder = os.path.splitext(args.infolder)[0]+".npz"

        if not(".pdb" in args.infolder and ".npz" in args.outfolder):
            print("Input needs to be in .pdb format, and output needs to be in .npz format.", file=sys.stderr)
            return -1

流程:

判断输入文件格式是否为pdb格式:

? 是:

? 判断文件是否存在,不是则中断执行,是则继续执行

? 若输出文件为空,则为输出文件命名

? 判断输出文件和出入文件的格式是否正确,是则正常执行,否则中断执行

? 不是:

? 判断是否为目录地址 是则继续执行 ,否则执行中断

? 判断是否为当前目录 默认为当前目录

  1. 设置文件输出目录信息
    script_dir = os.path.dirname(__file__)
    base = os.path.join(script_dir, "models/")
    modelpath = base + "smTr"
        
    if not isdir(modelpath+"_rep1"):
        print("Model checkpoint does not exist", file=sys.stderr)
        return -1

3.总结

本文所示源码对调用该模型的命令行参数进行了设置,便于在后期使用命令行调用模型进行预测结构的时候可以动态调整模型所用到的各个参数,包括输入输出文件位置,使用cpu,gpu的个数以及是否采用柱状图表进行分析等等;

此外,该系统还对输入的文件格式进行了限制,当输入的文件参数不准确,或者输出文件目录参数不准确则会终止执行并给出用户相应的提示,保证了系统的稳健运行。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:48:21  更:2021-10-08 11:50:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:29:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码