text:
* Pricing and Sizing listed under photo...
Urbane Towels by Kassatex Fine Linens is a luxurious additon to your bath. Beautiful 100 percent long staple Turkish cotton with a lovely horizontal rib design. Made in Turkey. Available in bath, hand and wash towels, as well as a bath sheet and tub mat in your choice of colors. Machine wash cold, tumble dry low-medium. Do not bleach. To preserve color please avoid cleansers with harsh chemicals including Benzoyl Peroxide.
Find the Urbane Towels 6 Color Options by Kassatex Fine Linens cheaper?Let us know and we will BEAT it by 10%! CLICK HERE for more information.
See more patterns by Towels click here!
Please note this pattern is a special order. Click here for more details.
BeddingSuperstore.com only sells 100% Authentic Brand Name Bedding.
When shopping with Beddingsuperstore.com you can be confident in knowing we do
not sell seconds or damaged items - ever. You can also be assured we do not store
any credit card numbers and use state-of-the-art credit card security.


text:
Ubuntu is releasing the latest version of their Ubuntu operating system today! Go download it now!
Here's what's new in Ubuntu 8.10:
- X.Org 7.4
- Linux kernel 2.6.27
- Encrypted private directory
- Guest session
- Network Manager 0.7
- Samba 3.2
- PAM authentication framework
- Totem BBC plugin
- Server Virtualization
- Notable inclusion in the main repository
- Boot degraded raid setting
- Service command now supported
- OpenLDAP using "cn=config"
- Service-aware Uncomplicated Firewall (ufw)
Ubuntu brings you the newest GNOME 2.24 desktop environment with tons of bug-fixes and new features, some of which include:
- Nautilus file manager has tab support (by Christian Neumair) and Eject icons for removable drives in Places sidebar (by Stefano Teso, Cosimo Cecchi, Christian Neumair, and others).
- File Roller archive manager now supports ALZ, RZIP, CAB, TAR.7Z file types also (by Paolo Bacchilega and Changwoo Ryu).
X.Org 7.4
X.Org 7.4, the latest stable version of X.Org, is available in Intrepid. This release brings much better support for hot-pluggable input devices such as tablets, keyboards, and mice. At the same time this will allow the great majority of users to run without a /etc/X11/xorg.conf file. A new failsafe X is introduced, to give better tools for troubleshooting X startup failures.
Two of the older nvidia binary drivers are not available for X.Org 7.4 yet, so users of these drivers will be automatically switched to the corresponding open source drivers.
Linux kernel 2.6.27
Ubuntu 8.10 RC includes Linux kernel 2.6.27, a significant release with better hardware support and numerous bug-fixes.
Encrypted private directory
The ecryptfs-utils package was recently promoted to Ubuntu main, with support for a secret encrypted folder in your Home Folder (by Michael Halcrow, Dustin Kirkland, and Daniel Baumann).
You can help test this new feature by going to Applications → Accessories → Terminal and typing:
- sudo aptitude install ecryptfs-utils
- ecryptfs-setup-private
Guest session
The User Switcher panel applet (package fast-user-switch-applet) now provides an extra entry for starting a Guest session (by Martin Pitt). This creates a temporary password-less user account with restricted privileges: the account cannot access any users' home directories, nor permanently store data. This is sufficiently safe to lend your laptop to someone else for a quick email check.
Network Manager 0.7
Ubuntu 8.10 RC ships Network Manager 0.7 (by Dan Williams and others), which comes with long-expected features, such as:
- system wide settings (i.e., no need to log in in order to get a connection)
- management of 3G connections (GSM/CDMA)
- management of multiple active devices at once
- management of PPP and PPPOE connections
- management of devices with static IP configurations
- route management for devices
More information can be found on the Network Manager wiki.
DKMS (by Dell) is included in Ubuntu 8.10, allowing kernel drivers to be automatically rebuilt when new kernels are released. This makes it possible for kernel package updates to be made available immediately without waiting for rebuilds of driver packages, and without third-party driver packages becoming out of date when installing these kernel updates.
Samba 3.2
A lot of new features have been added in Samba 3.2 amongst them:
- clustered file server support
- encrypted network transport
- ipv6 support
- better integration with the latest version of Microsoft Windows™ clients and servers.
PAM authentication framework
Ubuntu 8.10 RC features a new pam-auth-update tool, which allows simple management of PAM authentication configuration for both desktops and servers (by Steve Langasek). Packages providing PAM modules will be configured automatically, and users can adjust their authentication preferences by running sudo pam-auth-update.
More information can be found in the Ubuntu wiki.
Totem BBC plugin
Ubuntu 8.10 RC features a new plugin for the Totem movie player that fetches free digital content from the BBC. To enable it, start Totem (Applications -> Sound & Video -> Movie Player), enable the plugin (Edit -> Plugins -> BBC content viewer) and select "BBC" from the drop-down labelled "Playlist".
Thanks to the BBC and Collabora for their work developing this feature.
Server Virtualization
This is a complete rewrite of ubuntu-vm-builder featuring a better template system, a plugin architecture allowing support for other distributions, front-ends and additional functionalities such as post install task (–exec, –copy) or first boot (–first-boot, –first-login). It provides a compatibility mode with the previous command-line syntax and adds better reporting.
Python-vm-builder allows you to create a new virtual machine in a few minutes without going through the interactive installation process. It can be very useful for developers, software vendors or system administrators. A tutorial is available at https://help.ubuntu.com/community/JeOSVMBuilder
Ubuntu as a Xen guest
Using Ubuntu as a Xen guest is now a supported option included in the standard server kernel and is a choice when building virtual machines with python-vm-builder.
JeOS is now an option in the server installer
In an effort to simplify our build process and avoid confusion when trying to install JeOS on real hardware, JeOS is no longer provided as a separate ISO. Instead, it is an option that is activated on the server installer by pressing F4 on the first screen and selecting the "Install a minimal virtual machine" option.
Notable inclusion in the main repository
The following packages have been included in the main repository and are now supported options that can be of particular interest for server administrators:
- Sun's Java OpenJDK 1.6 – an open source implementation of the Java development kit
- Apache's Tomcat 6 – A Java servlet container
- ClamAV – a virus detection engine that can be coupled to mail servers
- SpamAssassin – A spam detection engine that can be coupled to mail servers
Boot degraded raid setting
Traditionally, booting an Ubuntu installation with the root filesystem on a degraded RAID drops the system into a busybox prompt in the initramfs. This is the safest choice as it will prevent any further possible harm to data and let administrator pick what to do, but was causing issues with server hosted in remote locations. A system administrator can now statically configure their machines to continue on booting even if a disk is bad in the array by issuing the following command:
echo "BOOT_DEGRADED=true" | sudo tee -a /etc/initramfs-tools/conf.d/mdadm
Additionally, this can be specified on the kernel boot line with the bootdegraded=[true|false] parameter.
Service command now supported
Fedora or Red-Hat administrators will now feel a bit more comfortable using Ubuntu as the service command they had been using to manage daemons is now standard on Ubuntu. In addition to the traditional sudo /etc/init.d/<service> [start|stop|restart] way of managing a process, it is now also possible to use sudo service <service> [start|stop|restart].
In addition, numerous standard services now support the status option so that, e.g., sudo service postfix status will now report if the service is running or not.
OpenLDAP using "cn=config"
The default installation of the OpenLDAP server now uses the cn=config extension, which allows automatic synchronization between LDAP replicas of configuration changes made.
Service-aware Uncomplicated Firewall (ufw)
Common services now inform ufw of the ports that are recommended for their proper enabling, so the administrator can open them in a single simple command ufw allow <service>.

subset: commoncrawl


