问题标签 [fastq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parallel-processing - 多次运行是否使其并行?
我编写了一个简短的 python 脚本来处理我的大型 fastq 文件,大小从 5Gb 到 35Gb。我在具有许多内核的 Linux 服务器中运行脚本。该脚本根本不是并行编写的,平均需要大约 10 分钟才能完成单个文件。
如果我在几个文件上运行相同的脚本,例如
使用 & 符号来推回该过程。
这些脚本是否并行运行,我会节省一些时间吗?
对我来说似乎不是,因为我正在使用 top 命令来检查处理器的使用情况,并且随着我添加新的运行,每个使用率都会下降,或者它不应该使用接近 100% 的地方吗?
因此,如果它们没有并行运行,有没有办法让操作系统并行运行它们?
感谢您的回答
mysql - 插入字符串的特殊输出文件mysql?
我在这样的 mysql 表中有 3 列
我想以以下格式输出所有内容:
(它被称为像我这样的生物化学家的 fastq 文件..)
所以我想像这样查询输出,但它不会进入下一行,它只是将 /n 作为字符打印出来 .. :
bash - 在bash中执行字符串中的命令
我有一个字符串,其中包含我想在 bash 脚本中执行的命令。我怎样才能做到这一点?抱歉这么基本的问题,但我是 bash 的新手。这是我的代码:
我想执行 end_cm1 变量中的指令。
bioinformatics - Picard SamToFastq 仅提取一次读取,然后引发错误
我正在尝试从 bam 文件中提取一些 FastQ 文件。Picard 可以使用 SamToFastq 执行此操作,正如该工具的文档中所说,它接受 bam 或 sam 文件。
但是当我运行它时,它只提取一次读取,然后退出。这是错误消息。任何帮助表示赞赏。
biopython - Biopython——一次读取固定数量的 seq_records
我构建了一些从 fastq 文件中检索 PHRED 分数的代码,将它们全部放入一个列表中,然后将列表传递给另一个函数。它看起来像这样:
问题是这个循环会一直持续到所有的 seq_records 都被搜索并检索到相应的 PHRED 分数。为了更加保守 RAM,我希望有一些代码一次读取较少数量的 seq_records(例如 100 个),然后将它们各自的质量分数弹出到我正在进行的 uberlist 中。然后它将从接下来的 100 个 seq_records 中获取信息并再次执行循环。我无法理解如何完成这项工作。有任何想法吗?
python - 在 Python 中窥视 Popen 管道流
背景:
Linux 上的 Python 2.6.6。DNA 序列分析流程的第一部分。
我想从已安装的远程存储 (LAN) 中读取可能压缩过的文件,如果它是压缩过的;gunzip 将其压缩到一个流中(即使用gunzip FILENAME -c
),如果流(文件)的第一个字符是“@”,则将该整个流路由到一个过滤程序中,该程序接受标准输入的输入,否则只需将其直接通过管道传输到本地文件磁盘。我想最大限度地减少从远程存储读取/查找文件的次数(只需一次通过文件不应该是不可能的吗?)。
示例输入文件的内容,前四行对应于 FASTQ 格式的一条记录:
不应通过管道传输到过滤程序的文件包含如下所示的记录(前两行对应于 FASTA 格式的一条记录):
有些人编写了半伪代码来可视化我想要做什么(我知道这不可能像我写的那样)。我希望它有一些意义:
忽略这样一个事实,即代码不会像我在这里写的那样运行,而且我没有错误处理等,所有这些都已经在我的其他代码中了。我只是想要帮助窥视溪流或找到解决方法。如果可以的话,我会很棒,gunzip.stdout.peek(1)
但我意识到这是不可能的。
到目前为止我所尝试的:
我认为 subprocess.Popen 可能会帮助我实现这一点,并且我尝试了很多不同的想法,其中包括尝试使用某种 io.BufferedRandom() 对象将流写入但我不知道那将如何工作。我知道流是不可搜索的,但也许一种解决方法可能是读取 gunzip-stream 的第一个字符,然后创建一个新流,您首先根据文件内容输入“@”或“>”,然后填充其余部分的 gunzip.stdout-stream 到新的流。然后将这个新流输入过滤器的 Popen 标准输入。
请注意,文件大小可能比可用内存大几倍。我不想从远程存储中对源文件执行一次以上的读取,也不想进行不必要的文件访问。
欢迎任何想法!请问我问题,以便我澄清我是否说得不够清楚。
python - 将文件映射到内存
我将首先解释我的问题是什么,因为了解我想要什么很重要:-)。
我正在研究一个 python 编写的管道,它使用几个外部工具来执行几个基因组数据分析。其中一个工具适用于非常大的 fastq 文件,这些文件最终不再是纯文本文件。
通常,这个 fastq 文件是 gzip 压缩的,因为它们是纯文本,所以压缩率非常高。大多数数据分析工具都可以处理压缩文件,但我们有一些不能。所以我们正在做的是解压缩文件,使用它们,最后重新压缩。
可以想象,这个过程是:
- 慢点
- 高磁盘消耗
- 占用带宽(如果在 NFS 文件系统中工作)
因此,我试图找出一种“欺骗”这些工具以直接处理 gzip 文件的方法,而无需接触工具的源代码。
我考虑过使用 FIFO 文件,并尝试过,但如果该工具多次读取文件,或者该工具在文件周围寻找,则不起作用。
所以基本上我有问题:
有没有办法将文件映射到内存中,以便您可以执行以下操作:
./tool mapped_file
(其中 mapped_file 并不是真正的文件,而是对内存映射文件的引用。关于如何实现我的目标,您还有其他建议吗?
非常感谢大家!
bioinformatics - samtools mpileup 结果“^F”是什么意思
这是 samtools mpileup 结果的一部分:
我不知道“^F”是什么意思,我咨询了mpileup指挥官的帮助,符号'^'标志着阅读的开始。'^' 减去 33 之后的字符的 ASCII 给出了映射质量。符号“$”标记读取段的结束。它没有说“F”,有人知道这个结果中“F”的含义吗?
python - 转到特定行并在 Python 中阅读接下来的几行
我有这个巨大的 (61GB) FASTQ文件,我想为其创建一个随机子集,但我无法将其加载到内存中。FASTQs 的问题是每四行都属于一起,否则我只会创建一个随机整数列表,并且只将这些整数的行写入我的子集文件。
到目前为止,我有这个:
在转到下一个随机整数之前,我不知道如何到达文件中的下三行。有人能帮我吗?
bash - 从名称取自另一个变量的变量中获取内容
我正在做一些shell脚本。
我使用这种结构来创建新变量:
这很好用,因为我可以像这样直接使用那些新创建的变量:
现在我想为名为 extension 的变量赋值:
分配的值应该是在变量 ${ARG}_ext 中找到的值。请问,我该怎么做?
我试过了
但这给了我变量的名称,我想要它的值。谢谢。