标签: bioinformatics

您认为生物信息学的最佳语言是什么?

我在生物信息学方面完成了一些研究工作,我使用了Matlab.Matlab有很多强大的工具,易于使用.我确实考虑过基因组测序和预测代谢途径.我想知道其他人认为最好的是什么?或者可能没有一种特定的语言,只有少数几种能够最好地利用生物信息学的工作,这种工作是数学上很重要并处理大量数据.

matlab bioinformatics

9
推荐指数
3
解决办法
3569
查看次数

'StringCut'使用Mathematica在定义位置的左侧或右侧

在阅读这个问题时,我认为以下问题很简单StringSplit

给定以下字符串,我想在每个"D"的左侧"剪切"它,以便:

  1. 我得到一个片段列表(序列不变)

  2. StringJoin@fragments返回原始字符串(但如果我必须重新排序片段以获得此字符串,则无关紧要).也就是说,每个片段中的序列很重要,我不想丢失任何字符.

(我感兴趣的例子是蛋白质序列(字符串),其中每个字符代表一个字母代码中的氨基酸.我想获得通过用已知在"D"之前分裂的酶处理获得的所有片段的理论列表. )

str = "MTPDKPSQYDKIEAELQDICNDVLELLDSKGDYFRYLSEVASGDN"
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的是在每个"D"之前插入一个空格StringReplace然后使用StringSplit.至少可以说,这似乎很尴尬.

frags1 = StringSplit@StringReplace[str, "D" -> " D"]
Run Code Online (Sandbox Code Playgroud)

作为输出:

{"MTP", "DKPSQY", "DKIEAELQ", "DICN", "DVLELL", "DSKG", "DYFRYLSEVASG", "DN"}
Run Code Online (Sandbox Code Playgroud)

或者,使用StringReplacePart:

frags1alt = 
 StringSplit@StringReplacePart[str, " D", StringPosition[str, "D"]]
Run Code Online (Sandbox Code Playgroud)

最后(更现实地),如果我想在"D"之前分裂,前提是它前面的残留物不是"P"[即PD,(Pro-Asp)键未被切割],我这样做:

StringSplit@StringReplace[str, (x_ /; x != "P") ~~ "D" -> x ~~ " D"]
Run Code Online (Sandbox Code Playgroud)

有更优雅的方式吗?

速度不一定是个问题.我不太可能处理大于500个字符的字符串.我正在使用Mma 7.

更新

我添加了生物信息学标签,我认为从该领域添加一个例子可能会引起兴趣.

以下使用eutilsNCBI数据库中导入蛋白质序列(牛血清白蛋白,登录号3336842),然后产生(理论上的)胰蛋白酶消化物.假设A2不是"R","K"或"P",我认为当A1是"R"或"K"时,酶tripin在残基A1-A2之间切割.如果有人有任何改进建议,请随时提出修改建议.

使用sakra方法的修改('db ='之后的回车可能需要删除):