text:
The U.S. Chamber of Commerce and the Software and Information Industry Association (SIIA) both applauded the signing of the controversial Anti-Counterfeiting Trade Agreement (ACTA) by representatives of the U.S., Japan, and six other governments in Toyko on Saturday.
Representatives from Australia, Canada, Morocco, New Zealand, South Korea and Singapore also signed ACTA, an agreement to help each other enforcement intellectual property laws and work together on border enforcement of counterfeit goods. Representatives of the European Union and Switzerland were at the signing ceremony but did not sign the agreement, according to a press release from the Office of U.S. Trade Representative.
The signing of ACTA is a "big victory" for U.S. businesses, workers, and industries that rely on intellectual property (IP), Mark Elliot, executive vice president of the Chamber's Global Intellectual Property Center, said in a statement. "This accord raises the bar on enforcement by improving cooperation among partners, harmonizing how we confront IP theft, addressing IP theft online, and setting a positive example for nations that aspire to have strong IP enforcement regimes," he added.
The Chamber called on the negotiating countries to move quickly to put in place the enforcement processes in the agreement.
The agreement will extend the reach of SIIA's efforts to thwart counterfeit software, allowing the trade group to target foreign websites trafficking in infringing software, said Keith Kupferschmid, SIIA's senior vice president for intellectual property policy and enforcement. ACTA is a "major advancement" in international cooperation around IP enforcement, he said in a statement.
Critics of ACTA in the U.S. have said the treaty could allow foreign organizations to target U.S. companies and websites that don't comply with overseas copyright laws. Many critics questioned the secrecy of the ACTA negotiations, with countries talking for four years before releasing a working text of the deal in early 2010.
In September, some members of the European Parliament's legal affairs committee questioned whether ACTA is compatible with European law.
Last week, James Love and Krista Cox, with IP research and advocacy group Knowledge Ecology International, wrote that ACTA is incompatible with U.S. law in dealing with injunctions and damages related to copyright infringement. ACTA does not include the same limitations on damages that U.S. law does, they wrote, and the treaty allows for court injunctions in cases where U.S. law doesn't, including paid advertisements in newspapers and magazines.
Public Knowledge, a digital rights group, called on U.S. President Barack Obama's administration to make it clear that ACTA will not change U.S. law, including protections for ISPs and websites in the Digital Millennium Copyright Act. "We believe such a statement is necessary because there are still sufficient ambiguities in some parts of the agreement that could conflict with U.S. law," Gigi Sohn, president and cofounder of Public Knowledge, said last week.
The final version of ACTA is an improvement over earlier drafts, but the process of writing the agreement was "extremely flawed," Sohn said.
The eight countries signing the agreement called it a "significant achievement" in the enforcement intellectual property laws. "When it enters into force with all participants, the ACTA will formalize the legal foundation for a first-of-its-kind alliance of trading partners, representing more than half of world trade," the countries said in a joint statement.
Grant Gross covers technology and telecom policy in the U.S. government for The IDG News Service. Follow Grant on Twitter at GrantGross. Grant's e-mail address is email@example.com.


text:
It has been widely assumed that modern humans—Homo sapiens—first traveled out of Africa and settled in central and Western Europe before heading to Eastern Europe. That may not be the case. Recent finds from a site in Russia about 250 miles south of Moscow suggest that the first humans in Europe were Eastern European.The discoveries include bone and carved ivory artifacts. Researchers calculated the date they were made by determining that the ash surrounding the artifacts came from an eruption that occurred 40,000 years ago in southern Italy. "Some of the artifacts found right under the ash were almost certainly made by modern humans," says John Hoffecker, a University of Colorado archaeologist working at the site. Among them is an ivory piece that appears to be the head of a partially complete human figurine. Radiocarbon and other dating methods also helped establish that the artifacts—stone blade fragments, scrapers, shell ornaments, a bone awl, and various digging and carving tools—are an astonishing 42,000 to 45,000 years old.
The artifacts are most likely remnants from H. sapiens, not Neanderthals. "The shells came from the Mediterranean basin, a minimum of 300 miles away," Hoffecker says. "One of the things you see when modern humans show up is a big leap in the distances over which materials move." The carved piece of mammoth ivory is further proof of modern humans at work. "Carving ivory is confined to modern humans," Hoffecker says. "So whether it's a human figurine or not doesn't matter. A modern human carved it, and that human is older by a considerable amount than any previously found in Eastern Europe."


