小编Koa*_*ala的帖子

如何解析文件,创建记录并对记录执行操作,包括术语频率和距离计算

我是一个介绍Perl课程的学生,正在寻找建议和反馈我的方法来编写一个小的(但棘手的)程序来分析有关原子的数据.我的教授鼓励论坛.我没有使用Perl subs或模块(包括Bioperl),因此请将响应限制在适当的"初学者级别",以便我能够理解并从您的建议和/或代码中学习(也请限制"魔术").

该计划的要求如下:

  1. 从命令行读取一个文件(包含有关Atoms的数据)并创建一个原子记录数组(每个换行符一个记录/原子).对于程序需要存储的每条记录:

    •原子的序列号(第7 - 11栏)
    •它所属的氨基酸的三个字母的名称(第18 - 20栏)
    •原子的三个坐标(x,y,z)(第31-54栏)
    •原子的单字母或双字母元素名称(例如C,O,N,Na)(cols 77-78)

  2. 提示三个命令之一:freq,length,density d(d是某个数字):

    •freq - 文件中每种原子的数量(例如氮,钠等)将显示如下:N:918 S:23
    •长度 - 坐标之间的距离
    •密度d(其中d是数字) - 程序将提示输入文件的名称以保存计算,并将包含该原子与每个其他原子之间的距离.如果该距离小于或等于数字d,则增加原子数的计数在该距离内,除非该计数为零到文件.输出将看起来像:
    1:5
    2:3
    3:6
    ...(非常大的文件),并将在它完成时关闭.

我正在寻找下面代码中我写的(并且需要写)的反馈.我特别感谢有关如何编写我的潜艇的任何反馈.我在底部包含了示例输入数据.

我看到的程序结构和功能描述:

$^W = 1; # turn on warnings
use strict; # behave!

my @fields;
my @recs;

while ( <DATA> ) {
 chomp;
 @fields = split(/\s+/);
 push @recs, makeRecord(@fields);
}

for (my $i = 0; $i < @recs; $i++) {
 printRec( $recs[$i] );
}
    my %command_table = (
 freq => \&freq, …
Run Code Online (Sandbox Code Playgroud)

perl hash bioinformatics

6
推荐指数
1
解决办法
912
查看次数

用于模拟RNA合成的Perl程序

寻找关于如何处理我的Perl编程家庭作业编写RNA合成程序的建议.我总结并概述了下面的程序.具体来说,我正在寻找下面的块的反馈(我将编号以便于参考).我读过安德鲁约翰逊的"Perl编程元素"第6章(好书).我还阅读了perlfunc和perlop pod-pages,没有任何内容可以从哪里开始.

程序描述:程序应该从命令行读取输入文件,将其翻译成RNA,然后将RNA转录成一系列大写的单字母氨基酸名称.

  1. 接受命令行上指定的文件

    在这里我将使用<>运算符

  2. 检查以确保该文件仅包含acgt或die

    if ( <> ne [acgt] ) { die "usage: file must only contain nucleotides \n"; }  
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将DNA转录为RNA(每个A替换为U,T替换为A,C替换为G,G替换为C)

    不知道该怎么做

  4. 从第一次出现的"AUG"开始,把它转录成3个字符的"密码子".

    不确定,但我认为这是我将开始%哈希变量的地方?

  5. 取3个字符"密码子"并给它们一个字母符号(一个大写的单字母氨基酸名称)

    使用键赋值(这里有70种可能性,所以我不确定存储位置或访问方式)

  6. 如果遇到间隙,则启动新行并重复处理

    不确定,但我们可以假设差距是三倍的倍数.

  7. 我是以正确的方式接近这个吗?是否有我可以忽略的Perl功能可以简化主程序?

注意

必须是自包含程序(密码子名称和符号的存储值).

每当程序读取没有符号的密码子时,这是RNA中的缺口,它应该开始一个新的输出系列并从下一次出现的"AUG"开始.为简单起见,我们可以假设间隙总是三倍的倍数.

在我花费任何额外时间进行研究之前,我希望得到确认,我正在采取正确的方法.感谢您花时间阅读并分享您的专业知识!

perl hash bioinformatics

3
推荐指数
1
解决办法
1065
查看次数

标签 统计

bioinformatics ×2

hash ×2

perl ×2