StringJoin /@ 
   Split[Characters[#], 
    And @@ Function[x, …
Run Code Online (Sandbox Code Playgroud)

string wolfram-mathematica bioinformatics

9
推荐指数
2
解决办法
337
查看次数

如何将其更改为"惯用"Perl?

我开始深入研究Perl,但是在编写"Perl-ly"代码时遇到了麻烦,而不是在Perl中编写C语言.如何更改以下代码以使用更多Perl习语,我应该如何学习习语?

只是解释它正在做什么:这个程序是一个模块的一部分,它对齐DNA或氨基酸序列(如果你关心这些事情,使用Needelman-Wunch).它创建了两个2d数组,一个用于存储两个序列中每个位置的分数,另一个用于跟踪路径,因此可以在以后重新创建得分最高的对齐.它工作正常,但我知道我并没有非常简洁明了地做事.

编辑:这是作业.我完成了它,但想要清理一下我的代码.如果您有兴趣,可以在课堂网站上找到有关实施算法的详细信息.

sub create_matrix {
    my $self = shift;
    #empty array reference
    my $matrix = $self->{score_matrix};
    #empty array ref
    my $path_matrix = $self->{path_matrix};
    #$seq1 and $seq2 are strings set previously
    my $num_of_rows = length($self->{seq1}) + 1;
    my $num_of_columns = length($self->{seq2}) + 1;

    #create the 2d array of scores
    for (my $i = 0; $i < $num_of_rows; $i++) {
        push(@$matrix, []);
        push(@$path_matrix, []);
        $$matrix[$i][0] = $i * $self->{gap_cost};
        $$path_matrix[$i][0] = 1;
    }

    #fill out the first row …
Run Code Online (Sandbox Code Playgroud)

perl bioinformatics

8
推荐指数
5
解决办法
724
查看次数

如何在R中执行基本的多序列比对?

(我试过在BioStars上问过这个问题,但是由于文本挖掘的某个人认为有更好的解决方案的可能性很小,我也在这里重新发布)

我想要实现的任务是对齐几个序列.

我没有匹配的基本模式.我所知道的只是"真实"模式的长度应该是"30",并且我在随机点引入了缺失值的序列.

这是一个这样的序列的例子,在左边我们看到了缺失值的真实位置,在右边我们看到了我们能够观察到的序列.

我的目标是仅使用我在右栏中获得的序列重建左列(基于每个位置中的许多字母相同的事实)

                     Real_sequence           The_sequence_we_see
1   CGCAATACTAAC-AGCTGACTTACGCACCG CGCAATACTAACAGCTGACTTACGCACCG
2   CGCAATACTAGC-AGGTGACTTCC-CT-CG   CGCAATACTAGCAGGTGACTTCCCTCG
3   CGCAATGATCAC--GGTGGCTCCCGGTGCG  CGCAATGATCACGGTGGCTCCCGGTGCG
4   CGCAATACTAACCA-CTAACT--CGCTGCG   CGCAATACTAACCACTAACTCGCTGCG
5   CGCACGGGTAAGAACGTGA-TTACGCTCAG CGCACGGGTAAGAACGTGATTACGCTCAG
6   CGCTATACTAACAA-GTG-CTTAGGC-CTG   CGCTATACTAACAAGTGCTTAGGCCTG
7   CCCA-C-CTAA-ACGGTGACTTACGCTCCG   CCCACCTAAACGGTGACTTACGCTCCG
Run Code Online (Sandbox Code Playgroud)

以下是重现上述示例的示例代码:

ATCG <- c("A","T","C","G")
set.seed(40)
original.seq <- sample(ATCG, 30, T)
seqS <- matrix(original.seq,200,30, T)
change.letters <- function(x, number.of.changes = 15, letters.to.change.with = ATCG) 
{
    number.of.changes <- sample(seq_len(number.of.changes), 1)
    new.letters <- sample(letters.to.change.with , number.of.changes, T)
    where.to.change.the.letters <- sample(seq_along(x) , number.of.changes, F)
    x[where.to.change.the.letters] <- new.letters
    return(x)
}
change.letters(original.seq)
insert.missing.values <- function(x) change.letters(x, …
Run Code Online (Sandbox Code Playgroud)

r bioinformatics alignment sequence text-alignment

8
推荐指数
2
解决办法
1万
查看次数

我在哪里下载基因表达数据?

我想下载源自微阵列实验产生的基因表达数据.我不太了解这个主题,但据我所知,行通常对应于基因,列对应于样本.理想情况下,我期待一个基因表达数据矩阵.

我一直在互联网上搜索,虽然看起来有很多地方可以下载这些数据,当我实际上下载数据时,我没有得到基因表达的矩阵.有人可以告诉我,如果有一个地方或如何以我期望的格式下载基因表达数据?

任何帮助表示赞赏.

bioinformatics download genome

8
推荐指数
2
解决办法
3305
查看次数

相关向量机

我正在寻找Relevance Vector Machines的下降实现.

任何人都可以推荐我可以接口的python库或C++实现吗?

EL,提前谢谢你们

python machine-learning bioinformatics computer-vision

8
推荐指数
1
解决办法
3104
查看次数

补充DNA序列

假设我有一个DNA序列.我想得到它的补充.我使用了以下代码,但我没有得到它.我究竟做错了什么 ?

s=readline()
ATCTCGGCGCGCATCGCGTACGCTACTAGC
p=unlist(strsplit(s,""))
h=rep("N",nchar(s))
unlist(lapply(p,function(d){
for b in (1:nchar(s)) {    
    if (p[b]=="A") h[b]="T"
    if (p[b]=="T") h[b]="A"
    if (p[b]=="G") h[b]="C"
    if (p[b]=="C") h[b]="G"
}
Run Code Online (Sandbox Code Playgroud)

replace r bioinformatics complement genetics

8
推荐指数
5
解决办法
7028
查看次数

使用多个分类器时 - 如何测量整体的性能?[SciKit学习]

我有一个分类问题(预测一个序列是否属于一个类),我决定使用多种分类方法,以帮助过滤掉误报.

(问题在于生物信息学 - 将蛋白质序列分类为神经肽前体序列.如果有人感兴趣,这是原始文章,以及用于生成特征和训练单个预测变量的代码).

现在,分类器具有大致相似的性能指标(在10倍CV的训练集上具有83-94%的准确度/精度/等),因此我的"天真"方法是简单地使用多个分类器(随机森林,ExtraTrees,SVM) (线性内核),SVM(RBF内核)和GRB),并使用简单多数投票.

我的问题是:我如何获得不同分类器和/或投票预测的绩效指标?也就是说,我想看看使用多个分类器是否可以提高我的性能,或者它们的组合是什么.

我的直觉可能是使用ROC分数,但我不知道如何"结合"结果并从分类器的组合中获得结果.(也就是说,要查看单独的每个分类器的ROC曲线[已知],然后使用分类器组合查看ROC曲线或训练数据的AUC).

(我目前使用随机森林和ExtraTrees方法使用"预测概率"过滤预测,然后我任意过滤预测得分低于'0.85'的结果.另外一层过滤是"有多少分类器同意这种蛋白质的正分类").

非常感谢你!!

(网站实施,我们使用多个分类器 - http://neuropid.cs.huji.ac.il/)

整个shebang是使用SciKit learn和python实现的.引文和所有!)

python machine-learning bioinformatics random-forest scikit-learn

8
推荐指数
1
解决办法
4749
查看次数

如何从出租车获得王国,门,类,秩序,家庭,属和物种的分类学特定ID?

我有一个如下所示的出租车列表:

1204725
2162
1300163
420247
Run Code Online (Sandbox Code Playgroud)

我希望从上面的出租车中获取一个带有分类标准的文件:

kingdom_id      phylum_id       class_id        order_id        family_id       genus_id        species_id   
Run Code Online (Sandbox Code Playgroud)

我正在使用" ete3 " 包.我使用工具ete-ncbiquery来告诉你上面的id的谱系.(我使用下面的命令从我的linux笔记本电脑上运行它)

ete3 ncbiquery --search 1204725 2162 13000163 420247 --info 
Run Code Online (Sandbox Code Playgroud)

结果如下:

# Taxid Sci.Name    Rank    Named Lineage   Taxid Lineage
2162    Methanobacterium formicicum species root,cellular organisms,Archaea,Euryarchaeota,Methanobacteria,Methanobacteriales,Methanobacteriaceae,Methanobacterium,Methanobacterium formicicum   1,131567,2157,28890,183925,2158,2159,2160,2162
1204725 Methanobacterium formicicum DSM 3637    no rank root,cellular organisms,Archaea,Euryarchaeota,Methanobacteria,Methanobacteriales,Methanobacteriaceae,Methanobacterium,Methanobacterium formicicum,Methanobacterium formicicum DSM 3637  1,131567,2157,28890,183925,2158,2159,2160,2162,1204725
420247  Methanobrevibacter smithii ATCC 35061   no rank root,cellular organisms,Archaea,Euryarchaeota,Methanobacteria,Methanobacteriales,Methanobacteriaceae,Methanobrevibacter,Methanobrevibacter smithii,Methanobrevibacter smithii ATCC 350611,131567,2157,28890,183925,2158,2159,2172,2173,420247
Run Code Online (Sandbox Code Playgroud)

我不知道哪些项目(IDS)对应于我要找的东西(如果有的话)

bioinformatics taxonomy ncbi phylogeny etetoolkit

8
推荐指数
1
解决办法
2107
查看次数

如果给出一个外群,我如何为一组物种生成所有可能的Newick树排列?

如果给出一个外群,我如何为一组物种生成所有可能的Newick树排列?

对于那些不知道Newick树格式的人,可以在以下网址找到一个很好的描述:https: //en.wikipedia.org/wiki/Newick_format

我想在给出一个外群的情况下为一组物种创建所有可能的Newick树排列.我期望处理的叶节点的数量很可能是4,5或6个叶节点.

允许"软"和"硬"多面体. https://en.wikipedia.org/wiki/Polytomy#Soft_polytomies_vs._hard_polytomies https://biology.stackexchange.com/questions/23667/evidence-discussions-of-hard-polytomy

下面显示的是理想输出,"E"设置为outgroup

理想输出:

((("A","B","C"),("D"),("E"));
((("A","B","D"),("C"),("E"));
((("A","C","D"),("B"),("E"));
((("B","C","D"),("A"),("E"));
((("A","B")("C","D"),("E"));
((("A","C")("B","D"),("E"));
((("B","C")("A","D"),("E"));
(("A","B","C","D"),("E"));
(((("A","B"),"C"),"D"),("E"));
Run Code Online (Sandbox Code Playgroud)

但是,我使用itertools带来的任何可能的解决方案,特别是itertools.permutations,都遇到了等效输出的问题.我想出的最后一个想法涉及下面显示的等效输出.

等效输出:

((("C","B","A"),("D"),("E"));
((("C","A","B"),("D"),("E"));
((("A","C","B"),("D"),("E"));
Run Code Online (Sandbox Code Playgroud)

这是我的解决方案的开始.但是,除了itertools之外,我现在还不确定该怎么回事.

import itertools

def Newick_Permutation_Generator(list_of_species, name_of_outgroup)
    permutations_list =(list(itertools.permutations(["A","B","C","D","E"])))

    for given_permutation in permutations_list:
        process(given_permutation)

Newick_Permutation_Generator(["A","B","C","D","E"], "E")
Run Code Online (Sandbox Code Playgroud)

python iterator loops permutation bioinformatics

8
推荐指数
1
解决办法
799
查看次数