text:
- Software
- Open Access
- Published:
Searching for SNPs with cloud computing
Genome Biology volume 10, Article number: R134 (2009)
54k Accesses
342 Citations
30 Altmetric
As DNA sequencing outpaces improvements in computer speed, there is a critical need to accelerate tasks like alignment and SNP calling. Crossbow is a cloud-computing software tool that combines the aligner Bowtie and the SNP caller SOAPsnp. Executing in parallel using Hadoop, Crossbow analyzes data comprising 38-fold coverage of the human genome in three hours using a 320-CPU cluster rented from a cloud computing service for about $85. Crossbow is available from http://bowtie-bio.sourceforge.net/crossbow/.
Improvements in DNA sequencing have made sequencing an increasingly valuable tool for the study of human variation and disease. Technologies from Illumina (San Diego, CA, USA), Applied Biosystems (Foster City, CA, USA) and 454 Life Sciences (Branford, CT, USA) have been used to detect genomic variations among humans [1–5], to profile methylation patterns [6], to map DNA-protein interactions [7], and to identify differentially expressed genes and novel splice junctions [8, 9]. Meanwhile, technical improvements have greatly decreased the cost and increased the size of sequencing datasets. For example, at the beginning of 2009 a single Illumina instrument was capable of generating 15 to 20 billion bases of sequencing data per run. Illumina has projected [10] that its instrument will generate 90 to 95 billion bases per run by the end of 2009, quintupling its throughput in one year. Another study shows the per-subject cost for whole-human resequencing declining rapidly over the past year [11], which will fuel further adoption. Growth in throughput and adoption are vastly outpacing improvements in computer speed, demanding a level of computational power achievable only via large-scale parallelization.
Two recent projects have leveraged parallelism for whole-genome assembly with short reads. Simpson et al. [12] use ABySS to assemble the genome of a human from 42-fold coverage of short reads [2] using a cluster of 168 cores (21 computers), in about 3 days of wall clock time. Jackson and colleagues [13] assembled a Drosophila melanogaster genome from simulated short reads on a 512-node BlueGene/L supercomputer in less than 4 hours of total elapsed time. Though these efforts demonstrate the promise of parallelization, they are not widely applicable because they require access to a specific type of hardware resource. No two clusters are exactly alike, so scripts and software designed to run well on one cluster may run poorly or fail entirely on another cluster. Software written for large supercomputers like BlueGene/L is less reusable still, since only select researchers have access to such machines. Lack of reusability also makes it difficult for peers to recreate scientific results obtained using such systems.
An increasingly popular alternative for large-scale computations is cloud computing. Instead of owning and maintaining dedicated hardware, cloud computing offers a 'utility computing' model, that is, the ability to rent and perform computation on standard, commodity computer hardware over the Internet. These rented computers run in a virtualized environment where the user is free to customize the operating system and software installed. Cloud computing also offers a parallel computing framework called MapReduce [14], which was designed by Google to efficiently scale computation to many hundreds or thousands of commodity computers. Hadoop [15] is an open source implementation of MapReduce that is widely used to process very large datasets, including at companies such as Google, Yahoo, Microsoft, IBM, and Amazon. Hadoop programs can run on any cluster where the portable, Java-based Hadoop framework is installed. This may be a local or institutional cluster to which the user has free access, or it may be a cluster rented over the Internet through a utility computing service. In addition to high scalability, the use of both standard software (Hadoop) and standard hardware (utility computing) affords reusability and reproducibility.
The CloudBurst project [16] explored the benefits of using Hadoop as a platform for alignment of short reads. CloudBurst is capable of reporting all alignments for millions of human short reads in minutes, but does not scale well to human resequencing applications involving billions of reads. Whereas CloudBurst aligns about 1 million short reads per minute on a 24-core cluster, a typical human resequencing project generates billions of reads, requiring more than 100 days of cluster time or a much larger cluster. Also, whereas CloudBurst is designed to efficiently discover all valid alignments per read, resequencing applications often ignore or discount evidence from repetitively aligned reads as they tend to confound genotyping. Our goal for this work was to explore whether cloud computing could be profitably applied to the largest problems in comparative genomics. We focus on human resequencing, and single nucleotide polymorphism (SNP) detection specifically, in order to allow comparisons to previous studies.
We present Crossbow, a Hadoop-based software tool that combines the speed of the short read aligner Bowtie [17] with the accuracy of the SNP caller SOAPsnp [18] to perform alignment and SNP detection for multiple whole-human datasets per day. In our experiments, Crossbow aligns and calls SNPs from 38-fold coverage of a Han Chinese male genome [5] in as little as 3 hours (4 hours 30 minutes including transfer time) using a 320-core cluster. SOAPsnp was previously shown to make SNP calls that agree closely with genotyping results obtained with an Illumina 1 M BeadChip assay of the Han Chinese genome [18] when used in conjunction with the short read aligner SOAP [19]. We show that SNPs reported by Crossbow exhibit a level of BeadChip agreement comparable to that achieved in the original SOAPsnp study, but in far less time.
Crossbow is open source software available from the Bowtie website [20]. Crossbow can be run on any cluster with appropriate versions of Hadoop, Bowtie, and SOAPsnp installed. Crossbow is distributed with scripts allowing it to run either on a local cluster or on a cluster rented through Amazon's Elastic Compute Cloud (EC2) [21] utility computing service. Version 0.1.3 of the Crossbow software is also provided as Additional data file 1.
Crossbow harnesses cloud computing to efficiently and accurately align billions of reads and call SNPs in hours, including for high-coverage whole-human datasets. Within Crossbow, alignment and SNP calling are performed by Bowtie and SOAPsnp, respectively, in a seamless, automatic pipeline. Crossbow can be run on any computer cluster with the prerequisite software installed. The Crossbow package includes scripts that allow the user to run an entire Crossbow session remotely on an Amazon EC2 cluster of any size.
Resequencing simulated data
To measure Crossbow's accuracy where true SNPs are known, we conducted two experiments using simulated paired-end read data from human chromosomes 22 and X. Results are shown in Tables 1 and 2. For both experiments, 40-fold coverage of 35-bp paired-end reads were simulated from the human reference sequence (National Center for Biotechnology Information (NCBI) 36.3). Quality values and insert lengths were simulated based on empirically observed qualities and inserts in the Wang et al. dataset [5].
SOAPsnp can exploit user-supplied information about known SNP loci and allele frequencies to refine its prior probabilities and improve accuracy. Therefore, the read simulator was designed to simulate both known HapMap [22] SNPs and novel SNPs. This mimics resequencing experiments where many SNPs are known but some are novel. Known SNPs were selected at random from actual HapMap alleles for human chromosomes 22 and X. Positions and allele frequencies for known SNPs were calculated according to the same HapMap SNP data used to simulate SNPs.
For these simulated data, Crossbow agrees substantially with the true calls, with greater than 99% precision and sensitivity overall for chromosome 22. Performance for HapMap SNPs is noticeably better than for novel SNPs, owing to SOAPsnp's ability to adjust SNP-calling priors according to known allele frequencies. Performance is similar for homozygous and heterozygous SNPs overall, but novel heterozygous SNPs yielded the worst performance of any other subset studied, with 96.6% sensitivity and 94.6% specificity on chromosome 22. This is as expected, since novel SNPs do not benefit from prior knowledge, and heterozygous SNPs are more difficult than homozygous SNPs to distinguish from the background of sequencing errors.
Whole-human resequencing
To demonstrate performance on real-world data, we used Crossbow to align and call SNPs from the set of 2.7 billion reads and paired-end reads sequenced from a Han Chinese male by Wang et al [5]. Previous work demonstrated that SNPs called from this dataset by a combination of SOAP and SOAPsnp are highly concordant with genotypes called by an Illumina 1 M BeadChip genotyping assay of the same individual [18]. Since Crossbow uses SOAPsnp as its SNP caller, we expected Crossbow to yield very similar, but not identical, output. Differences may occur because: Crossbow uses Bowtie whereas the previous study used SOAP to align the reads; the Crossbow version of SOAPsnp has been modified somewhat to operate within a MapReduce context; in this study, alignments are binned into non-overlapping 2-Mbp partitions rather than into chromosomes prior to being given to SOAPsnp; and the SOAPsnp study used additional filters to remove some additional low confidence SNPs. Despite these differences, Crossbow achieves comparable agreement with the BeadChip assay and at a greatly accelerated rate.
We downloaded 2.66 billion reads from a mirror of the YanHuang site [23]. These reads cover the assembled human genome sequence to 38-fold coverage. They consist of 2.02 billion unpaired reads with sizes ranging from 25 to 44 bp, and 658 million paired-end reads. The most common unpaired read lengths are 35 and 40 bp, comprising 73.0% and 17.4% of unpaired reads, respectively. The most common paired-end read length is 35 bp, comprising 88.8% of all paired-end reads. The distribution of paired-end separation distances is bimodal with peaks in the 120 to 150 bp and 420 to 460 bp ranges.
Table 3 shows a comparison of SNPs called by either of the sequencing-based assays - Crossbow labeled 'CB' and SOAP+SOAPsnp labeled 'SS' - against SNPs obtained with the Illumina 1 M BeadChip assay from the SOAPsnp study [18]. The 'sites covered' column reports the proportion of BeadChip sites covered by a sufficient number of sequencing reads. Sufficient coverage is roughly four reads for diploid chromosomes and two reads for haploid chromosomes (see Materials and methods for more details about how sufficient coverage is determined). The 'Agreed' column shows the proportion of covered BeadChip sites where the BeadChip call equaled the SOAPsnp or Crossbow call. The 'Missed allele' column shows the proportion of covered sites where SOAPsnp or Crossbow called a position as homozygous for one of two heterozygous alleles called by BeadChip at that position. The 'Other disagreement' column shows the proportion of covered sites where the BeadChip call differed from the SOAPsnp/Crossbow in any other way. Definitions of the 'Missed allele' and 'Other disagreement' columns correspond to the definitions of 'false negatives' and 'false positives', respectively, in the SOAPsnp study.
Both Crossbow and SOAP+SOAPsnp exhibit a very high level of agreement with the BeadChip genotype calls. The small differences in number of covered sites (<2% higher for Crossbow) and in percentage agreement (<0.1% lower for Crossbow) are likely due to the SOAPsnp study's use of additional filters to remove some SNPs prior to the agreement calculation, and to differences in alignment policies between SOAP and Bowtie. After filtering, Crossbow reports a total of 3,738,786 SNPs across all autosomal chromosomes and chromosome X, whereas the SNP GFF file available from the YanHaung site [23] reports a total of 3,072,564 SNPs across those chromosomes. This difference is also likely due to the SOAPsnp study's more stringent filtering.
Cloud performance
The above results were computed on a Hadoop 0.20 cluster with 10 worker nodes located in our laboratory, where it required about 1 day of wall clock time to run. Each node is a four-core 3.2 GHz Intel Xeon (40 cores total) running 64-bit Redhat Enterprise Linux Server 5.3 with 4 GB of physical memory and 366 GB of local storage available for the Hadoop Distributed Filesystem (HDFS) and connected via gigabit ethernet. We also performed this computation using Amazon's EC2 service on clusters of 10, 20 and 40 nodes (80, 160, and 320 cores) running Hadoop 0.20. In each case, the Crossbow pipeline was executed end-to-end using scripts distributed with the Crossbow package. In the 10-, 20- and 40-node experiments, each individual node was an EC2 Extra Large High CPU Instance, that is, a virtualized 64-bit computer with 7 GB of memory and the equivalent of 8 processor cores clocked at approximately 2.5 to 2.8 Ghz. At the time of this writing, the cost of such nodes was $0.68 ($0.76 in Europe) per node per hour.
Before running Crossbow, the short read data must be stored on a filesystem the Hadoop cluster can access. When the Hadoop cluster is rented from Amazon's EC2 service, users will typically upload input data to Amazon's Simple Storage Service (S3) [24], a service for storing large datasets over the Internet. For small datasets, data transfers typically complete very quickly, but for large datasets (for example, more than 100 GB of compressed short read data), transfer time can be significant. An efficient method to copy large datasets to S3 is to first allocate an EC2 cluster of many nodes and have each node transfer a subset of the data from the source to S3 in parallel. Crossbow is distributed with a Hadoop program and driver scripts for performing these bulk parallel copies while also preprocessing the reads into the form required by Crossbow. We used this software to copy 103 gigabytes of compressed short read data from a public FTP server located at the European Bioinformatics Institute in the UK to an S3 repository located in the US in about 1 hour 15 minutes (approximately 187 Mb/s effective transfer rate). The transfer cost approximately $28: about $3.50 ($3.80 in Europe) in cluster rental fees and about $24 ($24 in Europe) in data transfer fees.
Transfer time depends heavily on both the size of the data and the speed of the Internet uplink at the source. Public archives like NCBI and the European Bioinformatics Institute (EBI) have very high-bandwidth uplinks to the >10 Gb/s JANET and Internet2 network backbones, as do many academic institutions. However, even at these institutions, the bandwidth available for a given server or workstation can be considerably less (commonly 100 Mb/s or less). Delays due to slow uplinks can be mitigated by transferring large datasets in stages as reads are generated by the sequencer, rather than all at once.
To measure how the whole-genome Crossbow computation scales, separate experiments were performed using 10, 20 and 40 EC2 Extra Large High CPU nodes. Table 4 presents the wall clock running time and approximate cost for each experiment. The experiment was performed once for each cluster size. The results show that Crossbow is capable of calling SNPs from 38-fold coverage of the human genome in under 3 hours of wall clock time and for about $85 ($96 in Europe).
Figure 1 illustrates scalability of the computation as a function of the number of processor cores allocated. Units on the vertical axis are the reciprocal of the wall clock time. Whereas wall clock time measures elapsed time, its reciprocal measures throughput - that is, experiments per hour. The straight diagonal line extending from the 80-core point represents hypothetical linear speedup, that is, extrapolated throughput under the assumption that doubling the number of processors also doubles throughput. In practice, parallel algorithms usually exhibit worse-than-linear speedup because portions of the computation are not fully parallel. In the case of Crossbow, deviation from linear speedup is primarily due to load imbalance among CPUs in the map and reduce phases, which can cause a handful of work-intensive 'straggler' tasks to delay progress. The reduce phase can also experience imbalance due to, for example, variation in coverage.
Materials and methods
Alignment and SNP calling in Hadoop
Hadoop is an implementation of the MapReduce parallel programming model. Under Hadoop, programs are expressed as a series of map and reduce phases operating on tuples of data. Though not all programs are easily expressed this way, Hadoop programs stand to benefit from services provided by Hadoop. For instance, Hadoop programs need not deal with particulars of how work and data are distributed across the cluster; these details are handled by Hadoop, which automatically partitions, sorts and routes data among computers and processes. Hadoop also provides fault tolerance by partitioning files into chunks and storing them redundantly on the HDFS. When a subtask fails due to hardware or software errors, Hadoop restarts the task automatically, using a cached copy of its input data.
A mapper is a short program that runs during the map phase. A mapper receives a tuple of input data, performs a computation, and outputs zero or more tuples of data. A tuple consists of a key and a value. For example, within Crossbow a read is represented as a tuple where the key is the read's name and the value equals the read's sequence and quality strings. The mapper is generally constrained to be stateless - that is, the content of an output tuple may depend only on the content of the corresponding input tuple, and not on previously observed tuples. This enables MapReduce to safely execute many instances of the mapper in parallel. Similar to a mapper, a reducer is a short program that runs during the reduce phase, but with the added condition that a single instance of the reducer will receive all tuples from the map phase with the same key. In this way, the mappers typically compute partial results, and the reducer finalizes the computation using all the tuples with the same key, and outputs zero or more output tuples. The reducer is also constrained to be stateless - that is, the content of an output tuple may depend only the content of the tuples in the incoming batch, not on any other previously observed input tuples. Between the map and reduce phases, Hadoop automatically executes a sort/shuffle phase that bins and sorts tuples according to primary and secondary keys before passing batches on to reducers. Because mappers and reducers are stateless, and because Hadoop itself handles the sort/shuffle phase, Hadoop has significant freedom in how it distributes parallel chunks of work across the cluster.
The chief insight behind Crossbow is that alignment and SNP calling can be framed as a series of map, sort/shuffle and reduce phases. The map phase is short read alignment where input tuples represent reads and output tuples represent alignments. The sort/shuffle phase bins alignments according to the genomic region ('partition') aligned to. The sort/shuffle phase also sorts alignments along the forward strand of the reference in preparation for consensus calling. The reduce phase calls SNPs for a given partition, where input tuples represent the sorted list of alignments occurring in the partition and output tuples represent SNP calls.
A typical Hadoop program consists of Java classes implementing the mapper and reducer running in parallel on many compute nodes. However, Hadoop also supports a 'streaming' mode of operation whereby the map and reduce functions are delegated to command-line scripts or compiled programs written in any language. In streaming mode, Hadoop executes the streaming programs in parallel on different compute nodes, and passes tuples into and out of the program as tab-delimited lines of text written to the 'standard in' and 'standard out' file handles. This allows Crossbow to reuse existing software for aligning reads and calling SNPs while automatically gaining the scaling benefits of Hadoop. For alignment, Crossbow uses Bowtie [17], which employs a Burrows-Wheeler index [25] based on the full-text minute-space (FM) index [26] to enable fast and memory-efficient alignment of short reads to mammalian genomes.
To report SNPs, Crossbow uses SOAPsnp [18], which combines multiple techniques to provide high-accuracy haploid or diploid consensus calls from short read alignment data. At the core of SOAPsnp is a Bayesian SNP model with configurable prior probabilities. SOAPsnp's priors take into account differences in prevalence between, for example, heterozygous versus homozygous SNPs and SNPs representing transitions versus those representing transversions. SOAPsnp can also use previously discovered SNP loci and allele frequencies to refine priors. Finally, SOAPsnp recalibrates the quality values provided by the sequencer according to a four-dimensional training matrix representing observed error rates among uniquely aligned reads. In a previous study, human genotype calls obtained using the SOAP aligner and SOAPsnp exhibited greater than 99% agreement with genotype calls obtained using an Illumina 1 M BeadChip assay of the same Han Chinese individual [18].
Crossbow's efficiency requires that the three MapReduce phases, map, sort/shuffle and reduce, each be efficient. The map and reduce phases are handled by Bowtie and SOAPsnp, respectively, which have been shown to perform efficiently in the context of human resequencing. But another advantage of Hadoop is that its implementation of the sort/shuffle phase is extremely efficient, even for human resequencing where mappers typically output billions of alignments and hundreds of gigabytes of data to be sorted. Hadoop's file system (HDFS) and intelligent work scheduling make it especially well suited for huge sort tasks, as evidenced by the fact that a 1,460-node Hadoop cluster currently holds the speed record for sorting 1 TB of data on commodity hardware (62 seconds) [27].
Modifications to existing software
Several new features were added to Bowtie to allow it to operate within Hadoop. A new input format (option --12) was added, allowing Bowtie to recognize the one-read-per-line format produced by the Crossbow preprocessor. New command-line options --mm and --shmem instruct Bowtie to use memory-mapped files or shared memory, respectively, for loading and storing the reference index. These features allow many Bowtie processes, each acting as an independent mapper, to run in parallel on a multi-core computer while sharing a single in-memory image of the reference index. This maximizes alignment throughput when cluster computers contain many CPUs but limited memory. Finally, a Crossbow-specific output format was implemented that encodes an alignment as a tuple where the tuple's key identifies a reference partition and the value describes the alignment. Bowtie detects instances where a reported alignment spans a boundary between two reference partitions, in which case Bowtie outputs a pair of alignment tuples with identical values but different keys, each identifying one of the spanned partitions. These features are enabled via the --partition option, which also sets the reference partition size.
The version of SOAPsnp used in Crossbow was modified to accept alignment records output by modified Bowtie. Speed improvements were also made to SOAPsnp, including an improvement for the case where the input alignments cover only a small interval of a chromosome, as is the case when Crossbow invokes SOAPsnp on a single partition. None of the modifications made to SOAPsnp fundamentally affect how consensus bases or SNPs are called.
The input to Crossbow is a set of preprocessed read files, where each read is encoded as a tab-delimited tuple. For paired-end reads, both ends are stored on a single line. Conversion takes place as part of a bulk-copy procedure, implemented as a Hadoop program driven by automatic scripts included with Crossbow. Once preprocessed reads are situated on a filesystem accessible to the Hadoop cluster, the Crossbow MapReduce job is invoked (Figure 2). Crossbow's map phase is short read alignment by Bowtie. For fast alignment, Bowtie employs a compact index of the reference sequence, requiring about 3 Gb of memory for the human genome. The index is distributed to all computers in the cluster either via Hadoop's file caching facility or by instructing each node to independently obtain the index from a shared filesystem. The map phase outputs a stream of alignment tuples where each tuple has a primary key containing chromosome and partition identifiers, and a secondary key containing the chromosome offset. The tuple's value contains the aligned sequence and quality values. The soft/shuffle phase, which is handled by Hadoop, uses Hadoop's KeyFieldBasedPartitioner to bin alignments according to the primary key and sort according to the secondary key. This allows separate reference partitions to be processed in parallel by separate reducers. It also ensures that each reducer receives alignments for a given partition in sorted order, a necessary first step for calling SNPs with SOAPsnp.
The reduce phase performs SNP calling using SOAPsnp. A wrapper script performs a separate invocation of the SOAPsnp program per partition. The wrapper also ensures that SOAPsnp is invoked with appropriate options given the ploidy of the reference partition. Files containing known SNP locations and allele frequencies derived from dbSNP [28] are distributed to worker nodes via the same mechanism used to distribute the Bowtie index. The output of the reduce phase is a stream of SNP tuples, which are stored on the cluster's distributed filesystem. The final stage of the Crossbow workflow archives the SNP calls and transfers them from the cluster's distributed filesystem to the local filesystem.
Cloud support
Crossbow comes with scripts that automate the Crossbow pipeline on a local cluster or on the EC2 [21] utility computing service. The EC2 driver script can be run from any Internet-connected computer; however, all the genomic computation is executed remotely. The script runs Crossbow by: allocating an EC2 cluster using the Amazon Web Services tools; uploading the Crossbow program code to the master node; launching Crossbow from the master; downloading the results from the cluster to the local computer; and optionally terminating the cluster, as illustrated in Figure 3. The driver script detects common problems that can occur in the cluster allocation process, including when EC2 cannot provide the requested number of instances due to high demand. The overall process is identical to running on a local dedicated cluster, except cluster nodes are allocated as requested.
Genotyping experiment
We generated 40-fold coverage of chromosomes 22 and X (NCBI 36.3_ using 35-bp paired-end reads. Quality values were assigned by randomly selecting observed quality strings from a pair of FASTQ files in the Wang et al. [5] dataset (080110_EAS51_FC20B21AAXX_L7_YHPE_PE1). The mean and median quality values among those in this subset are 21.4 and 27, respectively, on the Solexa scale. Sequencing errors were simulated at each position at the rate dictated by the quality value at that position. For instance, a position with Solexa quality 30 was changed to a different base with a probability of 1 in 1,000. The three alternative bases were considered equally likely.
Insert lengths were assigned by randomly selecting from a set of observed insert lengths. Observed insert lengths were obtained by aligning a pair of paired-end FASTQ files (the same pair used to simulate the quality values) using Bowtie with options '-X 10000 -v 2 --strata --best -m 1'. The observed mean mate-pair distance and standard deviation for this subset were 422 bp and 68.8 bp, respectively.
Bowtie version 0.10.2 was run with the '-v 2 --best --strata -m 1' to obtain unique alignments with up to two mismatches. We define an alignment as unique if all other alignments for that read have strictly more mismatches. SOAPsnp was run with the rank-sum and binomial tests enabled (-u and -n options, respectively) and with known-SNP refinement enabled (-2 and -s options). Positions and allele frequencies for known SNPs were calculated according to the same HapMap SNP data used to simulate SNPs. SOAPsnp's prior probabilities for novel homozygous and heterozygous SNPs were set to the rates used by the simulator (-r 0.0001 -e 0.0002 for chromosome 22 and -r 0.0002 for chromosome X).
An instance where Crossbow reports a SNP on a diploid portion of the genome was discarded (that is, considered to be homozygous for the reference allele) if it was covered by fewer than four uniquely aligned reads. For a haploid portion, a SNP was discarded if covered by fewer than two uniquely aligned reads. For either diploid or haploid portions, a SNP was discarded if the call quality as reported by SOAPsnp was less than 20.
Whole-human resequencing experiment
Bowtie version 0.10.2 and a modified version of SOAPsnp 1.02 were used. Both were compiled for 64-bit Linux. Bowtie was run with the '-v 2 --best --strata -m 1' options, mimicking the alignment and reporting modes used in the SOAPsnp study. A modified version of SOAPsnp 1.02 was run with the rank-sum and binomial tests enabled (-u and -n options, respectively) and with known-SNP refinement enabled (-2 and -s options). Positions for known SNPs were calculated according to data in dbSNP [28] versions 128 and 130, and allele frequencies were calculated according to data from the HapMap project [22]. Only positions occurring in dbSNP version 128 were provided to SOAPsnp. This was to avoid biasing the result by including SNPs submitted by Wang et al. [5] to dbSNP version 130. SOAPsnp's prior probabilities for novel homozygous and heterozygous SNPs were left at their default values of 0.0005 and 0.001, respectively. Since the subject was male, SOAPsnp was configured to treat autosomal chromosomes as diploid and sex chromosomes as haploid.
To account for base-calling errors and inaccurate quality values reported by the Illumina software pipeline [29, 30], SOAPsnp recalibrates quality values according to a four-dimensional matrix recording observed error rates. Rates are calculated across a large space of parameters, the dimensions of which include sequencing cycle, reported quality value, reference allele and subject allele. In the previous study, separate recalibration matrices were trained for each human chromosome; that is, a given chromosome's matrix was trained using all reads aligning uniquely to that chromosome. In this study, each chromosome is divided into non-overlapping stretches of 2 million bases and a separate matrix is trained and used for each partition. Thus, each recalibration matrix receives less training data than if matrices were trained per-chromosome. Though the results indicate that this does not affect accuracy significantly, future work for Crossbow includes merging recalibration matrices for partitions within a chromosome prior to genotyping.
An instance where Crossbow reports a SNP on a diploid portion of the genome is discarded (that is, considered to be homozygous for the reference allele) if it is covered by fewer than four unique alignments. For a haploid portion, a SNP is discarded if covered by fewer than two unique alignments. For either diploid or haploid portions, a SNP is discarded if the call quality as reported by SOAPsnp is less than 20. Note that the SOAPsnp study applies additional filters to discard SNPs at positions that, for example, are not covered by any paired-end reads or appear to have a high copy number. Adding such filters to Crossbow is future work.
In this paper we have demonstrated that cloud computing realized by MapReduce and Hadoop can be leveraged to efficiently parallelize existing serial implementations of sequence alignment and genotyping algorithms. This combination allows large datasets of DNA sequences to be analyzed rapidly without sacrificing accuracy or requiring extensive software engineering efforts to parallelize the computation.
We describe the implementation of an efficient whole-genome genotyping tool, Crossbow, that combines two previously published software tools: the sequence aligner Bowtie and the SNP caller SOAPsnp. Crossbow achieves at least 98.9% accuracy on simulated datasets of individual chromosomes, and better than 99.8% concordance with the Illumina 1 M BeadChip assay of a sequenced individual. These accuracies are comparable to those achieved in the prior SOAPsnp study once filtering stringencies are taken into account.
When run on conventional computers, a deep-coverage human resequencing project requires weeks of time to analyze on a single computer by contrast, Crossbow aligns and calls SNPs from the same dataset in less than 3 hours on a 320-core cluster. By taking advantage of commodity processors available via cloud computing services, Crossbow condenses over 1,000 hours of computation into a few hours without requiring the user to own or operate a computer cluster. In addition, running on standard software (Hadoop) and hardware (EC2 instances) makes it easier for other researchers to reproduce our results or execute their own analysis with Crossbow.
Crossbow scales well to large clusters by leveraging Hadoop and the established, fast Bowtie and SOAPsnp algorithms with limited modifications. The ultrafast Bowtie alignment algorithm, utilizing a quality-directed best-first-search of the FM index, is especially important to the overall performance of Crossbow relative to CloudBurst. Crossbow's alignment stage vastly outperforms the fixed-seed seed-and-extend search algorithm of CloudBurst on clusters of the same size. We expect that the Crossbow infrastructure will serve as a foundation for bringing massive scalability to other high-volume sequencing experiments, such as RNA-seq and ChIP-seq. In our experiments, we demonstrated that Crossbow works equally well either on a local cluster or a remote cluster, but in the future we expect that utility computing services will make cloud computing applications widely available to any researcher.
Additional data files
The following additional data are included with the online version of this article: version 0.1.3 of the Crossbow software (Additional data file 1).
Elastic Compute Cloud
full-text minute-space
Hadoop Distributed Filesystem
National Center for Biotechnology Information
Simple Storage Service
single nucleotide polymorphism.
Ahn SM, Kim TH, Lee S, Kim D, Ghang H, Kim DS, Kim BC, Kim SY, Kim WY, Kim C, Park D, Lee YS, Kim S, Reja R, Jho S, Kim CG, Cha JY, Kim KH, Lee B, Bhak J, Kim SJ: The first Korean genome sequence and analysis: full genome sequencing for a socio-ethnic group. Genome Res. 2009, 19: 1622-1629. 10.1101/gr.092197.109.
Bentley DR, Balasubramanian S, Swerdlow HP, Smith GP, Milton J, Brown CG, Hall KP, Evers DJ, Barnes CL, Bignell HR, Boutell JM, Bryant J, Carter RJ, Keira Cheetham R, Cox AJ, Ellis DJ, Flatbush MR, Gormley NA, Humphray SJ, Irving LJ, Karbelashvili MS, Kirk SM, Li H, Liu X, Maisinger KS, Murray LJ, Obradovic B, Ost T, Parkinson ML, Pratt MR, et al: Accurate whole human genome sequencing using reversible terminator chemistry. Nature. 2008, 456: 53-59. 10.1038/nature07517.
Ley TJ, Mardis ER, Ding L, Fulton B, McLellan MD, Chen K, Dooling D, Dunford-Shore BH, McGrath S, Hickenbotham M, Cook L, Abbott R, Larson DE, Koboldt DC, Pohl C, Smith S, Hawkins A, Abbott S, Locke D, Hillier LW, Miner T, Fulton L, Magrini V, Wylie T, Glasscock J, Conyers J, Sander N, Shi X, Osborne JR, Minx P, et al: DNA sequencing of a cytogenetically normal acute myeloid leukaemia genome. Nature. 2008, 456: 66-72. 10.1038/nature07485.
McKernan KJ, Peckham HE, Costa GL, McLaughlin SF, Fu Y, Tsung EF, Clouser CR, Duncan C, Ichikawa JK, Lee CC, Zhang Z, Ranade SS, Dimalanta ET, Hyland FC, Sokolsky TD, Zhang L, Sheridan A, Fu H, Hendrickson CL, Li B, Kotler L, Stuart JR, Malek JA, Manning JM, Antipova AA, Perez DS, Moore MP, Hayashibara KC, Lyons MR, Beaudoin RE, et al: Sequence and structural variation in a human genome uncovered by short-read, massively parallel ligation sequencing using two-base encoding. Genome Res. 2009, 19: 1527-1541. 10.1101/gr.091868.109.
Wang J, Wang W, Li R, Li Y, Tian G, Goodman L, Fan W, Zhang J, Li J, Guo Y, Feng B, Li H, Lu Y, Fang X, Liang H, Du Z, Li D, Zhao Y, Hu Y, Yang Z, Zheng H, Hellmann I, Inouye M, Pool J, Yi X, Zhao J, Duan J, Zhou Y, Qin J, Ma L, et al: The diploid genome sequence of an Asian individual. Nature. 2008, 456: 60-65. 10.1038/nature07484.
Lister R, Ecker JR: Finding the fifth base: genome-wide sequencing of cytosine methylation. Genome Res. 2009, 19: 959-966. 10.1101/gr.083451.108.
Tuteja G, White P, Schug J, Kaestner KH: Extracting transcription factor targets from ChIP-Seq data. Nucleic Acids Res. 2009, 37: e113-10.1093/nar/gkp536.
Mortazavi A, Williams BA, McCue K, Schaeffer L, Wold B: Mapping and quantifying mammalian transcriptomes by RNA-Seq. Nat Methods. 2008, 5: 621-628. 10.1038/nmeth.1226.
Trapnell C, Pachter L, Salzberg SL: TopHat: discovering splice junctions with RNA-Seq. Bioinformatics. 2009, 25: 1105-1111. 10.1093/bioinformatics/btp120.
Illumina Presents Development Roadmap for Scaling its Genome Analyzer: Innovations to substantially increase output, decrease cost, and expand applications. [http://investor.illumina.com/phoenix.zhtml?c=121127&p=irol-newsArticle_print&ID=1252407&highlight=]
Pushkarev D, Neff NF, Quake SR: Single-molecule sequencing of an individual human genome. Nat Biotechnol. 2009, 27: 847-852. 10.1038/nbt.1561.
Simpson JT, Wong K, Jackman SD, Schein JE, Jones SJ, Birol I: ABySS: a parallel assembler for short read sequence data. Genome Res. 2009, 19: 1117-1123. 10.1101/gr.089532.108.
Jackson BG, Schnable PS, Aluru S: Assembly of large genomes from paired short reads. Proceedings of the 1st International Conference on Bioinformatics and Computational Biology: 8-10 April 2009; New Orleans, Louisiana, United States. New Orleans, LA. Edited by: Rajasekaran S. 2009, Springer-Verlag, 30-43.
Dean J, Ghemawat S: MapReduce: simplified data processing on large clusters. Proceedings of the 6th Symposium on Operating Systems Design & Implementation: 6-8 December 2004; San Francisco, California, USA. 2004, ACM, New York, NY, USA, 6: 137-150.
Apache Hadoop. [http://hadoop.apache.org/]
Schatz MC: CloudBurst: highly sensitive read mapping with MapReduce. Bioinformatics. 2009, 25: 1363-1369. 10.1093/bioinformatics/btp236.
Langmead B, Trapnell C, Pop M, Salzberg SL: Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biol. 2009, 10: R25-10.1186/gb-2009-10-3-r25.
Li R, Li Y, Fang X, Yang H, Wang J, Kristiansen K: SNP detection for massively parallel whole-genome resequencing. Genome Res. 2009, 19: 1124-1132. 10.1101/gr.088013.108.
Li R, Li Y, Kristiansen K, Wang J: SOAP: short oligonucleotide alignment program. Bioinformatics. 2008, 24: 713-714. 10.1093/bioinformatics/btn025.
Crossbow: Whole Genome Resequencing using Cloud Computing. [http://bowtie-bio.sourceforge.net/crossbow/]
Amazon Elastic Compute Cloud. [http://aws.amazon.com/ec2/]
Frazer KA, Ballinger DG, Cox DR, Hinds DA, Stuve LL, Gibbs RA, Belmont JW, Boudreau A, Hardenbol P, Leal SM, Pasternak S, Wheeler DA, Willis TD, Yu F, Yang H, Zeng C, Gao Y, Hu H, Hu W, Li C, Lin W, Liu S, Pan H, Tang X, Wang J, Wang W, Yu J, Zhang B, Zhang Q, Zhao H, et al: A second generation human haplotype map of over 3.1 million SNPs. Nature. 2007, 449: 851-861. 10.1038/nature06258.
YanHuang Project: YH1 Genome Database. [http://yh.genomics.org.cn/]
Amazon Simple Storage Service. [http://aws.amazon.com/s3/]
Burrows M, Wheeler DJ: A Block-sorting Lossless Data Compression Algorithm. Technical Report 124. 1994, Palo Alto, CA: Digital Systems Research Center
Ferragina P, Manzini G: Opportunistic data structures with applications. Proceedings of the 41st Annual Symposium on Foundations of Computer Science. 2000, IEEE Computer Society, Los Alamitos, California USA, 390-398. full_text.
Sort Benchmark Home Page. [http://sortbenchmark.org/]
Sherry ST, Ward MH, Kholodov M, Baker J, Phan L, Smigielski EM, Sirotkin K: dbSNP: the NCBI database of genetic variation. Nucleic Acids Res. 2001, 29: 308-311. 10.1093/nar/29.1.308.
Corrada Bravo H, Irizarry RA: Model-based quality assessment and base-calling for second-generation sequencing data. Biometrics.
Dohm JC, Lottaz C, Borodina T, Himmelbauer H: Substantial biases in ultra-short read data sets from high-throughput DNA sequencing. Nucleic Acids Res. 2008, 36: e105-10.1093/nar/gkn425.
This work was funded in part by NSF grant IIS-0844494 (MP) and by NIH grants R01-LM006845 (SLS) and R01-HG004885 (MP). We thank the Amazon Web Services Hadoop Testing Program for providing credits, and Deepak Singh for his assistance. We also thank Miron Livny and his team for providing access to their compute cluster.
Additional information
Authors' contributions
BL and MCS developed the algorithms, collected results, and wrote the software. JL contributed to discussions on algorithms. BL, MCS, JL, MP, and SLS wrote the manuscript.
Electronic supplementary material
Authors' original submitted files for images
Below are the links to the authors' original submitted files for images.
Rights and permissions
About this article
Cite this article
Langmead, B., Schatz, M.C., Lin, J. et al. Searching for SNPs with cloud computing. Genome Biol 10, R134 (2009). https://doi.org/10.1186/gb-2009-10-11-r134
DOI: https://doi.org/10.1186/gb-2009-10-11-r134
- Single Nucleotide Polymorphism
- Cloud Computing
- Additional Data File
- Wall Clock Time
- Heterozygous SNPs


text:
The federal food stamp program—now called SNAP—is attracting a lot of media coverage. One reason for this is that the program's costs have exploded—spending more than quadrupled during the Bush-Obama years to $82 billion in 2013 (see here and here p. 16). The Clinton, Bush, and Obama administrations all took steps to loosen the purse strings on food stamp eligibility, and those changes have led to the ballooning costs of recent years during the stagnant economy.
Aside from the rising costs, two other aspects of SNAP have garnered interest. One is food stamp fraud. The other is the program's "Twinkie problem": taxpayers are paying for billions of dollars of junk food, which seems like a huge waste of money to most people.
These two issues have come together in a high-profile effort by a group of media organizations that is demanding greater transparency in SNAP operations. The organizations—led by the Association of Health Care Journalists (AHCJ)—have sent a letter to Agriculture Secretary Tom Vilsack (whose agency oversees SNAP) asking for full disclosure about where food stamps are being spent and what they are being spent on. The Daily Caller reports on the issue here.
Let's look at the fraud issue. The government claims that the food stamp trafficking rate is just 1 percent and the general overpayment rate is just 4 percent. I suspect that the real rates are much higher, for three reasons: First, the overall costs of SNAP and the number of beneficiaries have skyrocketed. Second, SNAP is ideally suited for abuse: the USDA has few investigators to police the roughly 200,000 SNAP retailers, any of whom could be scamming the system. Third, overpayment rates on other federal subsidy programs are often around 10 percent. Medicare and Medicaid overpayments are in that range, for example, and overpayments have long been around 20 percent in the EITC program.
The AHCJ-led effort is asking the USDA to release data on food stamp purchases by retail outlet. This would be a very useful resource for investigators across the nation to help the government reduce waste and fraud. Are food stamps being cashed in at liquor stores? Which corner stores have unusually high food stamp usage? Let's get detailed SNAP data on the Internet and allow journalists and the public to help answer these questions. After all, scandal after scandal illustrate that the federal government is lousy at policing programs itself.
The journalists are also asking the USDA to provide detailed breakdowns of the types of food being purchased with SNAP money. It's remarkable that in an era of Bloomberg-style efforts to restrict private food choices, the government itself runs a giant $82 billion program that subsidizes junk food. How much junk food? We don't know, and that's what many journalists want to find out.
Food stamps can be used to purchase just about any edible item other than alcohol, hot food, restaurant meals, and live animals. The USDA explains the rules here and specifically notes that "soft drinks, candy, cookies, snack crackers, and ice cream" are allowed.
Many health experts would like to ban junk food purchases in the food stamp program because they want Americans to eat more nutritious food. I'm a libertarian, so I don't want the government telling people what to eat. But I think banning junk food in SNAP would be a good step for a different reason: it would greatly reduce demand for the program and thus cut taxpayer costs. If we told the 48 million users of food stamps that they could only use their electronic subsidy cards to buy items like spinach and broccoli, a lot fewer people would use the program and they would buy less stuff.
Why has the USDA been stonewalling journalists on providing SNAP program data? I'm guessing that federal officials don't want to be embarrassed about: 1) how much taxpayer money goes toward junk food, and 2) the endless series of stories about SNAP fraud that would likely be generated if journalists could explore the program's operational details.
Optimally, SNAP should be terminated altogether and food subsidy activities left to the states—or better, to private charities. But until that reform happens, the current effort to pry open the workings of this giant hand-out program would be big step in the right direction.
Some links of interest:
A leaked database of food stamp usage in Massachusetts. This is the type of data that should be released nationally by the USDA.
A study on the corporate lobbying surrounding food stamps. This liberal group doesn't want to cut spending, but it provides an excellent summary of the junk food issue, transparency, and the benefits of SNAP to the banking industry.
WaPo columnist Charles Lane on SNAP junk food.
Some of Tad DeHaven's analyses of food stamps are here, here, here, here, and here.
My overview of federal food subsidies.


text:
Premium Compatible Epson T18XL (T1816) High Capacity Ink Cartridge Multipack
Re-packed as Letterbox Friendly™ to fit through your letterbox
BUY 1 GET 1 FREE selected items
BUY 1 GET 1 FREE selected items
☎ Prefer to order by phone?0333 344 6843
Better Than BOGOF ! ™
Better Than BOGOF ! ™
The Epson Expression Home XP-202 Wi-Fi printer is a compact all-in-one ink jet that first appeared in 2012. The printing is crisp and clean when compared to many other budget printers available. With its compact dimensions, the XP-202 is able to neatly fit in any home environment without taking up too much space thanks to its small footprint. Although a budget printer this model does come with WiFi connectivity (802.11B, 802.11G, 802.11n).
It benefits from being rated as an ENERGY STAR-qualified device and as such is very power efficient. With individual ink cartridges you only have to replace the colour used, saving you money on your printing costs. Printing speeds (ISO/IEC 24734) are: 6.2 pages/min monochrome and 3.1 pages/min colour. The buit-in scanner has a maximum resolution of 1,200 dpi x 2,400 dpi
This popular budget printer uses Epson's Micro Piezo print head technology to deliver a maximum printing resolution of 5,760 x 1,440 dpi and can print onto a variety of paper sizes: A4, A5, A6, B5, C6 (Envelope), DL (Envelope), No. 10 (Envelope), Letter, Legal, 9x13 cm, 10x15cm, 13x18 cm, 13x20 cm, 20x25 cm and 100x148 mm. The single paper tray capacity is: 100 standard sheets and 20 photo sheets. There is no automatic duplex facility available.
Expression Home XP-202 product details: Manufacturer's part number: SKU C11CC10302. EAN code: 8715946511245. Printer weight: 5.2 kg. Printer dimensions: 464 x 200 x 380 mm
Here at InkFactory.com we can supply a range of quality ink cartridges for the owner of this printer. You can select from either original Epson T18 Claria ink cartridges available in standard and XL sizes - just look out for the Daisy image. For those on a budget we offer our premium recycled T18 ink cartridges from Jet Tec (professionally remanufactured in the UK) or our popular Economy compatible T18XL ink cartridges which print as many pages as the Epson originals. In addition ALL our ink cartridges come with a 100% customer satisfaction guarantee.


text:
'Risographica 3'
Group Show
Following the success of Lamington Drive's inaugural Risographica! exhibition in 2010 and sequel, Risographica 2 in 2012, we are pleased to present the much-anticipated third incarnation of our (almost) biennial charity show, aptly titled Risographica 3. This group exhibition will see 28 of Jacky Winter's finest explore the medium of the A3 2-colour Risograph.
Wednesday 14 October 2015 to Saturday 07 November 2015
Opening: Wednesday 14 October 2015
Madeleine Stamer Oslo Davis James Gulliver Hancock Sean Morris Kate Banazi Beci Orpin Andrea Innocent Bobby Haiqalsyah Craig & Karl Eamon Donnelly Eirian Chapman Emma Leonard Gemma O'Brien Georgia Perry Guy Shield He She It They I Karl Kwasny Kat Chadwick Lachlan Conn Lilly Piri Mel Matthews Mel Stringer Neryl Walker Ross Murray Sonia Kretschmar Sophie Blackhall Cain Timba Smits Travis Price


text:
New to arrayLists and confused.
I have 2 classes. One is Property the other is Letting Agent.
Property creates property objects with 7 private variables. Letting Agent creates an arrayList of property objects.
I have managed to use external method calls to methods in the Property class in the Letting Agent class to update objects in my arrayList.
Now I am trying to implement a property search method in Letting Agent that takes 3 parameters and checks them against 3 of the fields of each object in my arrayList until one that matches all three is found. I am doing this using a while loop.
The problem I am having is that the while loop needs to contain an if/else statement that performs comparisons of the 3 parameters taken when the method is called to the values stored within the fields of that object.
public void propertySearch( char location, double maxMonthlyRent, int minNumberOfBedrooms)
int index = 0;
boolean propertyFound = false;
while(!propertyFound && index < properties.size())
Property property = properties.get(index);
if(location == property.location && maxMonthlyRent >= property.monthlyRent)// and same for bedrooms
property.displayProperty( // this method is in my Property class
propertyFound = true;
The problem is that I cannot perform my comparison as the fields of the Property class are private and I amsure that they were supposed to stay this way. Is there another way of me performing my if/else statement against the fields of the objects in my arraylist in the Letting Agents class?
I ONLY need to perform a comparison not actually alter the data stored in the fields in any way so I was thinking that there might be a way of getting the values of the fields that I am overlooking.
This has me really stuck so would really appreciate it if someone can give me kick in the right direction. Please ask me if you need to know more.


text:
Baltimore County police on Monday identified the man killed by a resident in an Essex home invasion .
Police said Kenneth David Cox, 24, of an unknown address, was killed Sunday by the resident of an apartment on 1400 block of Strawflower Road.
Detectives said the incident is not random, but have not provided information about any relationship between the resident and his alleged assailants.
Police said Cox and another armed man forced their way into the apartment, where one of them shot the resident several times in an altercation before he hit Cox in the head with a blunt object, killing him.
The resident was taken to an area hospital where he is being treated for his injuries. Police said they are not identifying him for safety reasons.
The other suspect fled. Police did not have a description of him.
Cox was charged in a non-fatal shooting on August 6, 2010 on the 1200 block of Punjab Drive in Essex, according to court documents. One person was shot in the forearm and a second was shot in the face, the documents said.
Andrea E. Jaskulsky, who represented Cox, said a jury found him not guilty because of an issue with witnesses to the incident.
"The jury just didn't believe he had anything to do with it," she said.
She said she saw Cox recently and said he was working at a fast food restaurant and living with a girlfriend in Baltimore.
"He looked good. He was just a soft-spoken, nice young man. From my observations, he was trying to make a better life for himself," she said.
In 2011, Cox pleaded guilty to violating his probation after a 2008 incident in which he was charged with second degree assault and disrupting school operations.
Jaskulsky did not represent Cox in that case but said it was an incident at school. He received a one-year sentence and 18 months probation.
Anyone with information about the home invasion is asked to call county police at 410-307-2020.


text:
Silver balloons set the perfect tone for their celebration, making this card a great choice for someone special who's turning 60! A lit up background is sure to make their spirits bright, along with the thoughtful words, letting them know that they're still going strong after all these years and reminding the that they only get better with age. What a wonderful way to make their big day simply unforgettable.
Special delivery! We're coming in hot with this one. So, you may not be able to afford some extravagant gesture, like a banner trailing an airplane — so what? You can still get the next best thing: this birthday card. Featuring a happy birthday sign suspended from rainbow balloons, they'll get the message and be charmed by your cleverness. Airplane noises are optional, but highly recommended.
Make sure to send this festive birthday celebration card to the person you are thinking about today, it will show them just how much your care! This terrific greeting card has an exciting and festive feel to it, complete with birthday hats, streamers, and a happy group of people celebrating a birthday! This ecard will wish them a fantastic celebration with their friends and family! This will certainly have them looking forward to the festivities of the day!
If a bouquet full of roses is just a smidge out of your budget this year, show someone special to you how much they mean to you with the next best thing, this gorgeous, rose-covered birthday card. The pink and white coloration of the roses is truly unique, and the close-up nature really makes you feel like you've been handed a bouquet of roses.
Sixty is a special age, and this card will help them celebrate hitting that important milestone in spectacular style! A shimmery gold background at bottom reminds them of how far they've come, while above, big gold balloon bubbles take center stage to wish them the happiest birthday yet. They're sure to feel loved when they see this grand greeting, as they welcome the next year with a big smile.
These stunning flowers are bound to bring a smile to anyone's face, and it's a great way to let them know you're thinking of them on their birthday. Just look at those gorgeous shades of pink, subtle and soft and oh so gorgeous. This birthday card offers a simple but sweet sentiment, perfect for anyone special in your life celebrating their big day.
When it comes to celebrating their 60th birthday, this card delivers lots of sweet fun, displaying a candle-topped cupcake with swirls of pink frosting. Set against a baby blue background to create a festive feel, it's the perfect way to help them take a big bite out of the exciting year ahead.
Happy Birthday - Have a wonderful year!
Sometimes less is more, and this stunning birthday card is a testament to that. With a soft pink background, the gorgeous white tulips really stand out. The script in which "Happy Birthday" is written adds an element of elegance, as well, while the kind sentiment of the words ties the card together. This is an classy, understated card that is a definite win.
Floral birthday cards are fairly common, but not ones like these! This birthday card will make the recipient feel as though they've been transported into a garden full of exotic flowers. The addition of red and orange flowers really makes this card one-of-a-kind, and it's a surefire way to make the birthday guy or girl know they're appreciated and loved.
This sweet card is a wonderful way to wish your favorite 60-year-old a very happy birthday! With a candle-topped cake that looks simply delicious, it will put them in the mood for a fun-filled celebration while filling them with happiness in the year ahead.
This fabulous birthday card is the perfect balance of serious and fun. For starters, you have the variety of bright colors, with greens and blues and reds that really pop. Add in the confetti and you have a party on a card. The verbiage is a nice contrast, with a sincere message about best wishes for their birthday. It's the best of both worlds.
Shine a light on their super 60th with this fun birthday card sure to make them smile. Colorful candles burn brightly against a blue lit background, setting the scene for an unforgettable day. And the inspiring message, reminding them to make a wish for the best celebration yet, will have them looking forward to the next 60 years!


text:
The Stanley Cup itself excites us in ways no other sports trophy does. Some of that comes from its versatility: One can eat and drink from it. Some of that comes from its uniqueness: There's a new Lombardi Trophy every year, but there's only one Cup. And the winning team's players get to take that one cup and do whatever they want with it.
So, we understand why weird stuff happens. And we're delighted when it does, like when the Cup got lost in Boston yesterday. If only we knew more details—We know they'd be riveting.
In any event, the Bruins' Nathan Horton's wife, Tammy Plante-Horton, took to Twitter today to air some grievances about a tardy Cup. She and Hortsey were promised the damn thing, for their mini-parade in Dunville, Ontario, and yet it wasn't there.
In chronological order:
Off to get the CUP MAN in buffalo!!! Eeeeeeeeeeeee. Parade, pics then party!!! :D
Cup was lost in boston :(
CUP day cut short if cup shows at all :( sucha bummer
Parade will be late and cup will arrive this afternoon hopefully. X ur fingers jetblue gets it right
Ye Dunvillagers of little faith! You will get your Cup soon.
H/T Chris.